public ActionResult DeleteFlexForm(int id) { List <Error> errors = new List <Error>(); DataSource <FlexFormViewModel> source = new DataSource <FlexFormViewModel>(); string message = "OK"; FlexForm flexForm = _hrUnitOfWork.Repository <FlexForm>().Where(a => a.Id == id).FirstOrDefault(); AutoMapper(new Models.AutoMapperParm { Source = flexForm, ObjectName = "FlexForm", Transtype = TransType.Delete }); _hrUnitOfWork.PagesRepository.Remove(flexForm); source.Errors = SaveChanges(Language); if (source.Errors.Count() > 0) { return(Json(source)); } else { return(Json(message)); } }
public ActionResult FlexFormDetails(FlexFormViewModel model) { List <Error> errors = new List <Error>(); if (ModelState.IsValid) { if (ServerValidationEnabled) { errors = _hrUnitOfWork.CompanyRepository.CheckForm(new CheckParm { CompanyId = CompanyId, ObjectName = "FlexForm", TableName = "FlexForms", Columns = Models.Utils.GetColumnViews(ModelState.Where(a => !a.Key.Contains('.'))), Culture = Language }); if (errors.Count() > 0) { foreach (var e in errors) { foreach (var errorMsg in e.errors) { ModelState.AddModelError(errorMsg.field, errorMsg.message); } } return(Json(Models.Utils.ParseFormErrors(ModelState))); } } } else { return(Json(Models.Utils.ParseFormErrors(ModelState))); } FlexForm flexForm = new FlexForm(); if (model.Id == 0) //Add { AutoMapper(new AutoMapperParm { ObjectName = "FlexForm", Source = model, Destination = flexForm, Version = Convert.ToByte(Request.Form["version"]), Transtype = TransType.Insert }); flexForm.Name = model.FormName; flexForm.CreatedUser = User.Identity.Name; flexForm.CreatedTime = DateTime.Now; _hrUnitOfWork.PagesRepository.Add(flexForm); } else //Update { flexForm = _hrUnitOfWork.Repository <FlexForm>().Where(f => f.Id == model.Id).FirstOrDefault(); AutoMapper(new AutoMapperParm { ObjectName = "FlexForm", Source = model, Destination = flexForm, Transtype = TransType.Update }); flexForm.Name = model.FormName; flexForm.ModifiedUser = User.Identity.Name; flexForm.ModifiedTime = DateTime.Now; _hrUnitOfWork.PagesRepository.Attach(flexForm); _hrUnitOfWork.PagesRepository.Entry(flexForm).State = EntityState.Modified; } //FS List <FlexFormFS> fieldSets = _hrUnitOfWork.Repository <FlexFormFS>().Where(f => f.FlexformId == model.Id).ToList(); List <int> fsIds = fieldSets.Select(f => f.Id).ToList(); List <FlexFormColumn> columns = _hrUnitOfWork.Repository <FlexFormColumn>().Where(f => fsIds.Contains(f.FlexFSId)).ToList(); //FieldSets foreach (var fs in model.FieldSets) { FlexFormFS flexSet = fieldSets.Where(f => f.Id == fs.Id).FirstOrDefault(); if (fs.Id == 0) //Add { flexSet = new FlexFormFS(); AutoMapper(new AutoMapperParm { Source = fs, Destination = flexSet }); flexSet.FSOrder = fs.order; flexSet.CreatedUser = User.Identity.Name; flexSet.CreatedTime = DateTime.Now; flexSet.Flexform = flexForm; _hrUnitOfWork.PagesRepository.Add(flexSet); } else //Update { fs.FlexformId = model.Id; AutoMapper(new AutoMapperParm { Source = fs, Destination = flexSet }); flexSet.FSOrder = fs.order; flexSet.ModifiedUser = User.Identity.Name; flexSet.ModifiedTime = DateTime.Now; _hrUnitOfWork.PagesRepository.Attach(flexSet); _hrUnitOfWork.PagesRepository.Entry(flexSet).State = EntityState.Modified; } //Columns foreach (var fc in fs.Columns) { FlexFormColumn flexCol = columns.Where(f => f.Id == fc.Id).FirstOrDefault(); if (fc.Id == 0) //Add { flexCol = new FlexFormColumn(); AutoMapper(new AutoMapperParm { Source = fc, Destination = flexCol }); flexCol.CreatedUser = User.Identity.Name; flexCol.CreatedTime = DateTime.Now; flexCol.FlexformFS = flexSet; _hrUnitOfWork.PagesRepository.Add(flexCol); } else //Update { fc.FlexFSId = fs.Id; AutoMapper(new AutoMapperParm { Source = fc, Destination = flexCol }); flexCol.ModifiedUser = User.Identity.Name; flexCol.ModifiedTime = DateTime.Now; _hrUnitOfWork.PagesRepository.Attach(flexCol); _hrUnitOfWork.PagesRepository.Entry(flexCol).State = EntityState.Modified; } } } errors = SaveChanges(Language); var message = "OK"; if (errors.Count > 0) { message = errors.First().errors.First().message; } else { message += "," + ((new JavaScriptSerializer()).Serialize(flexForm)); } return(Json(message)); }