public IActionResult Edit(ResistanceEditForm viewModel) { if (ModelState.IsValid) { viewModel.Resistance.UserName = UserName; _rsApplication.UpdateResistance(viewModel); return(Ok()); } var values = ModelState.Values.Where(m => m.Errors.Count > 0).Select(s => s.Errors).ToList(); return(StatusCode(StatusCodes.Status500InternalServerError, values)); }
public void UpdateResistance(ResistanceEditForm form) { var viewModel = form.Resistance; var resistance = _db.Resistance.SingleOrDefault(r => r.Id == viewModel.Id); if (viewModel.CompanyId == -1) { var newCompany = _db.Company.Add(new Company { Name = form.Company.Name, CompanyScaleId = form.Company.ScaleId, CompanyTypeId = form.Company.TypeId, CompanyWorkLineId = form.Company.WorklineId }); viewModel.CompanyId = newCompany.Entity.Id; } if (viewModel.MainCompanyId == -1) { var newCompany = _db.Company.Add(new Company { Name = form.MainCompany.Name, CompanyScaleId = form.MainCompany.ScaleId, CompanyTypeId = form.MainCompany.TypeId, CompanyWorkLineId = form.MainCompany.WorklineId }); viewModel.MainCompanyId = newCompany.Entity.Id; _db.CompanyOutsourceCompany.Add(new CompanyOutsourceCompany { CompanyId = viewModel.MainCompanyId.Value, OutsourceCompanyId = viewModel.CompanyId }); } if (viewModel.MainCompanyId != null && viewModel.MainCompanyId != 0) { var exist = _db.CompanyOutsourceCompany.Any(s => s.CompanyId == viewModel.MainCompanyId && s.OutsourceCompanyId == viewModel.CompanyId); if (!exist) { _db.CompanyOutsourceCompany.Add(new CompanyOutsourceCompany { CompanyId = viewModel.MainCompanyId.Value, OutsourceCompanyId = viewModel.CompanyId }); } } resistance.Id = viewModel.Id; resistance.CategoryId = viewModel.CategoryId; resistance.CompanyId = viewModel.CompanyId; resistance.MainCompanyId = viewModel.MainCompanyId; resistance.Code = viewModel.Code; resistance.EmployeeCountId = viewModel.EmployeeCountId; resistance.EmployeeCountNumber = viewModel.EmployeeCount; resistance.HasTradeUnion = viewModel.HasTradeUnion; resistance.TradeUnionAuthorityId = viewModel.TradeUnionAuthorityId; resistance.TradeUnionId = viewModel.TradeUnionId; resistance.Description = viewModel.ResistanceDescription; resistance.Note = viewModel.ResistanceNote; resistance.LegalInterventionDesc = viewModel.LegalInterventionDesc; resistance.FiredEmployeeCountByProtesto = viewModel.FiredEmployeeCountByProtesto; resistance.DevelopRight = viewModel.DevelopRight; resistance.ResistanceResult = viewModel.ResistanceResult; resistance.Updater = viewModel.UserName; resistance.UpdateDate = DateTime.Now; resistance.ResistanceCorporations = new List <ResistanceCorporation>(); resistance.ResistanceEmploymentTypes = new List <ResistanceEmploymentType>(); resistance.ResistanceResistanceReasons = new List <ResistanceResistanceReason>(); resistance.ResistanceNews = new List <ResistanceNews>(); if (viewModel.AnyLegalIntervention == 1) { resistance.AnyLegalIntervention = true; } if (viewModel.AnyLegalIntervention == 2) { resistance.AnyLegalIntervention = false; } var rCorporations = _db.ResistanceCorporation.Where(r => r.ResistanceId == resistance.Id).ToList(); _db.ResistanceCorporation.RemoveRange(rCorporations); if (viewModel.EmploymentTypeIds != null) { viewModel.EmploymentTypeIds.ForEach(emp => resistance.ResistanceEmploymentTypes.Add(new ResistanceEmploymentType { EmploymentTypeId = emp })); } var rEmpl = _db.ResistanceEmploymentType.Where(r => r.ResistanceId == resistance.Id).ToList(); _db.ResistanceEmploymentType.RemoveRange(rEmpl); var rReason = _db.ResistanceResistanceReason.Where(r => r.ResistanceId == resistance.Id).ToList(); _db.ResistanceResistanceReason.RemoveRange(rReason); if (viewModel.ResistanceNewsIds != null) { viewModel.ResistanceNewsIds.Where(n => !n.IsDeleted).ToList().ForEach(news => resistance.ResistanceNews.Add(new ResistanceNews { NewsId = news.Id })); } var rNews = _db.ResistanceNews.Where(r => r.ResistanceId == resistance.Id).ToList(); _db.ResistanceNews.RemoveRange(rNews); //BindTradeUnionId(resistance, viewModel.TradeUnionId); BindCorporation(resistance, viewModel.CorporationIds); BindResistanceReason(resistance, viewModel.ResistanceReasonIds); _db.Resistance.Update(resistance); _db.SaveChanges(); }