using AutoMapper; using Microsoft.EntityFrameworkCore; using Ropin.Inspection.Common.Accessor.Interface; using Ropin.Inspection.Model.Entities; using Ropin.Inspection.Model.SearchModel.LGS; using Ropin.Inspection.Model.ViewModel.LGS; using Ropin.Inspection.Repository.Interface; using Ropin.Inspection.Repository.LGS.Interface; using Ropin.Inspection.Service.LGS.Interface; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ropin.Inspection.Service.LGS { public class LargeScreenEventService: ILargeScreenEventService { private readonly ILargeScreenEventRepository _repository; private readonly IMapper _mapper; private readonly IClaimsAccessor _claims; private readonly InspectionDbContext _sqlDBContext; private readonly IUnitOfWork _unitOfWork; public LargeScreenEventService(IClaimsAccessor claims, InspectionDbContext sqlDBContext, ILargeScreenEventRepository repository, IMapper mapper, IUnitOfWork unitOfWork) { _repository = repository; _mapper = mapper; _claims = claims; _sqlDBContext = sqlDBContext; _unitOfWork = unitOfWork; } public async Task> GetConditionAsync(LargeScreenEventSearch searchModel) { var list = await _repository.GetConditionAsync(searchModel); return list; } public async Task CreateOneAsync(LargeScreenEventViewModel viewModel) { var content = _mapper.Map(viewModel); content.C_ID = string.IsNullOrEmpty(viewModel.C_ID)?(Guid.NewGuid().ToString()): viewModel.C_ID; content.C_CreateBy = _claims.ApiUserId.ToString(); content.C_Creator = _claims.ApiUserName; content.D_CreateOn = DateTime.Now; content.C_Status = string.IsNullOrEmpty(viewModel.C_Status)?"1": viewModel.C_Status; _repository.Create(content); var result = await _repository.SaveAsync(); if (!result) { throw new Exception("创建失败"); } } public async Task CreateListAsync(List viewModel,string status="1") { bool result = false; foreach (var item in viewModel) { item.C_ID = string.IsNullOrEmpty(item.C_ID) ? (Guid.NewGuid().ToString()) : item.C_ID; item.C_CreateBy = _claims.ApiUserId.ToString(); item.C_Creator = _claims.ApiUserName; item.D_CreateOn = DateTime.Now; item.C_Status = status; } result = await _repository.CreateRangeAsync(viewModel.ToList()) > 0; if (!result) { throw new Exception("创建失败"); } } public async Task UpdateAsync(LargeScreenEventViewModel viewModel, string Id) { var content = await _repository.GetByIdAsync(Id); if (content == null) { throw new Exception("没有此数据"); } _mapper.Map(viewModel, content, typeof(LargeScreenEventViewModel), typeof(TLGS_LargeScreenEvent)); content.C_LastUpdatedBy = _claims.Linsence == null ? _claims.ApiUserId.ToString() : "6e864cbc-5252-11ec-8681-fa163e02b3e4"; content.D_LastUpdatedOn = DateTime.Now; content.C_Modifier = _claims.ApiUserName; _repository.Update(content); var result = await _repository.SaveAsync(); if (!result) { throw new Exception("更新失败"); } } public async Task DeleteAsync(string id) { var content = await _repository.GetByIdAsync(id); if (content == null) { throw new Exception("数据库中没有此数据"); } content.C_LastUpdatedBy = _claims.ApiUserId.ToString(); content.D_LastUpdatedOn = DateTime.Now; content.C_Modifier = _claims.ApiUserName; content.C_Status = "0"; _repository.Update(content); var result = await _repository.SaveAsync(); if (!result) { throw new Exception("删除失败"); } } public async Task GetByIdAsync(string id) { LargeScreenEventSearch searchModel = new LargeScreenEventSearch(); searchModel.IsPagination = false; searchModel.C_ID = id; var list = await _repository.GetConditionAsync(searchModel); return list?.FirstOrDefault(); } public Task IsExistAsync(string id) { throw new NotImplementedException(); } public Task UpdateOneAsync(LargeScreenEventViewModel viewModel, params string[] fields) { throw new NotImplementedException(); } } }