< Summary

Class:WinSolutions.Sveta.Server.Services.Implements.ExchangeTokenService
Assembly:WinSolutions.Sveta.Server
File(s):/opt/dev/sveta_api_build/WinSolutions.Sveta.Server/Services/Implements/ExchangeTokenService.cs
Covered lines:15
Uncovered lines:62
Coverable lines:77
Total lines:112
Line coverage:19.4% (15 of 77)
Covered branches:0
Total branches:14
Branch coverage:0% (0 of 14)

Metrics

MethodLine coverage Branch coverage
.ctor(...)100%100%
GetTokens()0%100%
GetTokens()0%100%
GetToken()0%100%
GetToken()100%100%
CreateToken()0%0%
UpdateToken()0%100%
DisableTokens()0%0%
DisableToken()0%0%
DeleteToken()0%0%

File(s)

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

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4using System.Threading.Tasks;
 5using Microsoft.EntityFrameworkCore;
 6using Microsoft.Extensions.Logging;
 7using WinSolutions.Sveta.Common;
 8using WinSolutions.Sveta.Server.Data.DataModel.Contexts;
 9using WinSolutions.Sveta.Server.Data.DataModel.Entities;
 10using WinSolutions.Sveta.Server.Data.DataModel.Kinds;
 11using WinSolutions.Sveta.Server.Services.Interfaces;
 12using Department = DocumentFormat.OpenXml.Bibliography.Department;
 13
 14namespace WinSolutions.Sveta.Server.Services.Implements
 15{
 16    public class ExchangeTokenService: SvetaServiceBase, IExchangeTokenService
 17    {
 18        private readonly ILogger<ExchangeTokenService> _logger;
 19        private readonly SvetaDbContext _db;
 11320        public ExchangeTokenService(ILogger<ExchangeTokenService> logger, SvetaDbContext db, IAuthenticationService auth
 11321        {
 11322            _logger = logger;
 11323            _db = db;
 11324        }
 25
 026        public IQueryable<ExchangeToken> GetTokens() => _db.ExchangeTokens
 027            .AsNoTracking()
 028            .Include(d => d.Department)
 029            .ThenInclude(department => department.Contragent)
 030            .Include(d => d.RecState)
 031            .Where(d => !d.IsDeleted);
 32
 033        public async Task<List<ExchangeToken>> GetTokens(long departmentId) => await _db.ExchangeTokens
 034            .AsNoTracking()
 035            .Include(d => d.Department)
 036            .Include(d => d.RecState)
 037            .Where(d => !d.IsDeleted)
 038            .Where(d => d.DepartmentId == departmentId)
 039            .ToListAsync();
 40
 041        public async Task<ExchangeToken> GetToken(long tokenId) => await _db.ExchangeTokens
 042            .Include(d => d.Department)
 043            .ThenInclude(department => department.Kind)
 044            .Include(d => d.RecState)
 045            .Where(d => !d.IsDeleted)
 046            .Where(d => d.RecState.Id == (long) RecordState.Active)
 047            .FirstOrDefaultAsync(d => d.Id == tokenId);
 48
 2949        public async Task<ExchangeToken> GetToken(Guid tnx) => await _db.ExchangeTokens
 2950            .Include(d => d.Department)
 2951            .ThenInclude(department =>  department.Kind)
 2952            .Include(d => d.Department)
 2953            .ThenInclude(department =>  department.Contragent)
 2954            .ThenInclude(contragent =>  contragent.ContragentsKind)
 2955            .Include(d => d.RecState)
 2956            .Where(d => !d.IsDeleted)
 2957            .Where(d => d.RecState.Id == (long) RecordState.Active)
 2958            .FirstOrDefaultAsync(d => d.GUID.Equals(tnx));
 59
 60        public async Task CreateToken(ExchangeToken token)
 061        {
 062            var department = await _db.Departments.FindAsync(token.DepartmentId) ??
 063                             throw new ArgumentException($"Контрагент {token.DepartmentId} не найден");
 064            var recActive = await _db.refRecordsState.FirstOrDefaultAsync(d => d.Id == (long) RecordState.Active);
 065            token.RecState = recActive;
 066            token.Department = department;
 067            token.DepartmentId = department.Id;
 068            await _db.ExchangeTokens.AddAsync(token);
 069            await _db.SaveChangesAsync(CurrentUserId);
 070        }
 71
 72        public async Task UpdateToken(ExchangeToken token)
 073        {
 074            _db.ExchangeTokens.Update(token);
 075            await _db.SaveChangesAsync(CurrentUserId);
 076        }
 77
 78        public async Task DisableTokens(long departmentId)
 079        {
 080            var tokens =  _db.ExchangeTokens.Include(d => d.RecState)
 081                .Include(d => d.Department)
 082                .Where(d => d.Department.Id == departmentId);
 083            if (tokens != null && tokens.Count() > 0)
 084            {
 085                var recInactive = await _db.refRecordsState.FirstOrDefaultAsync(d => d.Id == (long) RecordState.Inactive
 086                await tokens.ForEachAsync(d => d.RecState = recInactive);
 087                await _db.SaveChangesAsync(CurrentUserId);
 088            }
 089        }
 90
 91        public async Task DisableToken(Guid tnx)
 092        {
 093            var token = await  _db.ExchangeTokens.Include(d => d.RecState)
 094                .FirstOrDefaultAsync(d => d.GUID.Equals(tnx)) ??
 095                        throw new ArgumentException($"Токен {tnx} не найден");
 096            var recInactive = await _db.refRecordsState.FirstOrDefaultAsync(d => d.Id == (long) RecordState.Inactive);
 097            token.RecState = recInactive;
 098            await _db.SaveChangesAsync(CurrentUserId);
 099        }
 100
 101        public async Task DeleteToken(long id)
 0102        {
 0103            var token = await _db.ExchangeTokens.Include(d => d.RecState)
 0104                            .FirstOrDefaultAsync(d => d.Id == id) ??
 0105                        throw new ArgumentException($"Токен {id} не найден");
 0106            var recInactive = await _db.refRecordsState.FirstOrDefaultAsync(d => d.Id == (long) RecordState.Inactive);
 0107            token.RecState = recInactive;
 0108            token.IsDeleted = true;
 0109            await _db.SaveChangesAsync(CurrentUserId);
 0110        }
 111    }
 112}