public MenuViewModel Create() { Dictionary <string, MenuGroupViewModel> menuGroupViewModels = new Dictionary <string, MenuGroupViewModel>(); foreach (IExtensionMetadata extensionMetadata in ExtensionManager.GetInstances <IExtensionMetadata>()) { #if DEBUG _logger.LogInformation( $"Looking for menu groups for extension metadata {extensionMetadata.GetType().FullName}"); #endif if (extensionMetadata.MenuGroups == null) { continue; } foreach (Infrastructure.MenuGroup menuGroup in extensionMetadata.MenuGroups) { MenuGroupViewModel menuGroupViewModel = FindOrCreateMenuGroup(RequestHandler, menuGroupViewModels, menuGroup, _logger); // Take existing items List <MenuItemViewModel> menuItemViewModels = menuGroupViewModel.MenuItems; if (menuGroup.MenuItems == null) { continue; } foreach (Infrastructure.MenuItem menuItem in menuGroup.MenuItems) { // TODO: here add claims verification for menu items menuItemViewModels.Add( new MenuItemViewModelFactory(RequestHandler).Create(menuItem)); } // Set all the ordered items back to menu group menuGroupViewModel.MenuItems = menuItemViewModels.OrderBy(mi => mi.Position).ToList(); } } return(new MenuViewModel() { // If two menu groups have the same position, they're ordered alphabetically // Don't add if no menu items MenuGroups = menuGroupViewModels.Values.Where(m_ => m_.MenuItems.Any()).OrderBy(m_ => m_.Position).ThenBy(m_ => m_.Name) }); }
public HttpResponseMessage Post(HttpRequestMessage request, MenuGroupViewModel menuGroupVm) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } else { MenuGroup newMenuGroup = new MenuGroup(); newMenuGroup.UpdateMenuGroup(menuGroupVm); var category = _menuGroupService.Add(newMenuGroup); _menuGroupService.SaveChanges(); response = request.CreateResponse(HttpStatusCode.Created, category); } return response; })); }
public HttpResponseMessage Put(HttpRequestMessage request, MenuGroupViewModel menuGroupVm) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } else { var menuGroupDb = _menuGroupService.GetByID(menuGroupVm.ID); menuGroupDb.UpdateMenuGroup(menuGroupVm); _menuGroupService.Update(menuGroupDb); _menuGroupService.SaveChanges(); response = request.CreateResponse(HttpStatusCode.OK); } return response; })); }
public async Task <HttpResponseMessage> Post(HttpRequestMessage request, MenuGroupViewModel menuGroupVm) { return(await CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (ModelState.IsValid) { request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } else { //Khoi tao MenuGroup newMenuGroup = new MenuGroup(); newMenuGroup.UpdateMenuGroup(menuGroupVm); //Gan ViewModel sang Model de Insert DB, this //Goi Insert var menuGroup = _menuGroupService.Add(newMenuGroup); _menuGroupService.SaveAsync(); response = request.CreateResponse(HttpStatusCode.Created, menuGroup); } return response; })); }
public async Task <HttpResponseMessage> Put(HttpRequestMessage request, MenuGroupViewModel menuGroupVm) { //Khoi tao var menuGroupDb = await _menuGroupService.GetById(menuGroupVm.ID); //AutoMapper menuGroupDb.UpdateMenuGroup(menuGroupVm); return(await CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (ModelState.IsValid) { request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } else { _menuGroupService.Update(menuGroupDb); _menuGroupService.SaveAsync(); response = request.CreateResponse(HttpStatusCode.OK); } return response; })); }
public static void UpdateMenuGroup(this MenuGroup menuGroup, MenuGroupViewModel menuGroupVM) { menuGroup.ID = menuGroupVM.ID; menuGroup.Name = menuGroupVM.Name; }
public static void updateMenuGroup(this MenuGroup menuGroup, MenuGroupViewModel menuGroupVm) { menuGroup.ID = menuGroupVm.ID; menuGroup.Name = menuGroupVm.Name; }