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));
        }
示例#2
0
        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"));
            }
        }
示例#3
0
        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));
        }