示例#1
0
        public async Task<IHttpActionResult> GetAll()
        {
            var user = await _authRepository.FindUser(HttpContext.Current.User as ClaimsPrincipal);
            var isAdmin = await _authRepository.IsAdmin(HttpContext.Current.User as ClaimsPrincipal);

            if (!isAdmin)
            {
                var userOrders = await _unitOfWork.Orders.FindAsync(o => o.UserId == user.Id);

                var orderedProducts = new List<ProductViewModel>();
                foreach (var order in userOrders)
                {
                    var viewModel = new ProductViewModel();
                    viewModel.Create(order.Product);
                    orderedProducts.Add(viewModel);
                }

                return Ok(orderedProducts);
            }
            var allOrders = await _unitOfWork.Orders.GetAllAsync();

            var allProducts = new List<ProductViewModel>();
            foreach (var order in allOrders)
            {
                var viewModel = new ProductViewModel();
                viewModel.Create(order.Product);
                viewModel.UserName = order.User.UserName;
                allProducts.Add(viewModel);
            }

            return Ok(allProducts);
        }
示例#2
0
        public async Task<IHttpActionResult> Get(long id)
        {
            var entity = await _productRepository.GetAsync(id);
            if (entity == null)
            {
                return NotFound();
            }
            var viewModel = new ProductViewModel();
            viewModel.Create(entity);

            return Ok(viewModel);
        }
示例#3
0
        public async Task<IHttpActionResult> GetAll()
        {
            var all = await _productRepository.GetAllAsync();
            var allViewModels = new List<ProductViewModel>();

            foreach (var entity in all)
            {
                var viewModel = new ProductViewModel();
                viewModel.Create(entity);
                allViewModels.Add(viewModel);
            }
            return Ok(allViewModels);
        }
示例#4
0
        public async Task<IHttpActionResult> GetAll()
        {
            var user = await _authRepository.FindUser(HttpContext.Current.User as ClaimsPrincipal);

            var all = await _cartRepository.GetProductsInCartByUser(user.Id);

            var allViewModels = new List<ProductViewModel>();

            foreach (var entity in all)
            {
                var viewModel = new ProductViewModel();
                viewModel.Create(entity);
                allViewModels.Add(viewModel);
            }
            return Ok(allViewModels);
        }
示例#5
0
        public async Task<IHttpActionResult> Put()
        {
            if (!await IsAdmin())
            {
                return StatusCode(HttpStatusCode.Forbidden);
            }

            var image = HttpContext.Current.Request.Files["file"];
            if (image != null)
            {
                if (!image.ContentType.Contains("image"))
                    return BadRequest();
            }
            var id = HttpContext.Current.Request.Form["newProduct[id]"];
            var name = HttpContext.Current.Request.Form["newProduct[name]"];
            var description = HttpContext.Current.Request.Form["newProduct[description]"];
            var cat = HttpContext.Current.Request.Form["newProduct[categoryId]"];
            var reqCost = HttpContext.Current.Request.Form["newProduct[cost]"];
            long categoryId;
            long prodId;
            int cost;

            if (long.TryParse(id, out prodId) == false ||
                String.IsNullOrWhiteSpace(name) ||
                Int32.TryParse(reqCost, out cost) == false ||
                long.TryParse(cat, out categoryId) == false)
            {
                return BadRequest();
            }

            var category = await _categoryRepository.GetAsync(categoryId);
            if (category == null)
            {
                return BadRequest();
            }
            string path = "";
            if (image != null)
            {
                path = Path.GetRandomFileName() + Path.GetExtension(image.FileName);
                image.SaveAs(System.Web.Hosting.HostingEnvironment.MapPath("~/Img/") + path);
                path = "img/" + path;
            }
            else
            {
                path = HttpContext.Current.Request.Form["newProduct[imagePath]"];
            }

            var product = await _productRepository.GetAsync(prodId);
            product.Name = name;
            product.Description = description;
            product.Cost = cost;
            product.Category = category;
            product.CategoryId = category.Id;
            product.ImagePath = path;


            await _productRepository.Update(product);
            await _unitOfWork.CompleteAsync();
            ProductViewModel vm = new ProductViewModel();
            vm.Create(product);

            return CreatedAtRoute("DefaultApi", new { id = product.Id }, vm);
        }
示例#6
0
 public async Task<IEnumerable<ProductViewModel>> GetProducts(long categoryId, string findValue, int page)
 {
     const int productsPerPage = 8;
     var category = await _categoryRepository.GetAsync(categoryId);
     var productsPage = await _productRepository.FindProductsInCategoryAsync(findValue, category, page, productsPerPage);
     var viewModelsList = new List<ProductViewModel>();
     foreach (var product in productsPage)
     {
         var viewModel = new ProductViewModel();
         viewModel.Create(product);
         viewModelsList.Add(viewModel);
     }
     return viewModelsList;
 }
示例#7
0
        public async Task<IHttpActionResult> Delete(long id)
        {
            if (!await IsAdmin())
            {
                return StatusCode(HttpStatusCode.Forbidden);
            }

            var entity = await _productRepository.GetAsync(id);
            if (entity == null)
            {
                return NotFound();
            }

            var ordereditems = await _unitOfWork.Orders.FindAsync(o => o.ProductId == id);
            var cartsItems = await _unitOfWork.Carts.FindAsync(o => o.ProductId == id);
            _unitOfWork.Orders.RemoveRange(ordereditems);
            _unitOfWork.Carts.RemoveRange(cartsItems);

            _productRepository.Remove(entity);
            await _unitOfWork.CompleteAsync();
            var viewModel = new ProductViewModel();
            viewModel.Create(entity);

            return Ok(viewModel);

        }
示例#8
0
        public ActionResult Index(SiteProduct currentContent)
        {
            var model = ProductViewModel.Create(currentContent);

            return(View(model));
        }