public IHttpActionResult AddToBasket([FromBody] AddToBasketRequest request) { if (request.PizzaId == 0 || request.SizeId == 0 || request.User == null) { return(BadRequest()); } var basketItem = new BasketData { PizzaId = request.PizzaId, SizeId = request.SizeId, ExtraToppingIds = request.ToppingIds }; _userSessionService.AddItemToBasket(request.User.Token, basketItem); return(Ok(_userSessionService.GetBasketForUser(request.User.Token))); }
public ActionResult Index() { if (Session["UserId"] == null) { Session["UserId"] = _userSessionService.NewUser(); } if (_userSessionService.IsLoggedIn(Session["UserId"].ToString())) { return(Redirect("/")); } var response = new RegisterControllerIndexData { Basket = _userSessionService.GetBasketForUser(Session["UserId"].ToString()), Total = _userSessionService.GetBasketTotalForUser(Session["UserId"].ToString()), LoggedIn = _userSessionService.IsLoggedIn(Session["UserId"].ToString()) }; return(View(response)); }
public ActionResult Index() { if (Session["UserId"] == null) { Session["UserId"] = _userSessionService.NewUser(); } var response = new BasketControllerIndexData { Basket = _userSessionService.GetBasketForUser(Session["UserId"].ToString()), Voucher = _userSessionService.GetVoucherForUser(Session["UserId"].ToString()), Total = _userSessionService.GetBasketTotalForUser(Session["UserId"].ToString()), LoggedIn = _userSessionService.IsLoggedIn(Session["UserId"].ToString()) }; return(View(response)); }
public BasketCheckoutResponse Checkout(DeliveryType delivery, string voucher, string userId, OrderStatus orderStatus) { var response = new BasketCheckoutResponse(); if (!_userSessionService.IsLoggedIn(userId)) { response.AddError(new Error { Code = ErrorCodes.UserNotLoggedIn, UserMessage = "You have to be logged in to complete your order" }); return(response); } if (delivery == DeliveryType.Unknown) { response.AddError(new Error { Code = ErrorCodes.DeliveryTypeUnknown, UserMessage = "Delivery type not specified." }); return(response); } if (orderStatus == OrderStatus.Unknown) { response.AddError(new Error { Code = ErrorCodes.OrderStatusUnkown, UserMessage = "Order status not specified." }); return(response); } var userBasket = _userSessionService.GetBasketForUser(userId); if (!voucher.IsEmpty()) { var verifyVoucherResponse = _voucherService.Verify(userBasket, new List <DeliveryType> { delivery }, voucher); if (!verifyVoucherResponse.HasError) { userBasket.Total = verifyVoucherResponse.Total; } } var orderRequest = new SaveOrderRequest { UserId = _userSessionService.GetUserByUserToken(userId), DeliveryType = delivery.ToString(), Voucher = voucher, GrandTotal = userBasket.Total.InPence, Status = orderStatus.ToString(), Orders = userBasket.Items.ConvertAll(x => new Order { PizzaId = x.Pizza.Id, SizeId = x.Size.Id, ExtraToppingIds = x.ExtraToppings.ConvertAll(y => y.Id), SubTotal = x.Total.InPence }) }; var saveOrderResponse = _orderRepository.SaveOrder(orderRequest); if (saveOrderResponse.HasError) { response.AddError(saveOrderResponse.Error); } _userSessionService.ClearBasketForUser(userId); return(response); }