/// <summary> /// Gets all button grids. /// </summary> /// <param name="request">Request instance.</param> /// <returns>Response instance.</returns> private static GetButtonGridsServiceResponse GetButtonGrids(GetButtonGridsServiceRequest request) { // resolves the layout based on the principal (user, terminal, channel) and get the button grid ids for those var getTillLayoutRequest = new GetTillLayoutDataRequest(); TillLayout layout = request.RequestContext.Execute <SingleEntityDataServiceResponse <TillLayout> >(getTillLayoutRequest).Entity; if (layout == null) { throw new ConfigurationException(ConfigurationErrors.Microsoft_Dynamics_Commerce_Runtime_LayoutNotFound, "Could not find layout associated with the request."); } // get all button grids var getButtonGridDataRequest = new GetButtonGridsDataRequest(QueryResultSettings.AllRecords); PagedResult <ButtonGrid> buttonGrids = request.RequestContext.Runtime.Execute <EntityDataServiceResponse <ButtonGrid> >(getButtonGridDataRequest, request.RequestContext).PagedEntityCollection; // get all button grids that participate on the layout (top level) var topLevelButtonGridIdsPertainingToLayout = layout.ButtonGridZones.Select(buttonGridZone => buttonGridZone.ButtonGridId); // get filter only button grids pertaining to the layout var layoutFilteredButtonGrids = new ButtonGridFilter(topLevelButtonGridIdsPertainingToLayout, buttonGrids.Results).GetButtonGrids(); // paginate result according to client settings PagedResult <ButtonGrid> buttonGridPagedResult = new PagedResult <ButtonGrid>( layoutFilteredButtonGrids, request.QueryResultSettings.Paging, layoutFilteredButtonGrids.Count); return(new GetButtonGridsServiceResponse(buttonGridPagedResult)); }
private void PayButton_Click(object sender, EventArgs e) { if (tillPopup != null) { return; } if (currentOrder.OrderItems.Count > 0) { TillLayout tillLayout = new TillLayout(this.Context, this); tillLayout.TotalDue = currentOrder.TotalPrice(); tillPopup = new TillPopup(tillLayout); tillPopup.Width = 600; tillPopup.Height = 700; tillPopup.ShowAtLocation(container, GravityFlags.NoGravity, 90, 100); //tillLayout.LayoutParameters.Height = 800; } }