< Summary

Class:WinSolutions.Sveta.Server.Services.Implements.RestHoldService
Assembly:WinSolutions.Sveta.Server
File(s):/opt/dev/sveta_api_build/WinSolutions.Sveta.Server/Services/Implements/RestHoldService.cs
Covered lines:22
Uncovered lines:31
Coverable lines:53
Total lines:92
Line coverage:41.5% (22 of 53)
Covered branches:5
Total branches:18
Branch coverage:27.7% (5 of 18)

Metrics

MethodLine coverage Branch coverage
.ctor(...)100%100%
GetRestHold()0%100%
GetRestHolds()100%100%
CreateHold()0%0%
CreateHold()100%75%
UpdateHold()0%100%
UpdateHolds()0%0%
DeleteHold()0%0%
DeleteHold()0%100%
DeleteHolds()100%100%

File(s)

/opt/dev/sveta_api_build/WinSolutions.Sveta.Server/Services/Implements/RestHoldService.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using System.Linq;
 3using System.Threading.Tasks;
 4using Microsoft.EntityFrameworkCore;
 5using Microsoft.Extensions.Logging;
 6using WinSolutions.Sveta.Common;
 7using WinSolutions.Sveta.Server.Data.DataModel.Contexts;
 8using WinSolutions.Sveta.Server.Data.DataModel.Entities;
 9using WinSolutions.Sveta.Server.Services.Interfaces;
 10
 11namespace WinSolutions.Sveta.Server.Services.Implements
 12{
 13    public class RestHoldService: SvetaServiceBase, IRestHoldService
 14    {
 15        private readonly ILogger<RestHoldService> _logger;
 16        private readonly SvetaDbContext _db;
 17
 11218        public RestHoldService(SvetaDbContext db, ILogger<RestHoldService> logger, IAuthenticationService auth) :base(au
 11219        {
 11220            _logger = logger;
 11221            _db = db;
 11222        }
 23
 24        public async Task<RestHold> GetRestHold(long movementId, long goodId) =>
 025            await _db.RestHolds.FirstOrDefaultAsync(d => !d.IsDeleted && d.MovementId == movementId && d.GoodId == goodI
 26
 27        public async Task<List<RestHold>> GetRestHolds(long movementId) =>
 4328            await _db.RestHolds.Where(d => !d.IsDeleted && d.MovementId == movementId).ToListAsync();
 29
 30        public async Task CreateHold(RestHold restHold)
 031        {
 032            _db.Entry(restHold.Movement).State = EntityState.Unchanged;
 033            _db.Entry(restHold.Good).State = EntityState.Unchanged;
 034            await _db.RestHolds.AddAsync(restHold);
 035            await _db.SaveChangesAsync(CurrentUserId);
 036        }
 37
 38        public async Task CreateHold(List<RestHold> restHolds)
 2939        {
 14540            foreach (var restHold in restHolds)
 2941            {
 2942                _db.Entry(restHold.Movement).State = EntityState.Unchanged;
 2943                _db.Entry(restHold.Movement).State = EntityState.Unchanged;
 2944            }
 45
 2946            await _db.RestHolds.AddRangeAsync(restHolds);
 2947            await _db.SaveChangesAsync(CurrentUserId);
 2948        }
 49
 50        public async Task UpdateHold(RestHold restHold)
 051        {
 052            _db.Entry(restHold.Movement).State = EntityState.Unchanged;
 053            _db.Entry(restHold.Good).State = EntityState.Unchanged;
 054            _db.RestHolds.Update(restHold);
 055            await _db.SaveChangesAsync(CurrentUserId);
 056        }
 57
 58        public async Task UpdateHolds(List<RestHold> restHolds)
 059        {
 060            foreach (var restHold in restHolds)
 061            {
 062                _db.Entry(restHold.Movement).State = EntityState.Unchanged;
 063                _db.Entry(restHold.Good).State = EntityState.Unchanged;
 064            }
 065            _db.RestHolds.UpdateRange(restHolds);
 066            await _db.SaveChangesAsync(CurrentUserId);
 067        }
 68
 69        public async Task DeleteHold(long holdId)
 070        {
 071            RestHold hold = await _db.RestHolds.FindAsync(holdId) ??
 072                            throw new KeyNotFoundException($"Запись #{holdId} не найдена");
 073            await DeleteHold(hold).ConfigureAwait(false);
 074        }
 75
 76        public async Task DeleteHold(RestHold restHold)
 077        {
 078            restHold.IsDeleted = true;
 079            await _db.SaveChangesAsync(CurrentUserId);
 080        }
 81
 82        public async Task DeleteHolds(List<RestHold> holds)
 1183        {
 5584            foreach (var hold in holds)
 1185            {
 1186                hold.IsDeleted = true;
 1187            }
 88
 1189            await _db.SaveChangesAsync(CurrentUserId);
 1190        }
 91    }
 92}