public HttpResponseMessage Update(HttpRequestMessage request, TrackOrderViewModel TrackOrderVm) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState); } else { var dbTrackOrder = _trackOrderService.FindById(TrackOrderVm.ID); if (TrackOrderVm.isDone) { var order = _orderService.FindById(dbTrackOrder.OrderId); order.PaymentStatus = 2; TrackOrderVm.Status = false; _orderService.Update(order); } dbTrackOrder.UpdateTrackOrder(TrackOrderVm); _trackOrderService.Update(dbTrackOrder); _trackOrderService.SaveChanges(); var responseData = Mapper.Map <TrackOrder, TrackOrderViewModel>(dbTrackOrder); response = request.CreateResponse(HttpStatusCode.Created, responseData); } return response; })); }
public HttpResponseMessage Create(HttpRequestMessage request, TrackOrderViewModel trackOrderVm) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState); } else { var newTrackOrder = new TrackOrder(); newTrackOrder.UpdateTrackOrder(trackOrderVm); newTrackOrder.Status = true; _trackOrderService.Add(newTrackOrder); var order = _orderService.FindById(newTrackOrder.OrderId); order.PaymentStatus = 1; _orderService.Update(order); _trackOrderService.SaveChanges(); var responseData = Mapper.Map <TrackOrder, TrackOrderViewModel>(newTrackOrder); response = request.CreateResponse(HttpStatusCode.Created, responseData); } return response; })); }
public ActionResult Tracking(int?orderID, bool orderPlaced = false) { TrackOrderViewModel model = new TrackOrderViewModel(); model.OrderID = orderID; if (orderID.HasValue) { model.Order = OrdersService.Instance.GetOrderByID(orderID.Value); } if (model.Order != null) { model.PageTitle = string.Format("Track Order : {0}", model.Order.ID); model.PageDescription = "You can check the status of your order. Please enter the order ID and you will get information related to your order."; model.PageURL = Url.OrderTrack(orderID.ToString()).ToSiteURL(); } else { model.PageTitle = string.Format("Track Order"); model.PageDescription = "You can check the status of your order. Please enter the order ID and you will get information related to your order."; model.PageURL = Url.OrderTrack().ToSiteURL(); } model.PageImageURL = PictureHelper.PageImageURL("orders.jpg"); ViewBag.ShowOrderPlaceMessage = orderPlaced; return(View(model)); }
public static void UpdateTrackOrder(this TrackOrder trackOrder, TrackOrderViewModel trackOrderViewModel) { trackOrder.ID = trackOrderViewModel.ID; trackOrder.OrderId = trackOrderViewModel.OrderId; trackOrder.VehicleId = trackOrderViewModel.VehicleId; trackOrder.Longitude = trackOrderViewModel.Longitude; trackOrder.Latitude = trackOrderViewModel.Latitude; trackOrder.Status = trackOrderViewModel.Status; trackOrder.UserId = trackOrderViewModel.UserId; }
public async Task <TrackOrderViewModel> GetOrder(TrackOrderInputModel model) { var order = await this.db.Orders .FirstOrDefaultAsync(x => x.Id == model.OrderId && x.Email == model.Email); if (order != null) { var orderProducts = this.db.OrderProducts.Where(x => x.OrderId == order.Id).ToList(); var result = new TrackOrderViewModel { Id = order.Id, OrderStatus = order.OrderStatus, CreatedOn = order.CreatedOn, FinishedOn = order.FinishedOn, CanceledOn = order.CanceledOn, }; foreach (var orderProduct in orderProducts) { var targetProduct = await this.db.Products .FirstOrDefaultAsync(x => x.Id == orderProduct.ProductId); var image = await this.db.ProductImages .Where(x => x.ProductId == orderProduct.ProductId) .OrderBy(x => x.Name) .FirstOrDefaultAsync(); var product = new ProductInCartViewModel { Id = targetProduct.Id, Name = targetProduct.Name, AvailableQuantity = targetProduct.AvailableQuantity, Price = targetProduct.Price, WantedQuantity = orderProduct.WantedQuantity, TotalProductPrice = targetProduct.Price * orderProduct.WantedQuantity, ImageUrl = image.ImageUrl, }; result.Products.Add(product); } return(result); } return(null); }