Esempio n. 1
0
 public void Post(ProductRequestModel productModel)
 {
     if (ModelState.IsValid)
     {
         productService.Add(productModel.ToDto());
     }
 }
Esempio n. 2
0
        public void PostTest()
        {
            Product              product         = GetProduct();
            ProductRequestModel  productRequest  = GetProductRequestModel();
            ProductResponseModel productResponse = GetProductResponseModel();

            _mockRepository
            .Setup(repo => repo.Add(product))
            .Returns(product);

            _mockMapper
            .Setup(mapper => mapper.Map <ProductRequestModel, Product>(productRequest))
            .Returns(product);

            _mockMapper
            .Setup(mapper => mapper.Map <Product, ProductResponseModel>(product))
            .Returns(productResponse);

            IActionResult actionResult = _controller.Post(productRequest);

            CreatedAtActionResult actual = (CreatedAtActionResult)actionResult;
            string actualName            = ((ProductResponseModel)actual.Value).Name;

            Assert.Equal(product.Name, actualName);
            Assert.Equal(StatusCodes.Status201Created, actual.StatusCode);
        }
Esempio n. 3
0
        public async Task When_Product_Is_Not_Active_It_Should_Be_Return_NotFound()
        {
            Product Product = new Product()
            {
                Id        = "10101",
                ProductId = 1000,
                ModelId
                       = 101010,
                Name   = "Oktay",
                OnSale = false
            };

            var ProductRepositoryMock = new Mock <IProductRepository>();

            ProductRepositoryMock.Setup(p => p.GetProductById(1000)).Returns(Task.FromResult(Product));

            var ProductController   = new ProductController(ProductRepositoryMock.Object);
            var ProductRequestModel = new ProductRequestModel()
            {
                ProductId = 1000
            };

            var actionResult = await ProductController.GetProductById(ProductRequestModel);

            actionResult.Should().BeOfType <NotFoundObjectResult>();
        }
Esempio n. 4
0
        public async Task <bool> EditAsync(ProductRequestModel model)
        {
            try
            {
                var product = await _context.Products.FirstOrDefaultAsync(m => m.Id == model.Id);

                product.Id          = model.Id;
                product.Name        = model.Name;
                product.Discription = model.Discription;
                product.Supplier    = model.Supplier;
                product.Price       = model.Price;
                product.ImageUrl    = model.ImageUrl;
                product.Modified    = DateTime.Now;
                product.TotalCount  = model.TotalCount;
                product.IsSoldOut   = model.IsSoldOut;

                _context.Products.Attach(product);
                _context.Entry(product).State = EntityState.Modified;


                return(await _context.SaveChangesAsync() > 0 ? true : false);
            }
            catch (Exception e)
            {
                _logger.LogError($"ERROR({nameof(EditAsync)}): {e.Message}");
            }

            return(false);
        }
Esempio n. 5
0
        public string ReplacePlaceholders(string mailContent, ProductRequestModel productRequest)
        {
            string firstnamePlaceholder = "[FIRSTNAME]",
                   lastnamePlaceholder  = "[LASTNAME]",
                   companyPlaceholder   = "[COMPANY]",
                   emailPlaceholder     = "[EMAIL]",
                   industryPlaceholder  = "[INDUSTRY]",
                   jobtitlePlaceholder  = "[JOBTITLE]",
                   telephonePlaceholder = "[TELEPHONE]",
                   productPlaceholder   = "[PRODUCT]",
                   datePlaceholder      = "[DATE]",
                   date = DateTime.Now.Date.ToString("dd MMM yyyy");
            //int defaultPort = Request.IsSecureConnection ? 443 : 80;
            //var productUrl = Common.GetHyperLink(Common.GetDomainUrl(currentpage.Id, defaultPort), currentpage.Name);
            var productUrl = Common.GetHyperLink(currentpage.GetFullNiceUrl(), currentpage.Name);

            mailContent = mailContent.Replace(firstnamePlaceholder, productRequest.FirstName)
                          .Replace(lastnamePlaceholder, productRequest.LastName)
                          .Replace(jobtitlePlaceholder, productRequest.JobTitle)
                          .Replace(companyPlaceholder, productRequest.Company)
                          .Replace(emailPlaceholder, productRequest.Email)
                          .Replace(industryPlaceholder, ((String.IsNullOrEmpty(productRequest.Industry)) ? String.Empty :
                                                         ((Umbraco.TypedContent(productRequest.Industry) != null) ? Umbraco.TypedContent(productRequest.Industry).Name : productRequest.Industry)))
                          .Replace(telephonePlaceholder, productRequest.PhoneNumber)
                          .Replace(productPlaceholder, productUrl)
                          .Replace(datePlaceholder, date);
            return(mailContent);
        }
Esempio n. 6
0
        public async Task <IActionResult> UpdateProduct([FromBody] ProductRequestModel request)
        {
            try
            {
                await this.productManager.UpdateProductAsync(new Product
                {
                    _Id             = request._Id,
                    Tag             = request.Tag,
                    Type            = request.Type,
                    Characteristics = request.Characteristics
                });

                this.responseStatus = new ResponseStatusModel {
                    Success = true, Message = "Data successfully updated"
                };
                return(Ok(new { ResponseStatus = this.responseStatus }));
            }
            catch (ArgumentException ex)
            {
                this.responseStatus = new ResponseStatusModel {
                    Success = false, Message = ex.Message, Code = 400
                };
                return(BadRequest(new { ResponseStatus = this.responseStatus }));
            }
        }
Esempio n. 7
0
        public void PutTest()
        {
            Product                      product            = GetProduct();
            ProductRequestModel          productRequest     = GetProductRequestModel();
            ProductResponseModel         productResponse    = GetProductResponseModel();
            ValidationResponse <Product> validationResponse = GetOkValidationResponse();

            _mockMapper
            .Setup(mapper => mapper.Map <ProductRequestModel, Product>(productRequest))
            .Returns(product);

            _mockService
            .Setup(serv => serv.Update(product))
            .Returns(validationResponse);

            _mockMapper
            .Setup(mapper => mapper.Map <Product, ProductResponseModel>(validationResponse.ResponseData))
            .Returns(productResponse);

            IActionResult actionResult = _controller.Put(_productId, productRequest);

            OkObjectResult actual     = (OkObjectResult)actionResult;
            string         actualName = ((ProductResponseModel)actual.Value).Name;

            Assert.Equal(product.Name, actualName);
            Assert.Equal(StatusCodes.Status200OK, actual.StatusCode);
        }
Esempio n. 8
0
        public ActionResult AddProducts(ProductInfo ProductDetails)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    HttpPostedFileBase productImage     = ProductDetails.Image;
                    string             productImagePath = UploadImageToCloudinery(productImage);


                    ProductRequestModel Data = new ProductRequestModel()
                    {
                        Name     = ProductDetails.Name,
                        Image    = productImagePath,
                        Price    = ProductDetails.Price,
                        Quantity = ProductDetails.Quantity
                    };
                    var Result = BusinessLayer.AddProduct(Data);
                    return(RedirectToAction("ViewProduct", "Product"));
                }
                return(View());
            }
            catch (Exception e)
            {
                throw new ApplicationException(e.Message);
            }
        }
Esempio n. 9
0
 public Task <object> Handle(AddNewProductRequestCommand command, CancellationToken cancellationToken)
 {
     if (!command.IsValid())
     {
         NotifyValidationErrors(command);
     }
     else
     {
         Entities.ProductRequest ProductRequest = new Entities.ProductRequest
                                                  (
             null,
             new Name(command.ProductName),
             new Description(command.Description),
             new Quantity(command.Quantity),
             new Status(command.Status),
             new Response(command.Response),
             new Entities.Customer(new Identity((uint)command.UserId), null, null, null, null, null, null, null, null)
                                                  );
         ProductRequestModel model = _ProductRequestRepository.Add(ProductRequest);
         if (model != null)
         {
             return(Task.FromResult(model as object));
         }
         _bus.RaiseEvent(new DomainNotification("ProductRequest", "Server error", NotificationCode.Error));
     }
     return(Task.FromResult(null as object));
 }
Esempio n. 10
0
        public IActionResult Post([FromBody]ProductRequestModel createProductRequest)
        {
            Product product = _mapper.Map<ProductRequestModel, Product>(createProductRequest);
            product = _productRepository.Add(product);

            ProductResponseModel productResponse = _mapper.Map<Product, ProductResponseModel>(product);

            return CreatedAtAction("Get", new { id = productResponse.Id }, productResponse);
        }
Esempio n. 11
0
        public int AddProductWithSP(ProductRequestModel model)
        {
            var result = _db.Database.ExecuteSqlCommand("SPProduct @p0, @p1,@p2, @p3,@p4, @p5,@p6, @p7, @p8,@p9", parameters: new[] { $"{model.RecordUserId}", $"{model.UpdateUserId}", $"{model.RecordDate}", $"{model.UpdateDate}", $"{model.Name}", $"{model.Description}", $"{model.Imageurl}", $"{model.Price}", $"{model.CategoryId}", $"{model.IsDeleted}" });

            return(result);

            //var Id = _dbContext.AppLogs
            //.FromSqlRaw("SELECT TOP(1) * FROM dbo.[AppLogs] Order by Id desc")
            //.FirstOrDefault();

            //return Id.Id;
        }
Esempio n. 12
0
        public async Task <JsonResult> Action(ProductRequestModel model)
        {
            if (model.Picture != null && model.Picture.Length > 0 && model.Pictures != null && model.Pictures.Count > 0)
            {
                var ProductFileName = Guid.NewGuid() + Path.GetExtension(model.Picture.FileName);
                var ProductFilePath = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images\Pictures", ProductFileName);
                using (var fileStream = new FileStream(ProductFilePath, FileMode.Create))
                {
                    await model.Picture.CopyToAsync(fileStream);
                }

                if (model.Id == 0)
                {
                    var x = await _IProductService.Create(model.Name, model.Description, model.Price, ProductFileName, model.Pictures, model.CategoryId);

                    if (x > 0)
                    {
                        return(Json(true));
                    }

                    return(Json(false));
                }
                else
                {
                    var x = await _IProductService.Update(model.Id, model.Name, model.Description, model.Price, ProductFileName, model.CategoryId);

                    if (x > 0)
                    {
                        return(Json(true));
                    }
                    return(Json(false));
                }
            }

            else if (model.Picture == null && model.Id > 0)
            {
                var p = _IProductService.getyId(model.Id);
                if (p == null)
                {
                    return(Json(false));
                }
                var y = await _IProductService.Update(model.Id, model.Name, model.Description, model.Price, p.Picture, model.CategoryId);

                if (y > 0)
                {
                    return(Json(true));
                }
                return(Json(false));
            }


            return(Json(false));
        }
Esempio n. 13
0
        public async Task <bool> UpdateProductAsync(ProductRequestModel products)
        {
            var newProducts = new Product
            {
                ProductId     = products.ProductId,
                ProductName   = products.ProductName,
                Price         = products.Price,
                PublishStatus = products.PublishStatus
            };

            return(await _productRepository.UpdateAsync(newProducts));
        }
Esempio n. 14
0
        public async Task AddProduct(ProductRequestModel product)
        {
            if (product == null)
            {
                throw new ArgumentException("Product can't be null");
            }
            var mappedCustomer = _mapper.Map <ProductRequestModel, Product>(product);

            await _customerContext.Products.AddAsync(mappedCustomer);

            _customerContext.SaveChanges();
        }
        public async Task <IActionResult> Put([FromBody] ProductRequestModel Product)
        {
            var result = await ProductService.Update(Product);

            if (result.HasError)
            {
                return(BadRequest(result.Errors));
            }
            else
            {
                return(Ok("Product successfully updated."));
            }
        }
Esempio n. 16
0
        public async Task UpdateProduct(int id, ProductRequestModel prouct)
        {
            var existingProduct = await FindProduct(id);

            if (existingProduct == null)
            {
                throw new KeyNotFoundException();
            }
            var mapperProduct = _mapper.Map <ProductRequestModel, Product>(prouct, existingProduct);

            _customerContext.Products.Update(mapperProduct);
            _customerContext.SaveChanges();
        }
Esempio n. 17
0
        public async Task <ActionResult> UpdateProduct(int id, ProductRequestModel product)
        {
            try
            {
                await _productRepository.UpdateProduct(id, product);

                return(Ok());
            }
            catch (KeyNotFoundException)
            {
                return(NotFound());
            }
        }
Esempio n. 18
0
        public Task <BaseResponseModel <bool> > Update(ProductRequestModel model)
        {
            var config = new MapperConfiguration(cfg => {
                cfg.CreateMap <ProductRequestModel, Product>();
            });

            IMapper iMapper = config.CreateMapper();

            var Product = iMapper.Map <ProductRequestModel, Product>(model);

            var result = repository.Update(Product);

            return(result);
        }
Esempio n. 19
0
        public ActionResult Post([FromBody] ProductRequestModel model)
        {
            if (model == null)
            {
                return(BadRequest());
            }

            var mapper  = new MapperConfiguration(cfg => cfg.CreateMap <ProductRequestModel, ProductDTO>()).CreateMapper();
            var product = mapper.Map <ProductRequestModel, ProductDTO>(model);

            db.CreateProduct(product);

            return(Ok());
        }
Esempio n. 20
0
        public async Task <ProductResponseModel> SaveAsync(ProductRequestModel request)
        {
            var staleDomain   = _mapper.Map <Product>(request);
            var currentDomain = await _repository.GetByIdAsync(request.Id);

            if (null != currentDomain)
            {
                staleDomain.CreatedDate = currentDomain.CreatedDate;
                staleDomain.UpdatedDate = currentDomain.UpdatedDate;
            }
            var response = await _repository.SaveAsync(staleDomain);

            _session.GetUnitOfWork().CommitChanges();
            return(_mapper.Map <ProductResponseModel>(response));
        }
Esempio n. 21
0
 public void Put(int id, ProductRequestModel model)
 {
     //could be improved
     if (ModelState.IsValid)
     {
         var productToBeUpdated = productService.Get(id);
         productToBeUpdated.CategoryId  = model.CategoryId;
         productToBeUpdated.Description = model.Description;
         productToBeUpdated.ImageUrl    = model.ImageUrl;
         productToBeUpdated.Name        = model.Name;
         productToBeUpdated.Price       = model.Price;
         productToBeUpdated.IsActive    = model.IsActive;
         productService.Update(productToBeUpdated);
     }
 }
Esempio n. 22
0
        public async Task <IActionResult> Create(ProductRequestModel request)
        {
            if (!ModelState.IsValid)
            {
                return(View(request));
            }

            var model = new ProductModel();

            ProductMapper.Map(request, model);

            await _productService.Create(model, null);

            return(RedirectToAction("List"));
        }
Esempio n. 23
0
        public async Task Edit(ProductRequestModel item)
        {
            var content     = JsonSerializer.Serialize(item);
            var bodyContent = new StringContent(content, Encoding.UTF8, "application/json");

            var postResult = await _client.PutAsync("/api/products", bodyContent);


            var postContent = await postResult.Content.ReadAsStringAsync();

            if (!postResult.IsSuccessStatusCode)
            {
                throw new ApplicationException(postContent);
            }
        }
Esempio n. 24
0
#pragma warning disable CS0108 // Member hides inherited member; missing new keyword
        public async Task <IActionResult> Request(ProductRequestModel request)
        {
            if (ModelState.IsValid)
            {
                var from = (request.FromEmail != null) ? request.FromEmail : "Anonymous";
                var body = $"<p>New part request from: {from}</p><dl><dt>Brand Name:</dt><dd>{request.Part.Brand.Name}</dd><dt>Part Name:</dt><dd>{request.Part.Name}</dd><dt>Part Type:</dt><dd>{request.Part.PartType}</dd></dl>";
                await _emailSender.SendEmailAsync("*****@*****.**", "Product Request", "Part Request", body);

                TempData["Message"] = "Request sent!";
                return(RedirectToAction("Request"));
            }

            TempData["Message"] = "Request failed to send.";
            return(View(request));
        }
Esempio n. 25
0
 public ProductResponseModel AddProduct(ProductRequestModel ProductInfo)
 {
     try
     {
         if (ProductInfo != null)
         {
             var Result = _RepositeryLayer.AddProduct(ProductInfo);
             return(Result);
         }
         return(null);
     }
     catch (Exception e)
     {
         throw new ApplicationException(e.Message);
     }
 }
Esempio n. 26
0
        public async Task <IActionResult> GetProductById([FromRoute] ProductRequestModel productRequestModel)
        {
            var product = await _productRepository.GetProductById(productRequestModel.ProductId);

            if (product == null)
            {
                return(NotFound($"The Product whose id is equal to {productRequestModel.ProductId} cannot be found."));
            }

            if (!product.OnSale)
            {
                return(NotFound($"The Product whose id is equal to {productRequestModel.ProductId} is not on sale !"));
            }

            return(Ok(product));
        }
 public ActionResult AddProducts(ProductInfo ProductDetails)
 {
     try
     {
         ProductRequestModel Data = new ProductRequestModel();
         Data.Name     = "csdfcsd";
         Data.Image    = "dfsdfsdfsd";
         Data.Price    = 131;
         Data.Quantity = 12;
         var Result = _BusinessLayer.AddProduct(Data);
         return(View());
     }
     catch (Exception e)
     {
         throw new ApplicationException(e.Message);
     }
 }
Esempio n. 28
0
        public IActionResult Put(Guid id, [FromBody]ProductRequestModel productRequest)
        {
            Product product = _mapper.Map<ProductRequestModel, Product>(productRequest);
            product.Id = id;

            ValidationResponse<Product> validationResponse = _productService.Update(product);

            if(validationResponse.Status == ValidationStatus.NotFound)
            {
                return NotFound(validationResponse.Message);
            }

            ProductResponseModel productResponse = 
                _mapper.Map<Product, ProductResponseModel>(validationResponse.ResponseData);

            return Ok(productResponse);
        }
Esempio n. 29
0
        public async Task When_Product_Is_Given_Null_It_Should_Be_Return_NotFound()
        {
            Product nullProduct = null;

            var ProductRepositoryMock = new Mock <IProductRepository>();

            ProductRepositoryMock.Setup(p => p.GetProductById(1000)).Returns(Task.FromResult(nullProduct));

            var ProductController   = new ProductController(ProductRepositoryMock.Object);
            var ProductRequestModel = new ProductRequestModel()
            {
                ProductId = 1000
            };

            var actionResult = await ProductController.GetProductById(ProductRequestModel);

            actionResult.Should().BeOfType <NotFoundObjectResult>();
        }
        public async Task <IActionResult> SaveProductById(int id, [FromBody] ProductRequestModel request)
        {
            var response = new SingleResponse <ProductResponseModel>();

            try
            {
                request.Id    = id;
                response.Data = await _productService.SaveAsync(request);
            }
            catch (Exception ex)
            {
                response.Meta.Code         = -1;
                response.Meta.ErrorMessage = "Internal server error.";
                _logger.Error("There was an error on 'SaveProductById' invocation.", ex);
            }

            return(response.ToHttpResponse());
        }