/// <summary> /// Gets the delivery option. /// </summary> /// <param name="request">The request.</param> /// <returns>The response with the delivery option.</returns> private EntityDataServiceResponse <DeliveryOption> GetDeliveryOption(GetDeliveryOptionDataRequest request) { var shippingDataManager = this.GetDataManagerInstance(request.RequestContext); var deliveryOption = shippingDataManager.GetDeliveryOption(request.Code, request.QueryResultSettings.ColumnSet); var deliveryOptionList = new List <DeliveryOption>() { deliveryOption }; var deliveryOptions = new ReadOnlyCollection <DeliveryOption>(deliveryOptionList).AsPagedResult(); return(new EntityDataServiceResponse <DeliveryOption>(deliveryOptions)); }
/// <summary> /// Verifies whether the delivery mode is valid or not throwing <see cref="DataValidationException"></see> if not valid. /// </summary> /// <param name="deliveryModeId">The identifier of the delivery mode to be verified.</param> private void ValidateDeliveryMode(string deliveryModeId) { var deliveryOptionDataRequest = new GetDeliveryOptionDataRequest(deliveryModeId, new QueryResultSettings(new ColumnSet("CODE"), PagingInfo.AllRecords)); var deliveryOptionDataResponse = this.Context.Execute <EntityDataServiceResponse <DeliveryOption> >(deliveryOptionDataRequest); DeliveryOption deliveryOption = deliveryOptionDataResponse.PagedEntityCollection.FirstOrDefault(); if (deliveryOption == null) { RetailLogger.Log.CrtWorkflowUpdateDeliverySpecificationRequestHandlerDeliveryModeNotFound(deliveryModeId); throw new DataValidationException(DataValidationErrors.Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryMode, "The provided delivery mode if was not found."); } }
/// <summary> /// Given a delivery mode code, retrieve the charge group assigned to that delivery mode. /// </summary> /// <param name="context">The request context.</param> /// <param name="deliveryMode">The delivery mode code.</param> /// <returns> /// The delivery mode charge group identifier. /// </returns> private static string GetDeliveryModeGroupFromCode(RequestContext context, string deliveryMode) { DeliveryOption deliveryOption; string deliveryModeGroup = string.Empty; if (!string.IsNullOrWhiteSpace(deliveryMode)) { var deliveryOptionDataRequest = new GetDeliveryOptionDataRequest(deliveryMode, new QueryResultSettings(new ColumnSet("CODE", "MARKUPGROUP"), PagingInfo.AllRecords)); var deliveryOptionDataResponse = context.Execute <EntityDataServiceResponse <DeliveryOption> >(deliveryOptionDataRequest); deliveryOption = deliveryOptionDataResponse.PagedEntityCollection.FirstOrDefault(); if (deliveryOption != null && deliveryOption.ChargeGroup != null) { deliveryModeGroup = deliveryOption.ChargeGroup; } } return(deliveryModeGroup); }