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 }; }
/// <summary> /// The OnResult method fires when it recieves the answer from the server /// </summary> /// <param name="resultCode">Code</param> /// <param name="response">Response</param> public void OnResult(int resultCode, ProductDetailsResponse response) { hmsManager = GameObject.Find("HMSManager").GetComponent <HMSManager>(); callbacksHandler = GameObject.Find("HMSManager").GetComponent <HMSCallbacksHandler>(); if (resultCode == 0) { hmsManager.numberOfProductsRetrieved++; callbacksHandler.onProductDetailSuccess(response); if (hmsManager.numberOfProductsRetrieved == hmsManager.products.Length) { #if DEBUG Debug.Log("[HMS]: all products retrieved"); #endif callbacksHandler.productListInitialiced(); } } else { callbacksHandler.onProductDetailError(resultCode); } }
/// <summary> /// Request handler for product details /// </summary> /// <param name="request">Product details request</param> /// <returns>Product details response</returns> private async static Task <ProductDetailsResponse> GetProductDetailsAsync(ProductDetailsRequest request) { ProductDetailsResponse response = null; try { var productDto = await _productService.GetProductDetailsAsync(request.ProductId); var product = new Product() { Id = productDto.Id, Name = productDto.Name, EntryDate = productDto.EntryDate, PriceWithReduction = productDto.PriceWithReduction }; //Generate the response message with product info and return response = new ProductDetailsResponse() { Product = product }; } catch (Exception ex) { Console.WriteLine(ex.Message); } return(response); }
public async Task <ProductDetailsResponse> GetProductDetailsAsync(long productId) { var productInfo = await _dataSource.Database.HashGetAllAsync($"prod:{productId}"); if (productInfo is null) { return(null); } var product = new ProductDetailsResponse(); foreach (var info in productInfo) { if ("Name".Equals(info.Name, StringComparison.OrdinalIgnoreCase)) { product.Name = info.Value; } else if ("Description".Equals(info.Name, StringComparison.OrdinalIgnoreCase)) { product.Description = info.Value; } else if ("Price".Equals(info.Name, StringComparison.OrdinalIgnoreCase)) { if (double.TryParse(info.Value, out var price)) { product.Price = price; } } } var imagesTask = _dataSource.Database.SetMembersAsync($"prod:{productId}:images"); var colorsTask = _dataSource.Database.SetMembersAsync($"prod:{productId}:colors"); var sizesTask = _dataSource.Database.SetMembersAsync($"prod:{productId}:sizes"); var featuresTask = _dataSource.Database.HashGetAllAsync($"prod:{productId}:features"); Task.WaitAll(imagesTask, colorsTask, sizesTask, featuresTask); if (imagesTask.Result != null) { product.Images = Array.ConvertAll(imagesTask.Result, img => img.ToString()); } if (colorsTask.Result != null) { product.Colors = Array.ConvertAll(colorsTask.Result, color => color.ToString()); } if (sizesTask.Result != null) { product.Sizes = Array.ConvertAll(sizesTask.Result, size => size.ToString()); } foreach (var feature in featuresTask.Result) { product.Features.Add(feature.Name, feature.Value); } return(product); }
public void Dispose() { _mockLogger = null; _mockRabbitMqService = null; productRequest = null; productDetailsRequest = null; productsResponse = null; productDetailsResponse = null; }
public async Task <IHttpActionResult> Details(long id) { var product = await repos.FindById(id); if (product == null) { return(NotFound()); } var dto = AutoMapper.Mapper.Map <ProductDto>(product); var res = new ProductDetailsResponse { Product = dto }; return(Ok(res)); }
public ProductDetailsResponse GetDetails(ProductDetailsRequest request) { var product = new ProductDetailsResponse(); try { using (var bus = RabbitHutch.CreateBus(_rmqConnectionString)) { product = bus.Rpc.Request <ProductDetailsRequest, ProductDetailsResponse>(request); } } catch (Exception ex) { // log exception here } return(product); }
public async Task <ProductDetailsResponse> GetByIdAsync(ProductDetailsRequest request) { var product = await _product.Find(c => c.Id == request.Id).FirstOrDefaultAsync(); if (product == null) { return(null); } var totalReductions = product.PriceReductions.Select(a => a.Reduction).Sum(); var response = new ProductDetailsResponse { Id = product.Id, Name = product.Name, EntryDate = product.EntryDate, CurrentPrice = (product.Price - totalReductions) }; return(response); }
public ProductDetailsResponse GetProductDetails(string id) { //Initialize(); var productDetailsResponse = new ProductDetailsResponse(); var collection = iMongoDb.GetCollection <Products>(_productsCollection); ObjectId internalId = GetInternalId(id); PriceReductions PriceReduction = GetPriceDeduction(); var item = collection?.Find(Builders <Products> .Filter.Eq("_id", internalId))?.FirstOrDefault(); if (item != null) { productDetailsResponse.Product = new Product { Id = item.id.ToString(), Name = item.Name, EntryDate = item.EntryDate, PriceWithDeduction = item.Price - Convert.ToDouble(PriceReduction?.Reduction) }; } return(productDetailsResponse); }
private TaskCompletionSource <Product> CaptureProductDetailsRequest(string ean) { inventoryClient.SetupCall( c => c.AutocompleteAsync(It.IsAny <AutocompleteRequest>(), null, null, It.IsAny <CancellationToken>())); var productDetailsRequest = inventoryClient.SetupCall(c => c.ProductDetailsAsync( It.Is <ProductDetailsRequest>(r => r.EAN == ean), null, null, It.IsAny <CancellationToken>())); var tcs = new TaskCompletionSource <Product>(); tcs.Task.ContinueWith(task => { var response = new ProductDetailsResponse { Product = task.Result }; productDetailsRequest.SetResult(response); }); return(tcs); }
public virtual void onProductDetailSuccess(ProductDetailsResponse response) { productList.Add(response.productList[0]); Debug.Log("[HMS]: " + response.productList.Count + "product detail retrieved"); }