private void RemoveShippingPackage(ShippingPackage selectedItem) { var itemToRemove = selectedItem; var confirmation = new ConditionalConfirmation { Content = string.Format("Remove shipping package '{0}?".Localize(), itemToRemove.ShippingOptionPackaging), Title = "Action confirmation".Localize(null, LocalizationScope.DefaultCategory) }; if (RemoveShippingPackageRequest != null) { RemoveShippingPackageRequest.Raise(confirmation, (x) => { if (x.Confirmed) { var item = InnerItem.ShippingPackages.SingleOrDefault( sp => sp.ShippingPackageId == itemToRemove.ShippingPackageId); if (item != null) { InnerItem.ShippingPackages.Remove(item); } } }); } }
public List <ShippingPackage> CreateShippingPackages(List <CartItem> cartItems) { var shippingPackages = new List <ShippingPackage>(); ShippingPackage package = new ShippingPackage(); foreach (var cartItem in cartItems) { for (int i = 0; i < cartItem.Amount; i++) { if (!ValidateCartItemAdditionToThePackage(package, cartItem)) { shippingPackages.Add(package); package = new ShippingPackage(); } package.Weight += cartItem.Product.Weight; package.Height = (int)Math.Ceiling(package.Height + cartItem.Product.Height); package.Width = GetCorrectPackageWidth(package, cartItem); package.Length = GetCorrectPackageLength(package, cartItem); package.Diameter = Math.Max(Math.Max(package.Width, package.Height), package.Length); } } shippingPackages.Add(package); return(shippingPackages); }
public ShippingOptionAddShippingPackageViewModel( ShippingPackage item, List <string> selectedPackaging, ICatalogRepository catalogRepository) { InnerItem = item; _selectedPackaging = selectedPackaging; InnerItem.PropertyChanged += InnerItem_PropertyChanged; _catalogRepository = catalogRepository; if (_catalogRepository != null) { AllPackages = _catalogRepository.Packagings.ToList(); } var view = CollectionViewSource.GetDefaultView(AllPackages); view.Filter = FilterItems; view.Refresh(); }
private bool ValidateCartItemAdditionToThePackage(ShippingPackage package, CartItem cartItem) { double weight = package.Weight + cartItem.Product.Weight; int height = (int)Math.Ceiling(package.Height + cartItem.Product.Height); int width = GetCorrectPackageWidth(package, cartItem); int length = GetCorrectPackageLength(package, cartItem); if (weight > 30) { return(false); } if (width + height + length > 200) { return(false); } if (width > 105 || height > 105 || length > 105) { return(false); } return(true); }
private void EditShippingPackage(ShippingPackage selectedItem) { var itemToUpdate = selectedItem; var selectedItems = InnerItem.ShippingPackages.Select(sp => sp.MappedPackagingId).ToList(); selectedItems.Remove(itemToUpdate.MappedPackagingId); var parameters = new[] { new KeyValuePair <string, object> ("item", itemToUpdate), new KeyValuePair <string, object> ("selectedPackaging", selectedItems) }; var itemVm = _addPackageVmFactory.GetViewModelInstance(parameters); var confirmation = new ConditionalConfirmation { Title = "Add Payment package".Localize(), Content = itemVm }; if (AddEditShippingPackageRequest != null) { AddEditShippingPackageRequest.Raise(confirmation, (x) => { if (x.Confirmed) { var itemFromDialog = (x.Content as IShippingOptionAddShippingPackageViewModel).InnerItem; OnUIThread(() => itemToUpdate.InjectFrom <CloneInjection>(itemFromDialog)); IsModified = true; } }); } }
private int GetCorrectPackageLength(ShippingPackage package, CartItem cartItem) { double correctLength = package.Length > cartItem.Product.Length ? package.Length : cartItem.Product.Length; return((int)Math.Ceiling(correctLength)); }
public CreateShippingPackageViewModel(IViewModelsFactory <IShippingPackageOverviewStepViewModel> overviewVmFactory, ShippingPackage item) { var itemParameter = new KeyValuePair <string, object>("item", item); RegisterStep(overviewVmFactory.GetViewModelInstance(itemParameter)); }