public async Task <ActionResult> CreateAsync(MenuItem menuItem) { if (menuItem == null) { throw new ArgumentNullException(nameof(menuItem)); } if (ModelState.IsValid) { menuItem.TrackingState = TrackingState.Added; foreach (var item in menuItem.SubMenus) { item.ParentId = menuItem.Id; item.TrackingState = TrackingState.Added; } menuItemService.ApplyChanges(menuItem); try { var result = await unitOfWork.SaveChangesAsync(); return(Json(new { success = true, result = result }, JsonRequestBehavior.AllowGet)); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { var errormessage = string.Join(",", e.EntityValidationErrors.Select(x => x.ValidationErrors.FirstOrDefault()?.PropertyName + ":" + x.ValidationErrors.FirstOrDefault()?.ErrorMessage)); return(Json(new { success = false, err = errormessage }, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(new { success = false, err = e.GetBaseException().Message }, JsonRequestBehavior.AllowGet)); } //DisplaySuccessMessage("Has update a menuItem record"); } else { var modelStateErrors = string.Join(",", ModelState.Keys.SelectMany(key => ModelState[key].Errors.Select(n => n.ErrorMessage))); return(Json(new { success = false, err = modelStateErrors }, JsonRequestBehavior.AllowGet)); //DisplayErrorMessage(modelStateErrors); } //var menuitemRepository = this.unitOfWork.RepositoryAsync<MenuItem>(); //ViewBag.ParentId = new SelectList(await menuitemRepository.Queryable().OrderBy(n=>n.Title).ToListAsync(), "Id", "Title", menuItem.ParentId); //return View(menuItem); }