internal ProductDetailsVM GetDetailsByID(int id)
        {
            ProductDetailsVM productToReturn = context.Products
                                               .Where(p => p.Id == id)
                                               .Select(p => new ProductDetailsVM
            {
                Name        = p.Name,
                Description = p.Description,
                Brand       = p.Brand,
                ImgUrl      = p.ImgUrl,
                Price       = p.Price,
                AVGRating   = GetAVGRating(p.Rating),
                Ratings     = p.Rating.Select(r => new ProductDetailsRatingVM
                {
                    FirstName = r.User.FirstName,
                    Comment   = r.Comment,
                    Rating    = r.Rating1.Value,
                    Id        = r.Id
                }).OrderByDescending(x => x.Id)
                              .ToArray()
            })
                                               .OrderByDescending(o => o.Ratings)
                                               .Single();

            return(productToReturn);
        }
        private string FileUpload(ProductDetailsVM model)
        {
            string uniqueFileName = null;
            int    index          = model.ProductImage.FileName.LastIndexOf('\\');

            if (index < 0)
            {
                index = 0;
            }
            else
            {
                index = index + 1;
            }

            if (model.ProductImage != null)
            {
                string uploadsFolder = Path.Combine(webHostEnvironment.WebRootPath, "images");
                uniqueFileName = Guid.NewGuid().ToString() + "_" + model.ProductImage.FileName.Substring(index);
                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.ProductImage.CopyTo(fileStream);
                }
            }
            return(uniqueFileName);
        }
        public ActionResult ProductDetails(string slug)
        {
            var product = db.Products.FindBySlug(slug);

            product.SellingPrice    = (float)Math.Round(product.SellingPrice, 2);
            product.DiscountedPrice = (float)Math.Round(product.DiscountedPrice, 2);

            var model = new ProductDetailsVM
            {
                Id              = product.Id,
                Name            = product.Name,
                Slug            = product.Slug,
                BarcodeUrl      = product.BarcodeUrl,
                Category        = product.Category,
                Description     = product.Description,
                DiscountedPrice = product.DiscountedPrice,
                ImageUrl        = product.ImageUrl,
                IsOnSale        = product.IsOnSale,
                PackSize        = product.PackSize,
                Quantity        = product.Quantity,
                DiscountedRate  = product.IsOnSale ? product.DiscountedRate : 0,
                SellingPrice    = product.SellingPrice
            };

            return(View("ProductDetails", model));
        }
Example #4
0
        public List <ProductDetailsVM> FindAllProductByCart(int cartId)
        {
            List <ProductDetailsVM> listProductDetailsVM = new List <ProductDetailsVM>();
            var data = (from prod in _dbContext.productDetails
                        join cartprod in _dbContext.CartProductsDetails on prod.Id equals cartprod.productId
                        join brand in _dbContext.Brand on prod.BrandId equals brand.Id
                        let BrandName = brand.Name
                                        where cartprod.CartId == cartId
                                        select new { prod.Battery, prod.BrandId, prod.DisplaySize, prod.Id, prod.Image, prod.isBluetoothSupport,
                                                     prod.isWIFISupport, prod.Name, prod.OperatingSystem, prod.Price, prod.Processor, prod.SimDetails, prod.weight,
                                                     BrandName,
                                                     cartprod.quantity }).ToList();

            foreach (var item in data)
            {
                ProductDetailsVM objProductDetailsVM = new ProductDetailsVM()
                {
                    Battery            = item.Battery,
                    BrandName          = item.BrandName,
                    DisplaySize        = item.DisplaySize,
                    Id                 = item.Id,
                    ImagePath          = item.Image,
                    isBluetoothSupport = item.isBluetoothSupport,
                    isWIFISupport      = item.isWIFISupport,
                    Name               = item.Name,
                    OperatingSystem    = item.OperatingSystem,
                    price              = item.Price,
                    Quantity           = item.quantity,
                };
                listProductDetailsVM.Add(objProductDetailsVM);
            }
            return(listProductDetailsVM);
        }
Example #5
0
        public IActionResult Details(int?productId, int?carId)
        {
            if (productId == null)
            {
                return(NotFound());
            }
            else if (carId == null)
            {
                return(NotFound());
            }

            var product = _context.Product
                          .Include(p => p.ProductCategory)
                          .ThenInclude(cp => cp.Parent)
                          .SingleOrDefault(m => m.Id == productId);

            if (product == null)
            {
                return(NotFound());
            }

            var car = _context.Car.SingleOrDefault(c => c.Id == carId);

            if (car == null)
            {
                return(NotFound());
            }

            var productVM = new ProductDetailsVM()
            {
                Id          = product.Id,
                Name        = product.Name,
                Description = product.Description,
                Price       = product.Price,
                ImageUrl    = product.ImageUrl,
                Category    = new CategoryVM()
                {
                    Id         = product.ProductCategory.Id,
                    Name       = product.ProductCategory.Name,
                    ParentName = product.ProductCategory.Parent.Name
                },
                Car = new CarVM()
                {
                    Id         = car.Id,
                    Make       = car.Make,
                    Model      = car.Model,
                    Variant    = car.Variant,
                    Body       = car.Body,
                    Type       = car.Type,
                    EngineCcm  = car.EngineCcm,
                    EngineHp   = car.EngineHp,
                    EngineKw   = car.EngineKw,
                    EngineFuel = car.EngineFuel,
                    YearFrom   = car.YearFrom,
                    YearTo     = car.YearTo
                }
            };

            return(View(productVM));
        }
        public ActionResult Create(string Brand, ProductDetailsVM viewModel)
        {
            try
            {
                string uniqueFileName = FileUpload(viewModel);

                ProductDetails details = new ProductDetails
                {
                    Battery            = viewModel.Battery,
                    DisplaySize        = viewModel.DisplaySize,
                    isBluetoothSupport = viewModel.isBluetoothSupport,
                    isWIFISupport      = viewModel.isWIFISupport,
                    Name            = viewModel.Name,
                    OperatingSystem = viewModel.OperatingSystem,
                    Processor       = viewModel.Processor,
                    SimDetails      = viewModel.SimDetails,
                    weight          = viewModel.weight,
                    Image           = uniqueFileName,
                    BrandId         = int.Parse(Brand)
                };
                _product.Create(details);
                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
 public ActionResult Edit(int id, string Brand, ProductDetailsVM viewModel)
 {
     try
     {
         viewModel.BrandId = Convert.ToInt32(Brand);
         string uniqueFileName = viewModel.ImagePath;
         if (viewModel.ProductImage != null)
         {
             uniqueFileName = FileUpload(viewModel);
         }
         ProductDetails details = new ProductDetails
         {
             Id                 = viewModel.Id,
             Battery            = viewModel.Battery,
             DisplaySize        = viewModel.DisplaySize,
             isBluetoothSupport = viewModel.isBluetoothSupport,
             isWIFISupport      = viewModel.isWIFISupport,
             Name               = viewModel.Name,
             OperatingSystem    = viewModel.OperatingSystem,
             Processor          = viewModel.Processor,
             SimDetails         = viewModel.SimDetails,
             weight             = viewModel.weight,
             Image              = uniqueFileName,
             BrandId            = int.Parse(Brand),
             Price              = viewModel.price
         };
         _product.Update(details);
         return(RedirectToAction(nameof(Index)));
     }
     catch (Exception ex)
     {
         return(View());
     }
 }
        public async Task <IActionResult> Details(string slug)
        {
            var product = await _productService.GetProduct(slug);

            if (product == null) // if product does not exist, redirect to products page
            {
                return(RedirectToAction(nameof(Index)));
            }

            var model = new ProductDetailsVM(product);

            return(View(model));
        }
        public ActionResult Edit(ProductDetailsVM productDetails)
        {
            var productToEdit = Mapper.Instance.Map <Product>(productDetails);

            productToEdit.ModifiedOn = DateTime.Now;

            if (ModelState.IsValid)
            {
                _shopRepository.EditProduct(productToEdit);

                return(RedirectToAction("Index", "Product"));
            }

            return(RedirectToAction("Error", "Shared"));
        }
Example #10
0
        private string FileUpload(ProductDetailsVM model)
        {
            string uniqueFileName = null;

            if (model.ProductImage != null)
            {
                string uploadsFolder = Path.Combine(webHostEnvironment.WebRootPath, "images");
                uniqueFileName = Guid.NewGuid().ToString() + "_" + model.ProductImage.FileName;
                string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                    model.ProductImage.CopyTo(fileStream);
                }
            }
            return(uniqueFileName);
        }
        public async Task <ActionResult> Details(int id)
        {
            ProductDetailsVM productInfo = new ProductDetailsVM();

            HttpResponseMessage Res = await RequestServices.GetAsync(APIProductEndPoint.Details + id.ToString());

            if (Res.IsSuccessStatusCode)
            {
                var product = Res.Content.ReadAsStringAsync().Result;

                productInfo = JsonConvert.DeserializeObject <ProductDetailsVM>(product);

                return(View(productInfo));
            }
            return(View());
        }
Example #12
0
        public IActionResult ProductDetails(int ID)     // ID proizvoda
        {
            ProductDetailsVM model = _database.product.Where(s => s.ProductID == ID).Select(a => new ProductDetailsVM
            {
                ProductID        = a.ProductID,
                ProductName      = a.ProductName,
                ProductNumber    = a.ProductNumber,
                SubCategoryName  = a.SubCategory.SubCategoryName,
                ManufacturerName = a.Manufacturer.ManufacturerName,
                ImageUrl         = a.ImageUrl,
                Description      = a.Description,
                UnitPrice        = a.UnitPrice,
                UnitsInStock     = a.UnitsInStock
            }).SingleOrDefault();

            return(View(model));
        }
Example #13
0
        public ActionResult Details(int id)
        {
            ProductDetailsVM    productDetails = new ProductDetailsVM();
            HttpResponseMessage response3      = client.GetAsync("http://shirleyomda-001-site1.etempurl.com/odata/Stores").Result;
            string             Result          = response3.Content.ReadAsStringAsync().Result;
            RootObject <Store> stores          = JsonConvert.DeserializeObject <RootObject <Store> >(Result);

            productDetails.stores = stores.Value.Where(b => b.productID == id);

            ProductBillVM       productBillVM = new ProductBillVM();
            HttpResponseMessage response      = client.GetAsync("http://shirleyomda-001-site1.etempurl.com/odata/Products").Result;

            Result = response.Content.ReadAsStringAsync().Result;
            RootObject <Product> products = JsonConvert.DeserializeObject <RootObject <Product> >(Result);

            productDetails.product = products.Value.FirstOrDefault(b => b.productID == id);

            return(View(productDetails));
        }
Example #14
0
 public IActionResult Details(int id)
 {
     if (id != null || id != 0)
     {
         //var foundProduct = _unitOfWork.productRepository.GetbyId(id);
         var foundProduct       = _unitOfWork.productRepository.GetFirstorDefault("ProductType", x => x.ID == id);
         ProductDetailsVM model = new ProductDetailsVM();
         model.Product_Name     = foundProduct.Product_Name;
         model.Product_Price    = foundProduct.Product_Price;
         model.Company          = foundProduct.Company;
         model.Product_ImageUrl = foundProduct.Product_Image;
         //set image full path
         model.ImageFullPath = FileHelper.GetImageFullPathForImage(_webHostEnvironment.WebRootPath, foundProduct.ProductType.Type_Name, foundProduct.Product_Image);
         model.Product_Type  = foundProduct.ProductType.Type_Name;
         model.Id            = id;
         return(View(model));
     }
     return(View());//not found view
 }
Example #15
0
        public async Task <IActionResult> ProductDetails(int id, int productPage = 1)
        {
            var product = await _productService.Get(id);

            var claimsIdentity = (ClaimsIdentity)User.Identity;
            var claim          = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);

            var productDetailsVM = new ProductDetailsVM()
            {
                Product = product,
                Comment = new Comment()
                {
                    ProductId = id,
                    UserId    = claim.Value
                },
            };

            var rate = await _rateService.Get(x => x.UserId == claim.Value && x.ProductId == id);

            if (!(rate is null))
            {
                productDetailsVM.Rate = rate;
            }
        // GET: ProductDetailsController/Edit/5
        public ActionResult Edit(int id)
        {
            var product = _product.FindById(id);

            ViewBag.Brand = new SelectList(_brand.FindAll(), "Id", "Name", product.BrandId);
            ProductDetailsVM details = new ProductDetailsVM
            {
                Battery            = product.Battery,
                DisplaySize        = product.DisplaySize,
                isBluetoothSupport = product.isBluetoothSupport,
                isWIFISupport      = product.isWIFISupport,
                Name            = product.Name,
                OperatingSystem = product.OperatingSystem,
                Processor       = product.Processor,
                SimDetails      = product.SimDetails,
                weight          = product.weight,
                ImagePath       = product.Image,
                BrandId         = product.BrandId,
                price           = product.Price
            };

            return(View(details));
        }
        public ActionResult Delete(ProductDetailsVM productVMToDel)
        {
            _shopRepository.DeleteProduct(productVMToDel.Id);

            return(RedirectToAction("Index", "Product"));
        }