using System; using System.Collections.Generic; using System.Linq; using System.Text; using AutoMapper; using DTO; using IServices; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; using zhengcaioa.Models; namespace Services { public class AdmAttendanceRuleService:IAdmAttendanceRuleService { private readonly zhengcaioaContext _context; private readonly IMapper _mapper; public AdmAttendanceRuleService(zhengcaioaContext context, IMapper mapper) { _context = context; _mapper = mapper; } public ResultEntity save(AdmAttendanceRuleDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var entity = _mapper.Map(dto); if (String.IsNullOrEmpty(entity.Id)) { entity.Id = Guid.NewGuid().ToString(); dto.Id = entity.Id; _context.AdmAttendanceRules.Add(entity); } else { var updateproject = _context.AdmAttendanceRules.Find(entity.Id); updateproject.WeekStart = entity.WeekStart; updateproject.WeekEnd = entity.WeekEnd; updateproject.WorkingStart = entity.WorkingStart; updateproject.WorkingEnd = entity.WorkingEnd; updateproject.OffworkStart = entity.OffworkStart; updateproject.OffworkEnd = entity.OffworkEnd; updateproject.FullAttendance = entity.FullAttendance; updateproject.LatePayment1 = entity.LatePayment1; updateproject.LatePayment2 = entity.LatePayment2; updateproject.LatePayment3 = entity.LatePayment3; updateproject.LatePayment4 = entity.LatePayment4; updateproject.Absenteeism = entity.Absenteeism; updateproject.AbsenteeismPayment1 = entity.AbsenteeismPayment1; updateproject.AbsenteeismPayment2 = entity.AbsenteeismPayment2; updateproject.PersonalPayment1 = entity.PersonalPayment1; updateproject.PersonalPayment2 = entity.PersonalPayment2; updateproject.PersonalPayment3 = entity.PersonalPayment3; updateproject.PersonalPayment4 = entity.PersonalPayment4; updateproject.SickPayment1 = entity.SickPayment1; updateproject.SickPayment2 = entity.SickPayment2; updateproject.SickPayment3 = entity.SickPayment3; updateproject.SickPayment4 = entity.SickPayment4; updateproject.Holiday = entity.Holiday; updateproject.Rest = entity.Rest; updateproject.Gala = entity.Gala; updateproject.Weekend1 = entity.Weekend1; updateproject.Usually = entity.Usually; updateproject.RecStatus = entity.RecStatus; updateproject.Modifier = entity.Modifier; updateproject.Modifytime = entity.Modifytime; } _context.SaveChanges(); resultEntity.ReturnID = entity.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public AdmAttendanceRuleDTO Get(string id) { var entity = new AdmAttendanceRule(); if(string.IsNullOrEmpty(id)) entity = _context.AdmAttendanceRules.FirstOrDefault(); else entity = _context.AdmAttendanceRules.Find(id); if (entity == null) { entity = new AdmAttendanceRule(); } var result = _mapper.Map(entity); return result; } public ResultEntity saveDtl(AdmAttendanceRulesDtlDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var entity = _mapper.Map(dto); if (String.IsNullOrEmpty(entity.Id)) { entity.Id = Guid.NewGuid().ToString(); _context.AdmAttendanceRulesDtls.Add(entity); } else { var updateproject = _context.AdmAttendanceRulesDtls.Find(entity.Id); updateproject.Pid = entity.Pid; updateproject.ValueStart = entity.ValueStart; updateproject.ValueEnd = entity.ValueEnd; updateproject.Name = entity.Name; updateproject.RecStatus = entity.RecStatus; updateproject.Modifier = entity.Modifier; updateproject.Modifytime = entity.Modifytime; } _context.SaveChanges(); resultEntity.ReturnID = entity.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public AdmAttendanceRulesDtlDTO GetDtl(string id) { var entity = new AdmAttendanceRulesDtl(); if (string.IsNullOrEmpty(id)) entity = _context.AdmAttendanceRulesDtls.FirstOrDefault(); else entity = _context.AdmAttendanceRulesDtls.Find(id); if (entity == null) { entity = new AdmAttendanceRulesDtl(); } var result = _mapper.Map(entity); return result; } public List GetDtlList(string pid) { var entity = _context.AdmAttendanceRulesDtls.ToList(); if (!string.IsNullOrEmpty(pid)) entity = entity.Where(x => x.Pid == pid).ToList(); var result = _mapper.Map>(entity); return result; } public ResultEntity RemoveDtlList(string pid) { ResultEntity resultEntity = new ResultEntity(); try { var admAttendanceRulesDtls = _context.AdmAttendanceRulesDtls.Where(x => x.Pid == pid).ToList(); foreach(var admAttendanceRulesDtl in admAttendanceRulesDtls) { _context.AdmAttendanceRulesDtls.Remove(admAttendanceRulesDtl); } _context.SaveChanges(); resultEntity.ReturnID = pid; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } } }