public IHttpActionResult Save(EmployeeList EmpList) { Console.WriteLine("Save"); try { foreach (var contractortoDb in EmpList._employeeList) { var contractorInDb = Db.Contractors.Find(contractortoDb.EmployeeID, contractortoDb.ContractorID); if (contractorInDb != null) { contractorInDb.IdCard = contractortoDb.IdCard; contractorInDb.ContractorID = contractortoDb.ContractorID; contractorInDb.VoucherID = contractorInDb.VoucherID; contractorInDb.Name = contractortoDb.Name; contractorInDb.Mark = contractortoDb.Mark; contractorInDb.Birthday = contractortoDb.Birthday; contractorInDb.Sex = contractortoDb.Sex; contractorInDb.Job = contractortoDb.Job; contractorInDb.Region = contractortoDb.Region; contractorInDb.Remark = contractortoDb.Remark; contractorInDb.Phone = contractortoDb.Phone; if (contractortoDb.Status == "W") { contractorInDb.IsUpload = 0; } if (contractortoDb.Status != "P") { contractorInDb.PreStatus = contractortoDb.Status; } if (contractortoDb.Status == "N" || contractortoDb.Status == "W" || contractortoDb.Status == "P" || contractortoDb.Status == "RT") { contractorInDb.Status = contractortoDb.Status; } else { contractorInDb.Status = contractortoDb.IsUpdate ? "Q" : "F"; } contractorInDb.Stamp = DateTime.Now; contractorInDb.UserId = contractorInDb.UserId; contractorInDb.EmployeeID = contractorInDb.EmployeeID; contractorInDb.ReasonReturn = null; contractorInDb.InsuranceDuration = contractortoDb.InsuranceDuration; contractorInDb.SafetyCerDuration = contractortoDb.SafetyCerDuration; contractorInDb.IsForeign = contractortoDb.IsForeign; if (contractortoDb.IsForeign == 1) { var Foreigner = Db.ContractorForeigners.Find(contractortoDb.EmployeeID); if (Foreigner != null) { Foreigner.PassPort_Expiry = contractortoDb.PassPort_Expiry; Foreigner.PassPort_Nationality = contractortoDb.PassPort_Nationality; Foreigner.WorkPermit_No = contractortoDb.WorkPermit_No; Foreigner.WorkPermit_Start = contractortoDb.WorkPermit_Start; Foreigner.WorkPermit_End = contractortoDb.WorkPermit_End; Foreigner.CategoryCard = contractortoDb.CategoryCard; Foreigner.Card_Type = contractortoDb.Card_Type; Foreigner.Card_No = contractortoDb.Card_No; Foreigner.Card_Start = contractortoDb.Card_Start; Foreigner.Card_End = contractortoDb.Card_End; Db.Entry(Foreigner).State = EntityState.Modified; } else { var _Foreigner = new ContractorForeigner { EmployeeID = contractortoDb.EmployeeID, PassPort_Expiry = contractortoDb.PassPort_Expiry, PassPort_Nationality = contractortoDb.PassPort_Nationality, WorkPermit_No = contractortoDb.WorkPermit_No, WorkPermit_Start = contractortoDb.WorkPermit_Start, WorkPermit_End = contractortoDb.WorkPermit_End, CategoryCard = contractortoDb.CategoryCard, Card_Type = contractortoDb.Card_Type, Card_No = contractortoDb.Card_No, Card_Start = contractortoDb.Card_Start, Card_End = contractortoDb.Card_End }; Db.ContractorForeigners.Add(_Foreigner); } } else { var Foreigner = Db.ContractorForeigners.Find(contractortoDb.EmployeeID); if (Foreigner != null) { Db.Entry(Foreigner).State = EntityState.Deleted; } } if (contractortoDb.FileName != null) { var File = Db.ContractorEmployeeFiles.Find(contractortoDb.VoucherID); if (File != null) { File.VoucherID = contractortoDb.VoucherID; File.FileName = contractortoDb.FileName; File.Stamp = DateTime.Now; File.CreateTime = File.CreateTime; Db.Entry(File).State = EntityState.Modified; } else { var _file = new ContractorEmployeeFile { VoucherID = contractorInDb.VoucherID, FileName = contractortoDb.FileName, Stamp = DateTime.Now, CreateTime = DateTime.Now }; Db.ContractorEmployeeFiles.Add(_file); } } else { var File = Db.ContractorEmployeeFiles.Find(contractortoDb.VoucherID); if (File != null) { Db.Entry(File).State = EntityState.Deleted; } } Db.Entry(contractorInDb).State = EntityState.Modified; } else { contractorInDb = new Contractor { VoucherID = contractortoDb.VoucherID, EmployeeID = oAC.SelectScalar <string>("select dbo.fnContractorEmployeeID(@typeID)", new object[] { "Employee" }), IdCard = contractortoDb.IdCard, Name = contractortoDb.Name, ContractorID = contractortoDb.ContractorID, Mark = contractortoDb.Mark, Birthday = contractortoDb.Birthday, Sex = contractortoDb.Sex, Job = contractortoDb.Job, Region = contractortoDb.Region, Remark = contractortoDb.Remark, Status = contractortoDb.Status, PreStatus = contractortoDb.Status, Stamp = DateTime.Now, UserId = contractortoDb.UserId, InsuranceDuration = contractortoDb.InsuranceDuration, SafetyCerDuration = contractortoDb.SafetyCerDuration, IsForeign = contractortoDb.IsForeign, Phone = contractortoDb.Phone }; Db.Contractors.Add(contractorInDb); var _biometric = new ContractorBiometric { EmployeeID = contractorInDb.EmployeeID, CardNo = null, FaceTmp = null }; Db.ContractorBiometrics.Add(_biometric); if (contractortoDb.IsForeign == 1) { var _Foreigner = new ContractorForeigner { EmployeeID = contractorInDb.EmployeeID, PassPort_Expiry = contractortoDb.PassPort_Expiry, PassPort_Nationality = contractortoDb.PassPort_Nationality, WorkPermit_No = contractortoDb.WorkPermit_No, WorkPermit_Start = contractortoDb.WorkPermit_Start, WorkPermit_End = contractortoDb.WorkPermit_End, CategoryCard = contractortoDb.CategoryCard, Card_Type = contractortoDb.Card_Type, Card_No = contractortoDb.Card_No, Card_Start = contractortoDb.Card_Start, Card_End = contractortoDb.Card_End }; Db.ContractorForeigners.Add(_Foreigner); } if (contractortoDb.FileName != null) { var File = Db.ContractorEmployeeFiles.Find(contractortoDb.VoucherID); if (File == null) { var _file = new ContractorEmployeeFile { VoucherID = contractorInDb.VoucherID, FileName = contractortoDb.FileName, Stamp = DateTime.Now, CreateTime = DateTime.Now }; Db.ContractorEmployeeFiles.Add(_file); } } } Db.SaveChanges(); } return(Ok()); } catch (Exception e) { Loger.Error(e); Console.WriteLine(e.Message); return(BadRequest(e.Message)); } }
public IHttpActionResult Save(ContractorDto contractortoDb) { Console.WriteLine("Save"); try { var contractorInDb = Db.Contractors.Find(contractortoDb.EmployeeID, contractortoDb.ContractorID); //update if (contractorInDb != null) { contractorInDb.IdCard = contractortoDb.IdCard; contractorInDb.ContractorID = contractortoDb.ContractorID; contractorInDb.VoucherID = contractorInDb.VoucherID; contractorInDb.Name = contractortoDb.Name; contractorInDb.Phone = contractortoDb.Phone; contractorInDb.Birthday = contractortoDb.Birthday; contractorInDb.Sex = contractortoDb.Sex; contractorInDb.Job = contractortoDb.Job; contractorInDb.Region = contractortoDb.Region; contractorInDb.Remark = contractortoDb.Remark; if (contractortoDb.Status == "N" || contractortoDb.Status == "X") { contractorInDb.Status = contractortoDb.Status; } else { contractorInDb.Status = contractortoDb.IsUpdate ? "Q" : "F"; } contractorInDb.PreStatus = contractortoDb.Status; contractorInDb.Stamp = DateTime.Now; contractorInDb.UserId = contractortoDb.UserId; contractorInDb.TrainDate = contractortoDb.TrainDate; contractorInDb.AppointmentDate = contractortoDb.AppointmentDate; contractorInDb.EmployeeID = contractorInDb.EmployeeID; contractorInDb.ReasonReturn = null; Db.Entry(contractorInDb).State = EntityState.Modified; } else { contractorInDb = new Contractor { VoucherID = contractortoDb.VoucherID, EmployeeID = oAC.SelectScalar <string>("select dbo.fnContractorEmployeeID(@typeID)", new object[] { "Employee" }), IdCard = contractortoDb.IdCard, Name = contractortoDb.Name, ContractorID = contractortoDb.ContractorID, Phone = contractortoDb.Phone, Birthday = contractortoDb.Birthday, Sex = contractortoDb.Sex, Job = contractortoDb.Job, Region = contractortoDb.Region, Remark = contractortoDb.Remark, Status = contractortoDb.Status, PreStatus = contractortoDb.Status, Stamp = DateTime.Now, UserId = contractortoDb.UserId, TrainDate = contractortoDb.TrainDate, AppointmentDate = contractortoDb.AppointmentDate }; Db.Contractors.Add(contractorInDb); var _biometric = new ContractorBiometric { EmployeeID = contractorInDb.EmployeeID, CardNo = null, FaceTmp = null, IsValid = 0 }; Db.ContractorBiometrics.Add(_biometric); } Db.SaveChanges(); return(Ok()); } catch (Exception e) { Loger.Error(e); return(BadRequest(e.Message)); } }