public override IShippingGatewayMethod CreateShippingGatewayMethod(IGatewayResource gatewayResource, IShipCountry shipCountry, string name) { var attempt = GatewayProviderService.CreateShipMethodWithKey(GatewayProviderSettings.Key, shipCountry, name, gatewayResource.ServiceCode); if (!attempt.Success) { throw attempt.Exception; } return(new FoaShippingGatewayMethod(gatewayResource, attempt.Result, shipCountry, GatewayProviderSettings)); }
/// <summary> /// Creates an instance of a <see cref="FixedRateShippingGatewayMethod"/> /// </summary> /// <returns></returns> /// <remarks> /// /// GatewayShipMethods (in general) should be unique with respect to <see cref="IShipCountry"/> and <see cref="IGatewayResource"/>. However, this is a /// a provider is sort of a unique case, sense we want to be able to add as many ship methods with rate tables as needed in order to facilitate /// tiered rate tables for various ship methods without requiring a carrier based shipping provider. /// /// </remarks> public override IShippingGatewayMethod CreateShippingGatewayMethod(IGatewayResource gatewayResource, IShipCountry shipCountry, string name) { Mandate.ParameterNotNull(gatewayResource, "gatewayResource"); Mandate.ParameterNotNull(shipCountry, "shipCountry"); Mandate.ParameterNotNullOrEmpty(name, "name"); var attempt = GatewayProviderService.CreateShipMethodWithKey(GatewayProviderSettings.Key, shipCountry, name, gatewayResource.ServiceCode + string.Format("-{0}", Guid.NewGuid())); if (!attempt.Success) { throw attempt.Exception; } return(new FixedRateShippingGatewayMethod(gatewayResource, attempt.Result, shipCountry)); }
/// <summary> /// Creates an instance of a <see cref="FedExShippingGatewayMethod"/> /// </summary> /// <returns></returns> /// <remarks> /// /// GatewayShipMethods (in general) should be unique with respect to <see cref="IShipCountry"/> and <see cref="IGatewayResource"/>. However, this is a /// a provider is sort of a unique case, sense we want to be able to add as many ship methods with rate tables as needed in order to facilitate /// tiered rate tables for various ship methods without requiring a carrier based shipping provider. /// /// </remarks> public override IShippingGatewayMethod CreateShippingGatewayMethod(IGatewayResource gatewayResource, IShipCountry shipCountry, string name) { //Mandate.ParameterNotNull(gatewayResource, "gatewayResource"); //Mandate.ParameterNotNull(shipCountry, "shipCountry"); //Mandate.ParameterNotNullOrEmpty(name, "name"); var attempt = GatewayProviderService.CreateShipMethodWithKey(GatewayProviderSettings.Key, shipCountry, name, gatewayResource.ServiceCode); if (!attempt.Success) { throw attempt.Exception; } return(new FedExShippingGatewayMethod(gatewayResource, attempt.Result, shipCountry, GatewayProviderSettings, _runtimeCache)); }