public IHttpActionResult GetPackageDetails(int id, string shopId) { Package package = dbCtx.Packages.Find(id); if (package == null) { return(NotFound()); } else { //get packageDTO PackageDetailsDTO pd = new PackageDetailsDTO() { DeliveryMethod = "Door To Door", DeliveryTime = package.DeliveryTime, PackageId = package.Id, PackageStatus = package.Status, PaymentMethod = dbCtx.Orders.FirstOrDefault(o => o.Id == package.OrderId).PaymentMethod, ShippingFees = 50, TotalCharge = package.Price, }; List <OrderProduct> orderProducts = dbCtx.OrderProducts.Include("Product").Where(op => op.OrderId == package.OrderId).ToList(); List <OrderProduct> packageOrder = orderProducts.Where(p => p.Product.ShopID == shopId).ToList(); Order orderRequested = dbCtx.Orders.FirstOrDefault(o => o.Id == package.OrderId); ShipmentData packageShipmentData = dbCtx.ShipmentDatas.FirstOrDefault(s => s.Id == orderRequested.ShipmentDataId); pd.ShippingData = orderRequested.ShipmentData; List <PackageProductDTO> packageProductList = new List <PackageProductDTO>(); PackageProductDTO singleProduct; foreach (var orderProduct in orderProducts) { singleProduct = new PackageProductDTO() { Id = orderProduct.Product.Id, Name = orderProduct.Product.Name, Images = orderProduct.Product.Images, PackageId = package.Id, Variations = orderProduct.Variations, Discount = orderProduct.Product.Discount == null?0: orderProduct.Product.Discount, Quantity = orderProduct.Quantity, Price = orderProduct.Quantity, }; packageProductList.Add(singleProduct); } pd.ProductList = packageProductList; return(Ok(package)); } }
public PackageDetailsDTO GetPackageDetails(string packageId) { var currentPackage = this.db .Packages .Include(x => x.Recipient) .FirstOrDefault(package => package.Id == packageId); string deliveryTime = GetEstimatedDeliveryTime(currentPackage); PackageDetailsDTO detailsDTO = new PackageDetailsDTO() { Description = currentPackage.Description, Recipient = currentPackage.Recipient.UserName, ShippingAddress = currentPackage.ShippingAddress, Status = currentPackage.Status.ToString(), Weight = currentPackage.Weight, EstimatedDeliveryTime = deliveryTime }; return(detailsDTO); }