private void SaveGrid2(LinkTableVM grid1, IEnumerable <KeyValuePair <string, ModelState> > state, InfoTable info)
 {
     if (grid1.inserted != null)
     {
         foreach (LinkTableViewModel model in grid1.inserted)
         {
             var range = new LinkTable();
             AutoMapper(new Models.AutoMapperParm {
                 Destination = range, Source = model
             });
             range.CreatedTime = DateTime.Now;
             range.CreatedUser = UserName;
             _hrUnitOfWork.SalaryDesignRepository.AddLinkTable(range);
         }
     }
 }
        public ActionResult DetailsSecondPage(SalaryDesignSecondViewModel model, OptionsViewModel moreInfo, SalaryBasisDesignViewModel grid1, LinkTableVM grid2)
        {
            var          msg    = "OK,";
            List <Error> errors = new List <Error>();

            if (ModelState.IsValid)
            {
                if (ServerValidationEnabled)
                {
                    errors = _hrUnitOfWork.CompanyRepository.CheckForm(new CheckParm
                    {
                        CompanyId    = CompanyId,
                        ObjectName   = "SalaryBasisPage2",
                        Columns      = Models.Utils.GetColumnViews(ModelState.Where(a => !a.Key.Contains('.'))),
                        ParentColumn = "CompanyId",
                        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)));
                    }
                }
            }
            if (model.Id == 0)
            {
                InfoTable record = new InfoTable();
                AutoMapper(new Models.AutoMapperParm
                {
                    Destination = record,
                    Source      = model,
                    ObjectName  = "SalaryBasisPage2",
                    Version     = Convert.ToByte(Request.QueryString["Version"]),
                    Options     = moreInfo
                });
                record.Name      = grid1.Name;
                record.IsLocal   = grid1.IsLocal;
                record.StartDate = grid1.StartDate;
                record.EndDate   = grid1.EndDate;
                record.Basis     = grid1.Basis;
                record.Purpose   = grid1.Purpose;
                record.CompanyId = CompanyId;

                record.CreatedTime = DateTime.Now;
                record.CreatedUser = UserName;
                _hrUnitOfWork.SalaryDesignRepository.Add(record);
                SaveGrid2(grid2, ModelState.Where(a => a.Key.Contains("grid2")), record);

                errors = SaveChanges(Language);

                if (errors.Count > 0)
                {
                    msg = errors.First().errors.First().message;
                }
            }

            return(Json(msg));
        }