< Summary

Information
Class: Services.DataServices.ExcelMapping.ExcelMappingService
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/DataServices/ExcelMapping/ExcelMappingService.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 42
Coverable lines: 42
Total lines: 72
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%210%
SaveMappingAsync()0%620%
GetMappingAsync()100%210%
GetAllMappingsAsync()100%210%
UpdateMappingAsync()0%2040%
DeleteMappingAsync()100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/DataServices/ExcelMapping/ExcelMappingService.cs

#LineLine coverage
 1using System.Text.Json;
 2using OzonOrdersWeb.Areas.OzonCards.ViewModels;
 3
 4namespace Services.DataServices.ExcelMapping;
 5
 6public class ExcelMappingService : IExcelMappingService
 7    {
 8        private readonly IExcelMappingRepository _repository;
 9
 010        public ExcelMappingService(IExcelMappingRepository repository)
 11        {
 012            _repository = repository;
 013        }
 14
 15        public async Task<int> SaveMappingAsync(ExcelMappingRequest request, string name, string? createdBy = null)
 16        {
 017            var mapping = new OzonDomains.ExcelMapping
 018            {
 019                Name = name,
 020                SourceFileName = request.SourceFileName,
 021                DestinationFileName = request.DestinationFileName,
 022                SourceSheet = request.SourceSheet,
 023                DestinationSheet = request.DestinationSheet,
 024                SourceHeaderRow = request.SourceHeaderRow,
 025                DestinationHeaderRow = request.DestinationHeaderRow,
 026                SourceDataStartRow = request.SourceDataStartRow,
 027                DestinationDataStartRow = request.DestinationDataStartRow,
 028                ColumnMappingsJson = JsonSerializer.Serialize(request.ColumnMappings),
 029                CreatedBy = createdBy ?? ""
 030            };
 31
 032            return await _repository.CreateAsync(mapping);
 033        }
 34
 35        public async Task<ExcelMappingRequest?> GetMappingAsync(int id)
 36        {
 037            return await _repository.GetRequestByIdAsync(id);
 038        }
 39
 40        public async Task<List<OzonDomains.ExcelMapping>> GetAllMappingsAsync()
 41        {
 042            return await _repository.GetAllAsync();
 043        }
 44
 45        public async Task UpdateMappingAsync(int id, ExcelMappingRequest request, string? name = null)
 46        {
 047            var existingMapping = await _repository.GetByIdAsync(id);
 048            if (existingMapping == null)
 049                throw new ArgumentException("Mapping not found");
 50
 051            if (!string.IsNullOrEmpty(name))
 052                existingMapping.Name = name;
 53
 054            existingMapping.SourceFileName = request.SourceFileName;
 055            existingMapping.DestinationFileName = request.DestinationFileName;
 056            existingMapping.SourceSheet = request.SourceSheet;
 057            existingMapping.DestinationSheet = request.DestinationSheet;
 058            existingMapping.SourceHeaderRow = request.SourceHeaderRow;
 059            existingMapping.DestinationHeaderRow = request.DestinationHeaderRow;
 060            existingMapping.SourceDataStartRow = request.SourceDataStartRow;
 061            existingMapping.DestinationDataStartRow = request.DestinationDataStartRow;
 062            existingMapping.ColumnMappingsJson = JsonSerializer.Serialize(request.ColumnMappings);
 063            existingMapping.ModifiedDate = DateTime.UtcNow;
 64
 065            await _repository.UpdateAsync(existingMapping);
 066        }
 67
 68        public async Task DeleteMappingAsync(int id)
 69        {
 070            await _repository.DeleteAsync(id);
 071        }
 72    }