public ActionResult Create(DataItemViewModel viewModel, int[] attachFileIds, int[] mainImageIds) { if (ModelState.IsValid) { DataItem model = AutoMapper.Mapper.Map <DataItem>(viewModel); if (attachFileIds != null) { model.AttachFiles = new List <File>(); foreach (int id in attachFileIds) { File file = fileService.getFile(id); if (file != null) { model.AttachFiles.Add(file); } } } if (mainImageIds != null && mainImageIds.Length > 0) { model.Images = new List <File>(); File file = fileService.getFile(mainImageIds[mainImageIds.Length - 1]); if (file != null) { model.Images.Add(file); } } model.LastUpdatedDate = DateTime.UtcNow; var user = memberService.GetUser(User.Identity.Name); model.LastUpdatedUserID = user.Id; model.CreatedDate = model.LastUpdatedDate; model.CreatedUserID = user.Id; dataItemService.CreateDataItem(model); SubMenu subMenu = categoryService.GetCategory(model.SubCategoryID) as SubMenu; if (subMenu != null) { model.MainMenuID = subMenu.GetMainMenu().Code; } dataItemService.SaveDataItem(); if (!string.IsNullOrEmpty(viewModel.ReturnedURL)) { string[] urls = viewModel.ReturnedURL.Split('/'); return(RedirectToAction(urls[1], urls[0])); } TempData["ReloadData"] = true; return(RedirectToAction("Index")); } // get submenu list var adminRole = memberService.GetUserRoles().SingleOrDefault(r => r.Name == MemberRoles.Admin.ToString()); ApplicationUser currUser = memberService.GetUser(User.Identity.Name); IEnumerable <SubMenu> subMenus = null; if (currUser.Roles.Any(r => r.RoleId == adminRole.Id)) { subMenus = categoryService.GetDataSubMenus().ToList(); ViewBag.CountryId = new SelectList(categoryService.GetCountries(), "Code", "CodeName"); } else { List <SubCategory> country = new List <SubCategory>(); country.Add(currUser.Country); ViewBag.CountryId = new SelectList(country, "Code", "CodeName"); subMenus = categoryService.GetSubMenus(currUser) as IEnumerable <SubMenu>; } List <SubMenu> subMenuFullNames = new List <SubMenu>(); foreach (var subMenu in subMenus) { string subMenuName = subMenu.GetMainMenu().CodeName + " > " + subMenu.CodeName; SubMenu SubViewModel = new SubMenu(); SubViewModel.Code = subMenu.Code; SubViewModel.CodeName = subMenuName; subMenuFullNames.Add(SubViewModel); } ViewBag.SubCategoryID = new SelectList(subMenuFullNames, "Code", "CodeName"); if (mainImageIds != null) { viewModel.Images = new List <File>(); foreach (var id in mainImageIds) { File file = fileService.getFile(id); if (file != null) { viewModel.Images.Add(file); } } } if (attachFileIds != null) { viewModel.AttachFiles = new List <File>(); foreach (var id in attachFileIds) { File file = fileService.getFile(id); if (file != null) { viewModel.AttachFiles.Add(file); } } } return(View(viewModel)); }