public static void ApplyDiscount(float[] float_params) { float discount_amount = float_params[0]; float duration_in_minutes = float_params[1]; //ideally these discounts would be serialized out to userdata but thats way too much work for now if (s_active_discounts == null) { s_active_discounts = new List <ActiveDiscount>(); } ActiveDiscount new_discount = new ActiveDiscount(); new_discount.discount_amount = discount_amount; TimeSpan duration = TimeSpan.FromMinutes(duration_in_minutes); DateTime expiration_time = DateTime.Now.Add(duration); new_discount.expiration_time = expiration_time; s_active_discounts.Add(new_discount); CalculateDiscountFactor(); s_on_discounts_updated(); }
static void Main(string[] args) { //int amount = 0; Dictionary <string, int> prod = new Dictionary <string, int> { { "A", 3 }, { "B", 4 }, { "C", 3 }, { "D", 2 } }; Dictionary <string, int> _activeDiscount = new Dictionary <string, int> { { "3A", 130 }, { "2B", 45 }, { "CD", 30 } }; ActiveDiscount disc = new ActiveDiscount(prod, _activeDiscount); Console.WriteLine(disc.CalculateAmountDiscount()); }
/// <summary> /// Convert current product price to other currency using currency exchange rate /// </summary> /// <param name="currency"></param> /// <returns></returns> public ProductPrice ConvertTo(Currency currency) { var retVal = new ProductPrice(currency); retVal.ListPrice = ListPrice.ConvertTo(currency); retVal.SalePrice = SalePrice.ConvertTo(currency); retVal.ProductId = ProductId; if (ActiveDiscount != null) { retVal.ActiveDiscount = ActiveDiscount.ConvertTo(currency); } if (PotentialDiscount != null) { retVal.PotentialDiscount = PotentialDiscount.ConvertTo(currency); } return(retVal); }
void Update() { DateTime now = DateTime.Now; if (s_active_discounts != null) { for (int n = s_active_discounts.Count - 1; n >= 0; n--) { ActiveDiscount discount = s_active_discounts[n]; if (now.CompareTo(discount.expiration_time) > 0) { Debug.Log("Discount has expired"); s_active_discounts.RemoveAt(n); CalculateDiscountFactor(); s_on_discounts_updated(); } } } }