private static IEnumerable <ShippingDateAndTime> GetShippingDateAndTime(BringRatesSampleBlockView view) { if (view.ShippingDateAndTime.HasValue) { yield return(new ShippingDateAndTime(view.ShippingDateAndTime.Value)); } }
public static ShipmentLeg GetShipmentLeg(BringRatesSampleBlockView view) { return(new ShipmentLeg( view.PostalCodeFrom, view.PostalCodeTo, view.CountryFrom, view.CountryTo)); }
private static IEnumerable <Products> GetProducts(BringRatesSampleBlockView view) { var products = view.Products.Select(Product.GetByCode).ToList(); return(products.Count != 0 ? new[] { new Products(products.ToArray()) } : Enumerable.Empty <Products>()); }
private static IEnumerable <AdditionalServices> GetAdditionalServices(BringRatesSampleBlockView view) { var additionalServices = view.AdditionalServices.Select(AdditionalService.GetByCode).ToList(); return(additionalServices.Count != 0 ? new[] { new AdditionalServices(additionalServices.ToArray()) } : Enumerable.Empty <AdditionalServices>()); }
private void ValidatePackageSize(BringRatesSampleBlockView formData) { var hasWeight = formData.Weight.HasValue; var hasDimensions = formData.Width.HasValue && formData.Height.HasValue && formData.Length.HasValue; var hasVolume = formData.Volume.HasValue; var hasPackageSize = hasWeight || hasDimensions || hasVolume; if (!hasPackageSize) { ModelState.AddModelError("", "Ingen pakkestørrelse gitt. Vennligst oppgi vekt, volum eller dimensjoner."); } }
public ActionResult Post(BringRatesSampleBlockView formData) { Validate(formData); if (!ModelState.IsValid) { return(PartialView(ViewPath, formData)); } var model = Search(formData); return(PartialView(ViewPath, model)); }
public static IShippingQueryParameter[] GetAdditionalParameters(BringRatesSampleBlockView view) { var parameters = new List <IShippingQueryParameter>(); var additionalPackageSizes = GetPackageSizes(view).Skip(1); parameters.AddRange(additionalPackageSizes); parameters.AddRange(GetShippingDateAndTime(view)); parameters.AddRange(GetEdi(view)); parameters.AddRange(GetShippedFromPostOffice(view)); parameters.AddRange(GetProducts(view)); parameters.AddRange(GetAdditionalServices(view)); return(parameters.ToArray()); }
private static IEnumerable <PackageSize> GetPackageSizes(BringRatesSampleBlockView view) { if (view.Weight.HasValue) { yield return(PackageSize.InGrams(view.Weight.Value)); } if (view.Volume.HasValue) { yield return(PackageSize.InVolume(view.Volume.Value)); } if (view.Length.HasValue && view.Width.HasValue && view.Height.HasValue) { yield return(PackageSize.InDimensions(view.Length.Value, view.Width.Value, view.Height.Value)); } }
private BringRatesSampleBlockView Search(BringRatesSampleBlockView formData) { var settings = new ShippingSettings(GetBaseUri()); var client = new ShippingClient(settings); var shipmentLeg = ParameterMapper.GetShipmentLeg(formData); var packageSize = ParameterMapper.GetPackageSize(formData); var additionalParameters = ParameterMapper.GetAdditionalParameters(formData); var query = new EstimateQuery(shipmentLeg, packageSize, additionalParameters); var result = client.FindAsync <ShipmentEstimate>(query).Result; var estimateGroups = result.Estimates .GroupBy(x => x.GuiInformation.MainDisplayCategory) .Select(x => new BringRatesSampleBlockView.EstimateGroup(x.Key, x)); var model = new BringRatesSampleBlockView(estimateGroups); return(model); }
private static IEnumerable <Edi> GetEdi(BringRatesSampleBlockView view) { yield return(new Edi(view.Edi)); }
private static IEnumerable <ShippedFromPostOffice> GetShippedFromPostOffice(BringRatesSampleBlockView view) { yield return(new ShippedFromPostOffice(view.ShippedFromPostOffice)); }
public static PackageSize GetPackageSize(BringRatesSampleBlockView view) { return(GetPackageSizes(view).First()); }
private void Validate(BringRatesSampleBlockView formData) { ValidatePackageSize(formData); }