Files
WorkFlowCheck/src/WorkFlowCheck.BL/Services/CheckListService.cs
T

91 lines
2.8 KiB
C#

using AutoMapper;
using Microsoft.EntityFrameworkCore;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WorkFlowCheck.BL.Services.Interfaces;
using WorkFlowCheck.Common.DTO;
using WorkFlowCheck.DL;
using WorkFlowCheck.DL.Entities;
namespace WorkFlowCheck.BL.Services
{
public class CheckListService : ICheckListService
{
private AppDbContext _dbContext;
private IMapper _mapper;
public CheckListService(AppDbContext dbContext, IMapper mapper)
{
_dbContext = dbContext;
_mapper = mapper;
}
public async Task<CheckListHeaderDTO> GetCheckListHeader(int Id)
{
var retVal = new CheckListHeaderDTO()
{
CheckListRowDTO = new List<CheckListRowDTO>()
};
try
{
var res = await _dbContext.CheckListHeaders
.Where(w => w.Id == Id)
.Include(i => i.CheckListRows)
.AsNoTracking()
.FirstOrDefaultAsync();
if (res != null)
{
retVal = _mapper.Map<CheckListHeaderDTO>(res);
}
}
catch (Exception ex)
{
Log.Error(ex.Message);
}
return retVal;
}
public async Task<CheckListHeaderDTO> StartNew(ApiRequestDTO<CheckListTemplateHeaderDTO> request)
{
var retVal = new CheckListHeaderDTO()
{
CheckListRowDTO = new List<CheckListRowDTO>()
};
try
{
var currentDate = DateTime.UtcNow;
CheckListHeader checkListHeader = new CheckListHeader()
{
CheckListTemplateHeaderId = request.Data.Id,
CreatedAt = currentDate,
CreatedBy = request.UserDTO.UserName,
Description = request.Data.Description,
DocumentNumber = "",
GuidNumber = Guid.NewGuid(),
IsDeleted = false,
IsStorno = false,
LastModAt = currentDate,
ShortName = "",
CheckListRows = new List<CheckListRow>()
};
_dbContext.CheckListHeaders.Add(checkListHeader);
await _dbContext.SaveChangesAsync();
retVal = _mapper.Map<CheckListHeaderDTO>(checkListHeader);
}
catch (Exception ex)
{
Log.Error(ex.Message);
}
return retVal;
}
}
}