コード例 #1
0
        public async Task <IActionResult> GetProducts(string skip, string take)
        {
            if (string.IsNullOrEmpty(skip))
            {
                return(BadRequest($"skip parameter can't be empty"));
            }
            if (string.IsNullOrEmpty(take))
            {
                return(BadRequest($"take parameter can't be empty"));
            }
            ProductsResponse apiResponse = null;

            try
            {
                apiResponse = await _dataRepository.GetProducts(skip, take);
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex.Message));
            }

            if (apiResponse.IsError)
            {
                return(BadRequest(apiResponse.IsError));
            }
            List <ProductDto> products = new List <ProductDto>();

            foreach (Product product in apiResponse.Value.ProductList)
            {
                var prodctDto = Mapper.Map <ProductDto>(product);
                products.Add(prodctDto);
            }

            return(Ok(products));
        }
コード例 #2
0
        private ProductsResponse[] ObterArticulo(int codeStore, ProductsRequest productRequest)
        {
            var parameters = new Dictionary <string, object>();

            parameters.Add("@Sku", productRequest.Sku);
            parameters.Add("@CodigoTienda", codeStore);
            List <ProductsResponse> list = new List <ProductsResponse>();
            Inspector inspector          = new Inspector();

            foreach (var item in data.GetDataReader("[dbo].[sp_vanti_ProductoBusqueda]", parameters))
            {
                ProductsResponse product = new ProductsResponse();
                product.Articulo = new Articulo();
                product.Articulo.DigitoVerificadorArticulo = new DigitoVerificadorArticulo();

                product.Articulo.DigitoVerificadorArticulo.DigitoVerificadorActual   = item.GetValue(0).ToString();
                product.Articulo.DigitoVerificadorArticulo.DigitoVerificadorCorrecto = item.GetValue(1).ToString();
                product.Articulo.DigitoVerificadorArticulo.Inconsistencia            = Convert.ToInt32(item.GetValue(2)) == 1;
                product.Articulo.Sku                = Convert.ToInt32(item.GetValue(3));
                product.Articulo.Estilo             = item.GetValue(4).ToString();
                product.Articulo.Upc                = item.GetValue(5).ToString();
                product.Articulo.RutaImagenLocal    = item.GetValue(6).ToString();
                product.Articulo.RutaImagenRemota   = item.GetValue(7).ToString();
                product.Articulo.TasaImpuesto1      = inspector.TruncarValor(Convert.ToDecimal(item.GetValue(8).ToString()));
                product.Articulo.TasaImpuesto2      = inspector.TruncarValor(Convert.ToDecimal(item.GetValue(9).ToString()));
                product.Articulo.PrecioConImpuestos = inspector.TruncarValor(Convert.ToDecimal(item.GetValue(10).ToString()));
                product.Articulo.CodigoImpuesto1    = item.GetValue(11).ToString();
                product.Articulo.CodigoImpuesto2    = item.GetValue(12).ToString();
                product.Articulo.Impuesto1          = inspector.TruncarValor(Convert.ToDecimal(item.GetValue(13)));
                product.Articulo.Impuesto2          = inspector.TruncarValor(Convert.ToDecimal(item.GetValue(14)));
                product.Articulo.EsTarjetaRegalo    = item.GetValue(15).ToString() == "1";
                list.Add(product);
            }
            return(list.ToArray());
        }
コード例 #3
0
        private void SetRequestAndResponse()
        {
            productRequest        = new ProductRequest {
            };
            productDetailsRequest = new ProductDetailsRequest {
                Id = "SampleId"
            };

            var product = new Product
            {
                Id                 = "SampleId",
                Name               = "Brinjal",
                EntryDate          = DateTime.Now,
                PriceWithDeduction = 10
            };

            productsResponse = new ProductsResponse {
                Products = new List <Product> {
                    product
                }
            };
            productDetailsResponse = new ProductDetailsResponse {
                Product = product
            };
        }
コード例 #4
0
    public async Task CreateStore(Store store)
    {
        var result = await taskHelperFactory.
                     CreateInternetAccessViewModelInstance(loggingService /*, this*/).
                     TryExecuteAsync(() => storeApi.Create(new StoreCreateRequest()
        {
            AutoAccept    = store.AutoAccept,
            Name          = store.Name,
            StoreLocation = StoreLocationRequest.Parse(store.StoreLocation),
        }));

        if (result.IsSuccess)
        {
            var storeResponse = result.Value;
            await OnCreateStoreSuccessful(new Store()
            {
                Id       = storeResponse.Id,
                Name     = storeResponse.Name,
                Products = storeResponse.Products != null
                    ? storeResponse.Products?.Select(p => ProductsResponse.Parse(p)).ToList()
                    : new List <Product>(),
                AutoAccept    = storeResponse.AutoAccept,
                Image         = storeResponse.Image,
                StoreLocation = storeResponse.StoreLocation != null
                    ? StoreLocationResponse.Parse(storeResponse.StoreLocation)
                    : null,
            });
        }
    }
コード例 #5
0
        public void GetProductsByProductId_ReturnsResultFromDataBroker()
        {
            // Arrange
            const int TestInputProductId = 1;                      // A product ID to test with
            var       expectedResult     = new ProductsResponse(); // A dummy ProductsResponse object that we will expect to be returned.

            // Create a Mock IAPIDataBroker object
            var mockDataBroker = new Mock <IAPIDataBroker>();

            // Setup the mock so that when GetProductsById is called with TestInputProductId it returns the expectedResult ProductsResponse object.
            // The .Verifiable() on the end enables us to check whether it was actually called.
            mockDataBroker.Setup(d => d.GetProductsByProductId(TestInputProductId)).Returns(expectedResult).Verifiable();


            var api = new NewApi(mockDataBroker.Object); // Instantiate the class under test

            // Act
            var result = api.GetProductsByProductId(TestInputProductId); // Perform the method we're testing.

            // Assert

            // Check that the method returned the expectedResult object, which we told the mock data broker to return.
            // This tests that we're actually returning the right data, not some random ProductResponse object that was created in the NewApi class.
            Assert.AreEqual(expectedResult, result);

            // Verify that the DataBroker class was called as per the above setup in the Arrange section.
            mockDataBroker.Verify();
        }
コード例 #6
0
        public void GetProductsByProductId_ReturnsObjectFromJSONService()
        {
            // Arrange
            const int TestProductId = 5;
            var       testJson      = new NameValueCollection {
                { "test", "test" }
            };
            const string TestOutputApiResponse = "testresponse";
            var          expectedResult        = new ProductsResponse();

            // As per above, set up the mock API service but this time it's just going to return junk test data
            // because we aren't testing the API service in this test.
            var mockAPIService = new Mock <IAPIService>();

            mockAPIService.Setup(a => a.GetData(testJson)).Returns(TestOutputApiResponse).Verifiable();

            // Set up the Mock JSONService to return the expectedResult ProductsResponse object no matter what's passed into it
            var mockJSONService = new Mock <IJSONService>();

            mockJSONService.Setup(j => j.DeserialiseJSON <ProductsResponse>(It.IsAny <string>()))
            .Returns(expectedResult);

            var dataBroker = new APIDataBroker(mockAPIService.Object, mockJSONService.Object);

            // Act
            var result = dataBroker.GetProductsByProductId(TestProductId);

            // Assert

            // Verify that the string we set the Mock JSONService object to return was returned by the method under test,
            // and verify that the DeserialiseJSON<ProductsResponse> method was called on the Mock JSONService.
            Assert.AreEqual(expectedResult, result);
            mockJSONService.Verify(j => j.DeserialiseJSON <ProductsResponse>(It.IsAny <string>()));
        }
コード例 #7
0
        public ProductsResponse Responder(ProductsRequest request)
        {
            ProductsResponse resp = new ProductsResponse();

            var produktDTOs     = _productsRepository.Get().Result;
            var priceReductions = _priceReductionRepository.Get().Result.ToList();;


            foreach (var product in produktDTOs)
            {
                var reduction = priceReductions.FirstOrDefault(r => r.DayOfWeek == (int)product.EntryDate.DayOfWeek);
                if (reduction != null)
                {
                    var newPrice = product.Price * (1.0 - reduction.Reduction);

                    // description with normal has to be set first. Because of the price change!!!
                    product.Description = "It' a bargain on " + product.EntryDate.DayOfWeek + ". You get a " + (reduction.Reduction * 100).ToString() + "% reduction. Normal price would be " + product.Price.ToString();
                    product.Price       = newPrice;
                }

                resp.Products.Add(product);
            }


            return(resp);
        }
コード例 #8
0
        public static List <Product> ConvertResponseProducts(ProductsResponse prodResponse)
        {
            List <Product> products = null;

            if (prodResponse.productCategoryList != null && prodResponse.productCategoryList.Count > 0)
            {
                foreach (var prodcategory in prodResponse.productCategoryList)
                {
                    if (prodcategory.Products != null && prodcategory.Products.Count > 0)
                    {
                        products = new List <Product>();
                        foreach (var item in prodcategory.Products)
                        {
                            var product = new Product();
                            product.ProductCategoryId        = prodcategory.ProductCategoryMasterId;
                            product.ProductCategory          = prodcategory.ProductCategoryName;
                            product.ProductId                = item.ProductId;
                            product.ProductName              = item.ProductName;
                            product.Price                    = item.ProductRate;
                            product.Description              = item.ProductDescription;
                            product.UsrProductInventoryTrxId = item.UsrProductInventoryTrxId;
                            product.Quantity                 = item.AvailableQuantity;
                            //........

                            products.Add(product);
                        }
                    }
                }
            }

            return(products);
        }
コード例 #9
0
        /// <summary>
        /// List the products
        /// </summary>
        /// <param name="request">Products request</param>
        /// <returns>Products response</returns>
        private async static Task <ProductsResponse> ListProductsAsync(ProductsRequest request)
        {
            ProductsResponse response = null;

            try
            {
                var productDtos = await _productService.ListProductsAsync();

                var products = productDtos.Select(x => new Product
                {
                    Id                 = x.Id,
                    Name               = x.Name,
                    EntryDate          = x.EntryDate,
                    PriceWithReduction = x.PriceWithReduction
                }).ToList();

                response = new ProductsResponse()
                {
                    ProductList = products
                };
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return(response);
        }
コード例 #10
0
        public string GetFeaturedProducts()
        {
            //Create a response object
            ProductsResponse response = new ProductsResponse();

            try
            {
                //Get 3 random products, this is done by ordering on a new random GUID
                List <Product> products = _context.Product
                                          .Include(p => p.ProductCategory)
                                          .OrderBy(p => Guid.NewGuid())
                                          .Take(3)
                                          .ToList();

                //Add to response
                response.Products = products;
                response.Success  = products != null;
            }
            catch (Exception e)
            {
                response.Success      = false;
                response.ErrorMessage = e.Message;
            }

            //Serialize and return to client
            return(JsonConvert.SerializeObject(response, Formatting.Indented,
                                               new JsonSerializerSettings()
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
            }));
        }
コード例 #11
0
        public ProductsResponse GetProducts()
        {
            ProductsResponse response = new ProductsResponse();

            response.Success  = true;
            response.Products = _products;
            return(response);
        }
コード例 #12
0
        private ProductsResponse[] ObterArticulos(int codeStore, ProductsRequest productRequest)
        {
            var parameters = new Dictionary <string, object>();

            parameters.Add("@Sku", productRequest.Sku);
            parameters.Add("@CodigoTienda", codeStore);
            parameters.Add("@Estilo", productRequest.CodigoEstilo);
            parameters.Add("@CodigoProveedor", productRequest.CodeProvider);
            parameters.Add("@CodigoDepartamento", productRequest.CodeDepartment);
            parameters.Add("@CodigoSubDepartamento", productRequest.CodeSubDepartment);
            parameters.Add("@CodigoClase", productRequest.CodeClass);
            parameters.Add("@CodigoSubClase", productRequest.CodeSubClass);
            parameters.Add("@Descripcion", productRequest.Description);
            if (productRequest.NumeroPagina != 0)
            {
                parameters.Add("@NumeroPagina", productRequest.NumeroPagina);
                parameters.Add("@RegistrosPorPagina", productRequest.RegistrosPorPagina);
            }
            List <ProductsResponse> list = new List <ProductsResponse>();
            Inspector inspector          = new Inspector();

            foreach (var item in data.GetDataReader("[dbo].[sp_vanti_ProductosBusqueda]", parameters))
            {
                ProductsResponse product = new ProductsResponse();
                product.Articulo = new Articulo();
                product.Articulo.DigitoVerificadorArticulo = new DigitoVerificadorArticulo();

                product.Articulo.DigitoVerificadorArticulo.DigitoVerificadorActual   = item.GetValue(0).ToString();
                product.Articulo.DigitoVerificadorArticulo.DigitoVerificadorCorrecto = item.GetValue(1).ToString();
                product.Articulo.DigitoVerificadorArticulo.Inconsistencia            = Convert.ToInt32(item.GetValue(2)) == 1;
                product.Articulo.Sku                = Convert.ToInt32(item.GetValue(3));
                product.Articulo.Estilo             = item.GetValue(4).ToString();
                product.Articulo.Upc                = item.GetValue(5).ToString();
                product.Articulo.RutaImagenLocal    = item.GetValue(6).ToString();
                product.Articulo.RutaImagenRemota   = item.GetValue(7).ToString();
                product.Articulo.TasaImpuesto1      = inspector.TruncarValor(Convert.ToDecimal(item.GetValue(8).ToString()));
                product.Articulo.TasaImpuesto2      = inspector.TruncarValor(Convert.ToDecimal(item.GetValue(9).ToString()));
                product.Articulo.PrecioConImpuestos = inspector.TruncarValor(Convert.ToDecimal(item.GetValue(10).ToString()));
                product.Articulo.CodigoImpuesto1    = item.GetValue(11).ToString();
                product.Articulo.CodigoImpuesto2    = item.GetValue(12).ToString();
                product.Articulo.Impuesto1          = inspector.TruncarValor(Convert.ToDecimal(item.GetValue(13)));
                product.Articulo.Impuesto2          = inspector.TruncarValor(Convert.ToDecimal(item.GetValue(14)));

                product.Articulo.CodigoDepto           = Convert.ToInt32(item.GetValue(15));
                product.Articulo.CodigoSubDepartamento = Convert.ToInt32(item.GetValue(16));
                product.Articulo.CodigoClase           = Convert.ToInt32(item.GetValue(17));
                product.Articulo.CodigoSubClase        = Convert.ToInt32(item.GetValue(18));
                product.Articulo.CodigoMarca           = Convert.ToInt32(item.GetValue(19));

                product.Articulo.Depto                = item.GetValue(20).ToString();
                product.Articulo.SubDepartamento      = item.GetValue(21).ToString();
                product.Articulo.Clase                = item.GetValue(22).ToString();
                product.Articulo.SubClase             = item.GetValue(23).ToString();
                product.Articulo.DescripcionProveedor = item.GetValue(24).ToString();
                list.Add(product);
            }
            return(list.ToArray());
        }
コード例 #13
0
 public void Dispose()
 {
     _mockLogger            = null;
     _mockRabbitMqService   = null;
     productRequest         = null;
     productDetailsRequest  = null;
     productsResponse       = null;
     productDetailsResponse = null;
 }
コード例 #14
0
 public ProductBusiness(IProductRepository productRepository,
                        ProductResponse productResponse, ProductsResponse productsResponse,
                        IMapper mapper, ILogger <ProductBusiness> logger)
 {
     _productRepository = productRepository;
     _productsResponse  = productsResponse;
     _productResponse   = productResponse;
     _mapper            = mapper;
     _logger            = logger;
 }
コード例 #15
0
        public IActionResult Get([FromQuery] int from, [FromQuery] int number)
        {
            var products = ProductsStorage.Products.Skip(from).Take(number).ToList();
            var response = new ProductsResponse {
                Products = products,
                Details  = ProductsStorage.Details
            };

            return(Ok(response));
        }
コード例 #16
0
        public override Task <ProductsResponse> GetProducts(Empty request, ServerCallContext context)
        {
            var productsResponse = new ProductsResponse();
            var products         = _catalogDbContext.Products.Select(q => new ProductResponse()
            {
                Name = q.Name, Price = q.Price
            }).ToList();

            productsResponse.Products.AddRange(products);
            return(Task.FromResult(productsResponse));
        }
コード例 #17
0
 public LaptopProductBusiness(IProductRepository productRepository,
                              ProductResponse productResponse, ProductsResponse productsResponse,
                              IMapper mapper, ILogger <LaptopProductBusiness> logger)
     : base(productRepository, productResponse, productsResponse, mapper, logger)
 {
     _productRepository = productRepository;
     _productsResponse  = productsResponse;
     _productResponse   = productResponse;
     _mapper            = mapper;
     _logger            = logger;
 }
コード例 #18
0
ファイル: ProductTest.cs プロジェクト: lareeth/WHMCS.Net
        public void TestSingleProductName()
        {
            Mock <IDatastore> mockDatastore = new Mock <IDatastore>();

            mockDatastore.Setup(_productExpectation).Returns(_jsonData);

            WhmcsApi         instance      = new WhmcsApi("User", "Pass", "Website", mockDatastore.Object);
            ProductsResponse singleProduct = instance.GetProduct(1);

            Assert.Equal("Basic cPanel Shared Hosting", singleProduct.Products.Product.SingleOrDefault().Name);
        }
コード例 #19
0
ファイル: ProductTest.cs プロジェクト: lareeth/WHMCS.Net
        public void TestGetAllProducts()
        {
            Mock <IDatastore> mockDatastore = new Mock <IDatastore>();

            mockDatastore.Setup(_productExpectation).Returns(_jsonData);

            WhmcsApi         instance = new WhmcsApi("User", "Pass", "Website", mockDatastore.Object);
            ProductsResponse test     = instance.GetProducts();

            Assert.NotNull(test);
        }
コード例 #20
0
        public async Task <ProductsResponse> List(ProductRequest request)
        {
            var response   = new ProductsResponse();
            var methodInfo = nameof(List).MethodInfo(MethodBase.GetCurrentMethod());

            await RunCodeAsync(methodInfo, request, response, async (uow) =>
            {
                await _manager.List(request, response);
            });

            return(response);
        }
コード例 #21
0
 public static Product Parse(ProductsResponse pr)
 {
     return(new Product()
     {
         Id = pr.Id,
         Name = pr.Name,
         Description = pr.Description,
         Image = pr.Image,
         UnitPrice = pr.UnitPrice,
         StoreId = pr.StoreId,
     });
 }
コード例 #22
0
        public static ProductsResponse ProductsListToResponse(IItemsList <Product> model)
        {
            ProductsResponse modelResponse =
                new ProductsResponse()
            {
                TotalItemsCount    = model.TotalItemsCount,
                RenderedItemsCount = model.RenderedItemsCount,
                Items = model?.Items.Select(x => ProductMapper.ModelToResponse(x)).ToList()
            };

            return(modelResponse);
        }
コード例 #23
0
 public static Store Parse(StoreResponse response)
 {
     return(new Store()
     {
         Id = response.Id,
         Name = response.Name,
         Image = response.Image,
         AutoAccept = response.AutoAccept,
         StoreLocation = response.StoreLocation != null
                 ? StoreLocationResponse.Parse(response.StoreLocation)
                 : null,
         Products = response.Products?.Select(pr => ProductsResponse.Parse(pr)).ToList() ?? new List <Product>(),
     });
 }
コード例 #24
0
        public HttpResponseMessage Get(HttpRequestMessage pRequest, string data)
        {
            IEnumerable <string> token = null;

            pRequest.Headers.TryGetValues("Token-autorization", out token); //TODO: Corregir error ortográfico

            PersonEN personVerified = personBL.VerifyPersonAuthentication(token);

            if (token != null)
            {
                if (personVerified != null)
                {
                    if (personVerified.IsValidToken)
                    {
                        List <ProductEN> products = productsBL.GetProductsByCountryID(personVerified);

                        if (products != null)
                        {
                            ProductsResponse productsResponse = interactor.CreateProductsResponse(products);
                            return(Request.CreateResponse <IResponse>(HttpStatusCode.OK, productsResponse));
                        }
                        else
                        {
                            response.HttpCode = 500;
                            response.Message  = "Something went wrong";
                            return(Request.CreateResponse <IResponse>(HttpStatusCode.InternalServerError, response));
                        }
                    }
                    else
                    {
                        response.HttpCode = 401;
                        response.Message  = "Authentication token has expired.";
                        return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                    }
                }
                else
                {
                    response.HttpCode = 401;
                    response.Message  = "Credentials are not valid.";
                    return(Request.CreateResponse <IResponse>(HttpStatusCode.Unauthorized, response));
                }
            }
            else
            {
                response.HttpCode = 400;
                response.Message  = "Authorization token must be provided";
                return(Request.CreateResponse <IResponse>(HttpStatusCode.BadRequest, response));
            }
        }
コード例 #25
0
        public IActionResult GetList([FromQuery] string filter, [FromQuery] int?pageIndex, [FromQuery] int?pageSize)
        {
            IItemsList <Product> productsList         = null;
            ProductsResponse     productsListResponse = null;

            productsList = this._productService.GetList(filter, pageIndex, pageSize);

            if (productsList.RenderedItemsCount <= 0)
            {
                return(NotFound($"Items not found for requested page"));
            }

            productsListResponse = ProductMapper.ProductsListToResponse(productsList);

            return(Ok(productsListResponse));
        }
コード例 #26
0
        private void Create()
        {
            ProductsResponse pr       = this.orderService.ReadAllProducts();
            Order            order    = this.orderView.GetOrderNewInfo(pr.Data);
            Response         response = this.orderService.ValidateOrder(order);

            if (response.Success && this.orderView.GetAnswer("Do you want to save this order?"))
            {
                OrderResponse orderResponse = this.orderService.Create(order);
            }
            else if (response.Success == false)
            {
                this.orderView.DisplayError(response.Message);
                this.Create();
            }
        }
コード例 #27
0
        public async Task <IActionResult> GetSearchMethodForProduct(string Name, int Quantity)
        {
            var result   = new ProductsResponse();
            var products = await _dbHelper.GetSearchMethodForProduct(Name, Quantity);

            if (products.Count == 0)
            {
                result.Code    = -100;
                result.Message = "Can't get products with given parameters.";
                return(Ok(result));
            }

            result.Code     = 100;
            result.Message  = "Success";
            result.Products = products;
            return(Ok(result));
        }
コード例 #28
0
        public ProductsResponse GetProductList(ProductRequest request)
        {
            var product = new ProductsResponse();

            try
            {
                using (var bus = RabbitHutch.CreateBus(_rmqConnectionString))
                {
                    product = bus.Rpc.Request <ProductRequest, ProductsResponse>(request);
                }
            }
            catch (Exception ex)
            {
                // log exception here
            }
            return(product);
        }
コード例 #29
0
        public ProductsResponse GetProduct(int productId)
        {
            ProductsResponse productResponse = new ProductsResponse();

            try
            {
                productResponse.product = repository.GetProduct(productId);
                productResponse.Success = true;
            }
            catch (Exception ex)
            {
                productResponse.Success    = false;
                productResponse.Message    = ex.Message;
                productResponse.StackTrace = ex.StackTrace;
            }
            return(productResponse);
        }
コード例 #30
0
        public override Task <ProductsResponse> Get(Empty _, Grpc.Core.ServerCallContext context)
        {
            var maps = products
                       .Select(p => new ProductResponse()
            {
                Id        = p.Id.ToString(),
                CreatedAt = Timestamp.FromDateTimeOffset(p.CreatedAt),
                Name      = p.Name,
                Sku       = p.Sku,
                Price     = p.Price
            });

            var @return = new ProductsResponse();

            @return.Products.AddRange(maps);
            return(Task.FromResult(@return));
        }
コード例 #31
0
ファイル: ProductService.cs プロジェクト: aaronzoe/Klkl
 public ProductsResponse Get(Products request)
 {
     ProductsResponse response=new ProductsResponse();
     response.Goodses = Db.Select<Goods>();
     return response;
 }