public ProductViewModel(Product product) { this.Product = product; decimal shippingCost = this.Product.ShippingCost.Costs[ShippingType.NationalStandard]; this.PriceString = PriceStringUtilities.CreatePriceString(this.Product.Cost); this.ShippingPriceString = $"+ {PriceStringUtilities.CreatePriceString(shippingCost)} s/h"; this.ShippingPriceVisibility = shippingCost == 0 ? Visibility.Collapsed : Visibility.Visible; }
/// <summary> /// Updates the strings that display the cost summary (e.g. sub-total, tax, etc.) of the shopping cart. /// </summary> private void UpdateCostsSummaryStrings() { ShoppingCartCostsSummary costsSummary = this.ShoppingCart.CostsSummary; // Update values. this.SubtotalString = PriceStringUtilities.CreatePriceString(costsSummary.ItemsSubtotal); this.EstimatedShippingString = PriceStringUtilities.CreatePriceString(costsSummary.Shipping); this.ShippingTypeString = ShippingTypeStringUtilities.GetFriendlyNameOfShippingType(this.ShoppingCart.ShippingType); this.EstimatedTaxString = PriceStringUtilities.CreatePriceString(costsSummary.TotalTax); this.TotalCostString = PriceStringUtilities.CreatePriceString(costsSummary.Total); // Raise all the 'PropertyChanged' events. this.RaisePropertyChanged(nameof(this.SubtotalString)); this.RaisePropertyChanged(nameof(this.EstimatedShippingString)); this.RaisePropertyChanged(nameof(this.ShippingTypeString)); this.RaisePropertyChanged(nameof(this.EstimatedTaxString)); this.RaisePropertyChanged(nameof(this.TotalCostString)); }
/// <summary> /// Create the friendly name of a shipping option (including cost). /// </summary> public static string CreateShippingOptionTitle(ShippingType type, ShoppingCartCostsSummary costs, ShoppingCartCostsSummary currentTotalCost) { string shippingName = GetFriendlyNameOfShippingType(type); if (costs.Total == currentTotalCost.Total) { return(shippingName); } else { decimal costDifference = costs.Total - currentTotalCost.Total; if (costDifference >= 0) { return($"{shippingName}: +{PriceStringUtilities.CreatePriceString(costDifference)}"); } else { return($"{shippingName}: -{PriceStringUtilities.CreatePriceString(-costDifference)}"); } } }