using AutoMapper; using Microsoft.EntityFrameworkCore; using Serilog; using System.Collections.Generic; using WorkFlowCheck.BL.Services.Interfaces; using WorkFlowCheck.Common.DTO; using WorkFlowCheck.DL; using WorkFlowCheck.DL.Entities; namespace WorkFlowCheck.BL.Services { public class SyncService : ISyncService { private AppDbContext _dbContext; private IMapper _mapper; public SyncService(AppDbContext dbContext, IMapper mapper) { _dbContext = dbContext; _mapper = mapper; } public async Task> GetAllCheckPointAsync() { var retVal = new List(); try { var res = await _dbContext.CheckPoints .Include(i => i.CheckListTemplateRows) .AsNoTracking() .ToListAsync(); if (res != null) { retVal = _mapper.Map>(res); } } catch (Exception ex) { Log.Error(ex.Message); } return retVal; } public async Task GetCheckPointAsync(int id) { var retVal = new CheckPointDTO(); try { var res = await _dbContext.CheckPoints .Include(i => i.CheckListTemplateRows) .Where(w => w.Id == id) .AsNoTracking() .FirstOrDefaultAsync(); if (res != null) { retVal = _mapper.Map(res); } } catch (Exception ex) { Log.Error(ex.Message); } return retVal; } public async Task UpdateCheckPointAsync(CheckPointDTO checkPointDTO) { var retVal = new CheckPointDTO(); try { var res = await _dbContext.CheckPoints.Where(w => w.Id == checkPointDTO.Id).FirstOrDefaultAsync(); if (res != null) { res.ShortName = checkPointDTO.ShortName; res.Code = checkPointDTO.Code; await _dbContext.SaveChangesAsync(); retVal = _mapper.Map(res); } } catch (Exception ex) { Log.Error(ex.Message); } return retVal; } public async Task> GetAllLocationAsync() { var retVal = new List(); try { var res = await _dbContext.Locations.ToListAsync(); if (res != null) { retVal = _mapper.Map>(res); } } catch (Exception ex) { Log.Error(ex.Message); } return retVal; } public async Task> GetAllEquipmentAsync() { var retVal = new List(); try { var res = await _dbContext.Equipments.ToListAsync(); if (res != null) { retVal = _mapper.Map>(res); } } catch (Exception ex) { Log.Error(ex.Message); } return retVal; } public async Task> GetAllCheckListTemplateAsync() { var retVal = new List(); try { var res = await _dbContext.CheckListTemplateHeaders.Include(i => i.CheckListTemplateRows).AsNoTracking().ToListAsync(); if (res != null) { retVal = _mapper.Map>(res); } } catch (Exception ex) { Log.Error(ex.Message); } return retVal; } } }