public ActionResult GroupLeaveActionDetails(LeaveActionFormViewModel model, OptionsViewModel moreInfo, int[] grid1)
        {
            List <Error> errors = new List <Error>();

            if (ModelState.IsValid)
            {
                if (ServerValidationEnabled)
                {
                    errors = _hrUnitOfWork.SiteRepository.CheckForm(new CheckParm
                    {
                        CompanyId    = CompanyId,
                        ObjectName   = "LeaveAction",
                        TableName    = "LeaveAdjusts",
                        ParentColumn = "CompanyId",
                        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)));
                    }
                }
                var message  = "OK";
                var Employee = _hrUnitOfWork.Repository <Assignment>().Where(a => grid1.Contains(a.DepartmentId)).Select(a => a.EmpId).ToList().Distinct();
                if (Employee.Count() > 0)
                {
                    foreach (var item in Employee)
                    {
                        var record = new LeaveAdjust();
                        AutoMapper(new Models.AutoMapperParm {
                            Destination = record, Source = model, ObjectName = "LeaveAction", Options = moreInfo
                        });
                        record.EmpId       = item;
                        record.CreatedUser = UserName;
                        record.CreatedTime = DateTime.Now;
                        record.AdjustDate  = DateTime.Now;
                        record.CompanyId   = CompanyId;
                        _hrUnitOfWork.LeaveRepository.Add(record);
                        //_hrUnitOfWork.LeaveRepository.PostLeaveAction(record, UserName);
                    }
                }
                else
                {
                    message = MsgUtils.Instance.Trls("thereisnoEmployee");
                }
                var Errors = SaveChanges(Language);
                if (Errors.Count > 0)
                {
                    message = Errors.First().errors.First().message;
                }
                return(Json(message));
            }
            return(Json(Models.Utils.ParseFormErrors(ModelState)));
        }
        public ActionResult Details(LeaveActionFormViewModel model, OptionsViewModel moreInfo)
        {
            List <Error> errors = new List <Error>();

            if (ModelState.IsValid)
            {
                if (ServerValidationEnabled)
                {
                    errors = _hrUnitOfWork.SiteRepository.CheckForm(new CheckParm
                    {
                        CompanyId    = CompanyId,
                        ObjectName   = "LeaveAction",
                        TableName    = "LeaveAdjusts",
                        ParentColumn = "CompanyId",
                        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)));
                    }
                }

                var record = _hrUnitOfWork.LeaveRepository.GetLeaveAction(model.Id);
                //insert
                if (record == null)
                {
                    record = new LeaveAdjust();
                    AutoMapper(new Models.AutoMapperParm
                    {
                        Destination = record,
                        Source      = model,
                        ObjectName  = "LeaveAction",
                        Options     = moreInfo,
                        Transtype   = TransType.Insert
                    });
                    record.CreatedUser = UserName;
                    record.CreatedTime = DateTime.Now;
                    record.AdjustDate  = DateTime.Now;
                    record.CompanyId   = CompanyId;
                    _hrUnitOfWork.LeaveRepository.Add(record);
                }

                //update
                else
                {
                    AutoMapper(new Models.AutoMapperParm
                    {
                        Destination = record,
                        Source      = model,
                        ObjectName  = "LeaveAction",
                        Options     = moreInfo,
                        Transtype   = TransType.Update
                    });

                    record.CompanyId = CompanyId;
                    _hrUnitOfWork.LeaveRepository.Attach(record);
                    _hrUnitOfWork.LeaveRepository.Entry(record).State = EntityState.Modified;
                }
                var Errors  = SaveChanges(Language);
                var message = "OK";
                if (Errors.Count > 0)
                {
                    message = Errors.First().errors.First().message;
                }

                return(Json(message));
            }

            return(Json(Models.Utils.ParseFormErrors(ModelState)));
        }