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;
            }));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
 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;
 }
Exemple #5
0
        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);
        }