public decimal CalculateFor(Cart.Cart cart) { return(Math.Round( cart.DistinctCategoriesCount * CostPerDelivery + cart.LineItemsCount * CostPerProduct + FixedCost, 2)); }
public ActionResult Buy(Purchase purchase) { purchase.Date = DateTime.Now; Cart.Cart cart = (Cart.Cart)Session["Cart" + User.Identity.Name]; if (cart != null && cart.Lines.Count() > 0) { foreach (var item in cart.Lines) { purchase.ElectronicId = item.Electronic.Id; for (int i = 0; i < item.Quantity; i++) { db.Purchases.Add(purchase); db.SaveChanges(); } } PurchCartViewModel purchCartViewModel = new PurchCartViewModel { Purchase = purchase, Count = cart.Lines.Count() }; cart.Clear(); return(View("BoughtAll", purchCartViewModel)); } else { db.Purchases.Add(purchase); } db.SaveChanges(); return(RedirectToAction("Bought", purchase)); }
private void Listen() { try { AddText(logtxtbx, "Server Listening on: " + ip[0] + "." + ip[1] + "." + ip[2] + "." + ip[3] + "/" + port); const int bytesize = 1000; byte[] buffer = new byte[bytesize]; var senderRequest = listen.AcceptTcpClient(); senderRequest.GetStream().Read(buffer, 0, bytesize); // string decoded = Encoding.ASCII.GetString(buffer,0,bytesize); Cart.Cart cartRequest = (Cart.Cart)ByteArrayToObject(buffer); string order = "Order Number: " + cartRequest.OrderNumber + "\r\nName: " + cartRequest.userName + "\r\n"; foreach (var item in cartRequest.Items) { order += item + "\r\n"; } string quantity = ""; foreach (var quant in cartRequest.quantity) { quantity += quant + "\r\n"; } AddText(logtxtbx, order); //AddText(logtxtbx, decoded); AddText(logtxtbx, "quantity: " + quantity); senderRequest.Close(); listen.Stop(); } catch (Exception e) { AddText(logtxtbx, "Listening was interupted: " + e.ToString()); } }
public Cart.Cart GetCart() { Cart.Cart cart = (Cart.Cart)Session["Cart" + User.Identity.Name]; if (cart == null) { cart = new Cart.Cart(); Session["Cart" + User.Identity.Name] = cart; } return(cart); }
public Campaign FindMostApplicableCampaignTo(Cart.Cart cart) { var applicableCampaigns = GetApplicableCampaigns(cart); var results = SimulateCampaigns(applicableCampaigns, cart); var campaigns = SortCampaignsByDiscountAmount(results); return(campaigns.FirstOrDefault()); }
private static ConcurrentBag <KeyValuePair <Campaign, decimal?> > SimulateCampaigns( IList <Campaign> applicableCampaigns, Cart.Cart cart) { var results = new ConcurrentBag <KeyValuePair <Campaign, decimal?> >(); Parallel.ForEach(applicableCampaigns, campaign => { var discountAmount = campaign.CalculateDiscountAmountFor(cart); results.Add(new KeyValuePair <Campaign, decimal?>(campaign, discountAmount)); }); return(results); }
public decimal?CalculateDiscountAmountFor(Cart.Cart cart) { var isApplicable = IsApplicableTo(cart); if (!isApplicable) { return(null); } var cartAmount = cart.TotalAmountAfterCampaign; return(Math.Min(cart.TotalAmountAfterCampaign, CouponDiscountAmountCalculator.Strategies[Type](cartAmount, Rate))); }
public decimal?CalculateDiscountAmountFor(Cart.Cart cart) { var isApplicable = IsApplicableTo(cart); if (!isApplicable) { return(null); } var items = GetCampaignApplicableLineItems(cart); var sum = items.Sum(i => CampaignDiscountAmountCalculator.Strategies[Type](i, Rate)); return(Math.Round(sum, 2)); }
public Form1() { InitializeComponent(); var myCart = new Cart.Cart(); myCart.OrderNumber = "12345"; myCart.userName = "******"; myCart.Items = new List <string>(); myCart.Items.Add("5.56mm X100"); myCart.Items.Add("M4 Custom Rifle"); myCart.quantity = new List <int>(); myCart.quantity.Add(5); cartByte = ObjectToByteArray(myCart); // var cartObject = ByteArrayToObject(cartByte); }
public void Write(Cart.Cart cart) { Console.WriteLine("------------Invoice---------------"); foreach (var item in cart.CartItems) { Console.WriteLine("Price :" + item.Item.Price); Console.WriteLine("Category :" + item.Item.Category); Console.WriteLine("IsImported :" + item.Item.IsImported); Console.WriteLine("Name:" + item.Item.Name); Console.WriteLine("Total Cost: " + item.TotalPrice); Console.WriteLine("Total Tax: " + item.TotalTax); Console.WriteLine("Quantity : " + item.Quantity); Console.WriteLine("---------------------------"); } Console.WriteLine("TotalPrice : " + cart.TotalPrice); Console.WriteLine("TotalTax : " + cart.TotalTax); }
public void ProcessOrder(Cart.Cart cart, ShippingDetails shippingInfo) { using (var smtpClient = new SmtpClient()) { smtpClient.EnableSsl = emailSettings.UseSsl; smtpClient.Host = emailSettings.ServerName; smtpClient.Port = emailSettings.ServerPort; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential(emailSettings.Username, emailSettings.Password); StringBuilder body = new StringBuilder() .AppendLine("A new order has been submitted") .AppendLine("---") .AppendLine("Items:"); foreach (var line in cart.Prods) { var subtotal = line.Product.Price * line.Quantity; body.AppendFormat("{0} x {1} (subtotal: {2:c})\n", line.Quantity, line.Product.Name, subtotal); } body.AppendFormat("Total order value: {0:c}\n", cart.TotalPrice()) .AppendLine("---") .AppendLine("Ship to:") .AppendLine("Name: " + shippingInfo.Name) .AppendLine("Country: " + shippingInfo.Country) .AppendLine("City: " + shippingInfo.City) .AppendLine("Phone number: " + shippingInfo.Phone) .AppendLine("Zip code: " + shippingInfo.Zip) .AppendLine("---"); MailMessage mailMessage = new MailMessage(new MailAddress(emailSettings.MailFromAddress).Address, new MailAddress(emailSettings.MailToAddress).Address, "New order submitted!", body.ToString()); smtpClient.Send(mailMessage); } }
public bool IsApplicableTo(Cart.Cart cart) { var cartAmount = cart.TotalAmountAfterCampaign; return(cartAmount > MinimumCartAmount); }
private List <LineItem> GetCampaignApplicableLineItems(Cart.Cart cart) { return(cart.LineItems.Where(IsApplicableTo).ToList()); }
public bool IsApplicableTo(Cart.Cart cart) { var items = GetCampaignApplicableLineItems(cart); return(DoesCartContainMinimumItemCount(items)); }
public CartTests() { _policyProvider = Substitute.For <PolicyProvider>(); _taxCalculator = Substitute.For <TaxCalculator>(_policyProvider); _cart = new Cart.Cart(_taxCalculator); }
private IList <Campaign> GetApplicableCampaigns(Cart.Cart cart) { var categoryIDs = cart.LineItems.Select(l => l.Product.CategoryID).Distinct().ToList(); return(campaignReader.GetByCategories(categoryIDs).ToList()); }