public ActionResult FlexFormDetails(int id = 0, byte version = 0) { if (!_hrUnitOfWork.LeaveRepository.CheckAutoCompleteColumn("LeaveRequest", CompanyId, version, "DesignedBy")) { ViewBag.Employees = _hrUnitOfWork.PeopleRepository.GetActiveEmployees(CompanyId, Language); } if (id == 0) { return(View(new FlexFormViewModel())); } FlexFormViewModel FlexForm = _hrUnitOfWork.PagesRepository.GetFlexForm(id, Language); return(FlexForm == null ? (ActionResult)HttpNotFound() : View(FlexForm)); }
public ActionResult CreatPersonForm(List <PersonFormPageVM> modelList, string ExpDate) { if (DateTime.Parse(ExpDate) < DateTime.Now) { return(Json(@MsgUtils.Instance.Trls("QuestionnairExpired"))); } var bl = new PersonFormBL(_hrUnitOfWork, Language, CompanyId); var modelstate = bl.IsValid(ModelState, ServerValidationEnabled); //Delete Befor saving Data FlexFormViewModel FlexForm = _hrUnitOfWork.PersonFormRepository.GetFlexPersonForm(modelList[0].SendFormId, Language, User.Identity.GetEmpId()); foreach (var item in FlexForm.personForm) { Model.Domain.PersonForm pf = new Model.Domain.PersonForm(); pf.Id = item.Id; _hrUnitOfWork.PersonFormRepository.Remove(pf); } if (!modelstate.IsValid) { return(Json(Models.Utils.ParseFormErrors(modelstate))); } List <Model.Domain.PersonForm> recordList = new List <Model.Domain.PersonForm>(); foreach (var model in modelList) { if (model.AnswersList != null) { if (model.AnswersList.Count > 1) { model.Answer = (model.AnswersList.Any()) ? model.AnswersList.Select(a => a.ToString()).Aggregate <string>((x1, x2) => x1 + "," + x2).ToString() : ""; } else { model.Answer = model.AnswersList[0]; } } model.EmpId = User.Identity.GetEmpId(); if (model.Id == 0) // new { Model.Domain.PersonForm record = new Model.Domain.PersonForm { FormId = model.FormId, SendFormId = model.SendFormId, EmpId = model.EmpId, FormColumnId = model.FormColumnId, Question = model.Question, Answer = model.Answer, OtherText = model.OtherText, CreatedTime = DateTime.Now, CreatedUser = UserName }; recordList.Add(record); //AutoMapper(new Models.AutoMapperParm //{ // Destination = record, // Source = model, // ObjectName = "PersonFormPage", // Transtype = TransType.Insert //}); //_hrUnitOfWork.PersonFormRepository.Add(record); } } _hrUnitOfWork.PersonFormRepository.AddRange(recordList); var errors = SaveChanges(Language); if (errors.Count > 0) { return(Json(errors.First().errors.First().message)); } else { return(Json("OK")); } }
public ActionResult PersonFlexFormDetails(int id = 0) { FlexFormViewModel FlexForm = _hrUnitOfWork.PersonFormRepository.GetFlexPersonForm(id, Language, User.Identity.GetEmpId()); return(FlexForm == null ? (ActionResult)HttpNotFound() : View(FlexForm)); }
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)); }