public static void CheckForBasket() { try { if (Models.Customer.Catalog[CurrentUser.User[0]].BasketID != 0) { if (Models.Basket.Catalog[Models.Customer.Catalog[CurrentUser.User[0]].BasketID] != null) { basket = Models.Basket.Catalog[Models.Customer.Catalog[CurrentUser.User[0]].BasketID]; } else { throw new ArgumentException(); } } else { throw new ArgumentException(); } } catch (ArgumentException) { Models.Basket.Create(basket); Models.Customer.Catalog[CurrentUser.User[0]].BasketID = basket.ID; Helpers.JsonFileHelper <Models.Customer> .WriteToJson(Models.Customer.Catalog, Models.Customer.JsonCustomers); } }
public static Basket ToBasketViewModel(this Models.Basket basket) { return(new Basket { Items = basket.Items.ToBasketItemViewModels() }); }
public IActionResult Edit(Models.Basket model) { if (model != null) { // Temporary remove many to many selected collections, // as they will cause invalid model state if there are any required fields on the many to many selected. ModelState.Clear(); TryValidateModel(model); } if (ModelState.IsValid) { try { _unitOfWork.Baskets.Add(model.GetCore()); return(View(model)); } catch { ModelState.AddModelError( "Error", "Problem saving the basket."); return(View(model)); } } else { return(View(model)); } }
public IActionResult Edit(int?Id) { Services.Data.Core.Domain.Basket basket; if (Id == null) { basket = new Services.Data.Core.Domain.Basket(); } else { basket = _unitOfWork.Baskets.Get((int)Id); if (basket == null) { return(Redirect( "/../Basket")); } } var model = new Models.Basket(basket); // Model parents and children //model.PopulateChilden(); return(View(model)); }
public IActionResult PutItemsInBasket(int id, Models.Basket basket) { basket.Id = id; var serializedBasket = JsonConvert.SerializeObject(basket); cachingProvider.Set("Basket_" + id, serializedBasket, TimeSpan.FromDays(15)); return(NoContent()); }
/// <summary> /// Gets basket total without delivery. /// </summary> /// <param name="basket"></param> /// <returns></returns> public static Price GetBasketTotalWithoutDelivery(this Models.Basket basket) { var total = basket.GetBasketTotalInOfficeCurrency(); return(total != null && basket.Delivery?.Charge != null ? total.Subtract(basket.Delivery.Charge) : total); }
public static Basket ToBasketViewModel(this Models.Basket basket) { return(new Basket { Items = basket.Items.ToBasketItemViewModels(), GrossTotal = basket.GrossTotal, NetTotal = basket.NetTotal, TaxTotal = basket.TaxTotal }); }
public async Task <Order> CreateOrder(Models.Basket basket, Payment payment) { Order order = new Order(basket, payment); ICollectionReference collection = CrossCloudFirestore. Current.Instance. GetCollection("Orders"); await collection.AddDocumentAsync(order); return(await Task.FromResult(order)); }
public static Models.Order ToOrderModel(this Models.Basket basket) { return(new Models.Order { ID = Guid.NewGuid(), GrossTotal = basket.GetGrossTotal(), NetTotal = basket.Items.Sum(item => item.NetPrice), TaxTotal = basket.Items.Sum(item => item.NetPrice * item.TaxRate), Items = basket.Items.ToOrderItemModels() }); }
public Basket GetUserBasket(string user) { Basket basket = baskets.FirstOrDefault(item => item.User == user); if (basket == null) { basket = new Models.Basket { User = user, Products = new List <Models.ProductQty>() }; baskets.Add(basket); } return(basket); }
public static Basket ToBasketViewModel(this Models.Basket basket) { var totalUnrounded = basket.Items.Sum(item => item.GrossPrice * basket.Discount); var totalRounded = Math.Round(totalUnrounded, 2); return(new Basket { Items = basket.Items.ToBasketItemViewModels(), Total = totalRounded, Discount = basket.Discount, DiscountApplied = basket.DiscountApplied }); }
public IActionResult Post([FromBody] User user) { var basketId = Guid.NewGuid().ToString("D"); var basket = new Models.Basket() { Created = DateTime.Now, Id = basketId, UserId = user.Id }; _database.StringSet(basketId, _serializer.Serialize(basket), new TimeSpan(0, 30, 0)); return(Json(basket)); }
// GET: Basket public ActionResult Index() { Models.Basket basket = new Models.Basket(); using (Models.ShopEntities1 db = new Models.ShopEntities1()) { basket.Amount = 1000; basket.Id = 1; basket.Registerdate = DateTime.Now; basket.Status = 0; db.Baskets.Add(basket); db.SaveChanges(); } return(View(basket)); }
public async Task <IActionResult> Get( [HttpTrigger(AuthorizationLevel.Anonymous, "get")] HttpRequest req, [SignalR(HubName = "basket")] IAsyncCollector <SignalRMessage> signalRMessage) { string userId = _authorize.GetUserId(req); Models.Basket basket = _mongoBase.Find(Guid.Parse(userId)); await signalRMessage.AddAsync( new SignalRMessage { Target = "basket", UserId = userId.ToString(), Arguments = new[] { JsonConvert.SerializeObject(basket) } }); return(new OkObjectResult(basket)); }
public IActionResult OnPost() { if (ModelState.IsValid) { SessionDemo.Models.Basket basket = new Models.Basket(); basket.Description = BasketForm.Description; basket.Price = BasketForm.Price; dm.AddItem(basket); dm.SaveData(); return(RedirectToPage("/Index")); } return(Page()); }
private static double GetGrossTotal(this Models.Basket basket) { var netSubTotal = basket.Items.Sum(item => item.GrossPrice); if (basket.Discount != null) { switch (basket.Discount.Type) { case Models.DiscountType.Percentage: return(netSubTotal * (1 - basket.Discount.Amount)); case Models.DiscountType.FlatAmount: return(netSubTotal - basket.Discount.Amount); } } return(netSubTotal); }
public IActionResult Delete(int?id) { if (id == null) { return(Redirect("~/basket")); } var basket = _unitOfWork.Baskets.Get(id); if (basket == null) { return(Redirect("/../Basket")); } else { var model = new Models.Basket(basket); return(View(model)); } }
public IActionResult Delete(Models.Basket model) { if (ModelState.IsValid) { if (model == null) { return(View(model)); } if (model.Id == null) { return(View(model)); } try { if (_unitOfWork.Baskets .Remove((int)model.Id, out string errorMessage) != Services.Data.DataStoreResult.Success) { ModelState.AddModelError("Error", errorMessage); return(View(model)); } _unitOfWork.Complete(); return(Redirect( "/../Basket")); } catch { ModelState.AddModelError("Error", "Cannot delete the Basket."); return(View(model)); } } else { return(View(model)); } }
public async Task <IActionResult> Update( [HttpTrigger(AuthorizationLevel.Anonymous, "put")] HttpRequest req, [SignalR(HubName = "basket")] IAsyncCollector <SignalRMessage> signalRMessage) { string userId = _authorize.GetUserId(req); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); var input = JsonConvert.DeserializeObject <Models.Basket>(requestBody); List <Models.BrokerRules> invalids = input.Valid(); if (invalids.Count > 0) { return(new BadRequestObjectResult(JsonConvert.SerializeObject(invalids))); } var basket = new Models.Basket { Id = input.Id, Created = DateTime.Now, IsActive = input.IsActive, Items = input.Items, UserId = Guid.Parse(userId) }; basket.UpdateTotal(); _mongoBase.Update(basket); await signalRMessage.AddAsync( new SignalRMessage { Target = "basket", UserId = userId, Arguments = new[] { JsonConvert.SerializeObject(basket) } }); return(new OkObjectResult(basket)); }
public ActionResult Post([FromBody] Models.Basket basket) { basket = _serializer.Deserialize <Models.Basket>(_database.StringGet(basket.Id)); var basketCheckedOut = new BasketCheckedOut() { Basket = new Events.Basket() { Created = basket.Created, Id = basket.Id, UserId = basket.UserId, Items = basket.Items.Select(x => new Events.BasketItem() { Quantity = x.Quantity, Id = x.Id }).ToList() } }; _bus.Publish(basketCheckedOut); _database.KeyDelete(basket.Id); return(Json(basket)); }
public static Models.Basket Handle(Models.Basket basket, IEvent evt) { if (evt is CreatedBasketEvent) { return(basket); } else if (evt is AddedLineItemToBasketEvent) { var newBasket = basket; newBasket.LineItems.Add((evt as AddedLineItemToBasketEvent).LineItem); return(newBasket); } else if (evt is RemovedLineItemFromBasketEvent) { var newBasket = basket; basket.LineItems = basket.LineItems.Where( li => li.Id != (evt as RemovedLineItemFromBasketEvent).LineItem.Id) .ToList(); return(newBasket); } throw new NotImplementedException($"Unable to handle {evt}"); }
public IActionResult Index() { try { IEnumerable <Services.Data.Core.Domain.Basket> baskets = null; baskets = _unitOfWork.Baskets.GetAll(); var Models = new List <Models.Basket>(); if (baskets != null) { foreach (var core in baskets) { var model = new Models.Basket(core); Models.Add(model); } } var summary = new Models.Summary <Models.Basket> { Models = Models, Count = Models.Count, }; return(View(summary)); } catch { ModelState.AddModelError( "Error", "Cannot get the baskets"); return(View()); } }
/// <summary> /// Determines whether the basket has any NON automatic promotions. /// </summary> /// <param name="basket"></param> /// <returns></returns> public static bool HasNonAutomaticPromotion(this Models.Basket basket) => basket.Coupon != null && basket.HasPromotion();
/// <summary> /// Determines whether the basket has any promotions. /// </summary> /// <param name="basket"></param> /// <returns></returns> public static bool HasPromotion(this Models.Basket basket) => basket.AppliedPromotion != null;
public IActionResult Index() { #if DEBUG // You may want to create a UAT (user exceptance tester) role and check for this: // "if(_unitOfWork.IsUATTester(GetUserId())" // Company SANDBOX Client Id. To go live replace this with the live ID. //ViewBag.ClientId = "{SANDBOX Client Id}"; // Get from a data store or stettings ViewBag.ClientId = PayPal.PayPalClient.SandboxClientId; // Get from a data store or stettings if (PayPal.PayPalClient.SandboxClientId == "{PayPal SANDBOX Client Id}" && PayPal.PayPalClient.SandboxClientSecret == "{PayPal SANDBOX Client Secret}") { ViewBag.ShowErrorMessage = true; } else { ViewBag.ShowErrorMessage = false; } #else // Company LIVE Client Id. To go live replace this with the live ID. ViewBag.ClientId = PayPal.PayPalClient.LiveClientId; // Get from a data store or stettings if (PayPal.PayPalClient.LiveClientId == "{PayPal LIVE Client Id}" && PayPal.PayPalClient.LiveClientSecret == "{PayPal LIVE Client Secret}") { ViewBag.ShowErrorMessage = true; } else { ViewBag.ShowErrorMessage = false; } #endif if (PayPal.PayPalClient.SandboxClientId == "{PayPal SANDBOX Client Id}") { ViewBag.CurrencyCode = "GBP"; // Get from a data store } ViewBag.CurrencySign = "£"; // Get from a data store Models.Basket model = null; if (_unitOfWork.Baskets.GetAll().Count() == 0) { var basket = new Services.Data.Core.Domain.Basket() { Id = 0, CurrencyCode = "GBP", CurrencySymbol = "£", Discount = 0, }; _unitOfWork.Baskets.Add(basket); var product = new Services.Data.Core.Domain.Product() { Id = 0, Name = "Sargon Object Database", Description = "A app for managing information about archaeological objects.", Price = 40, Quantity = 1, Basket = basket, }; _unitOfWork.Products.Add(product); basket.Products.Add(product); product = new Services.Data.Core.Domain.Product() { Id = 1, Name = "Delaney's Photo Renamer", Description = "Photo Renamer automatically prefixes photos with date taken.", Price = 7, Quantity = 1, Basket = basket, }; _unitOfWork.Products.Add(product); basket.Products.Add(product); _unitOfWork.Complete(); model = new Models.Basket(basket); } else { var basket = _unitOfWork.Baskets.GetAll().FirstOrDefault(); model = new Models.Basket(basket); } return(View(model)); }
/// <summary> /// Gets total adjustment amount in shopper currency. /// </summary> /// <param name="basket"></param> /// <returns></returns> public static Price GetTotalDiscountInShopperCurrency(this Models.Basket basket) => basket.GetTotalFromAllReservations(r => r.GetTotalAdjustmentAmountInShopperCurrency());
/// <summary> /// Gets total face value in shopper currency. /// </summary> /// <param name="basket"></param> /// <returns></returns> public static Price GetTotalFaceValueInShopperCurrency(this Models.Basket basket) => basket.GetTotalFromAllReservations(r => r.GetTotalFaceValueInShopperCurrency());
private static Models.Basket CreateBasket() { var basket = new Models.Basket {Items = new List<Item>()}; BasketStore.Save(basket); return basket; }
public void Insert(Models.Basket basket) => _collection.InsertOne(basket);
/// <summary> /// Gets total adjusted amount in office currency. /// </summary> /// <param name="basket"></param> /// <returns></returns> public static Price GetBasketTotalInOfficeCurrency(this Models.Basket basket) => basket.GetTotalFromAllReservations(r => r.GetTotalAdjustedAmountInOfficeCurrency());
public void Update(Models.Basket basket) => _collection.ReplaceOne(p => p.UserId == basket.UserId, basket);