public async Task <IActionResult> Create(ProductOutput productOutput) { if (ModelState.IsValid) { productOutput.Id = 0; productOutput.DateTime = DateTime.Now; productOutput.Product = null; var product = _context.Products.Find(productOutput.ProductId); if (productOutput.Qtde <= product.Qtde) { _context.ProductOutputs.Add(productOutput); await _context.SaveChangesAsync(); product.Qtde = product.Qtde - productOutput.Qtde; _context.Products.Update(product); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); } else { return(View(productOutput)); } } else { return(View(productOutput)); } }
public async Task <IActionResult> Get(Guid productId) { ProductOutput output = await _getProductDetailsUseCase.Execute(productId); _presenter.Populate(output); return(_presenter.ViewModel); }
public IResult Add(ProductOutput productOutput) { List <StockStore> products = _stockStoreDal.GetAll(p => p.Id == productOutput.ProductAcceptanceId); for (int i = 0; i < products.Count; i++) { if (products[i].Count < productOutput.Count) { return(new ErrorResult(Messages.CountError)); } else { StockStore product = new StockStore { Count = products[i].Count - productOutput.Count, Barcode = products[i].Barcode, Id = products[i].Id, UnitPrice = products[i].UnitPrice, DrawerId = products[i].DrawerId, ProductAcceptanceId = products[i].ProductAcceptanceId, ProductUnitId = products[i].ProductUnitId, ShelfId = products[i].ShelfId, StoreId = products[i].StoreId }; _stockStoreDal.Update(product); } } _productOutputDal.Add(productOutput); return(new SuccessResult(Messages.AddedProductOutput)); }
public ActionResult Create(int id) { var prouctOut = _context.Products.Find(id); var productOutput = new ProductOutput(); productOutput.ProductId = id; productOutput.Product = prouctOut; productOutput.DateTime = DateTime.Now; return(View(productOutput)); }
public IActionResult Delete(ProductOutput productOutput) { var result = _productOutputService.Delete(productOutput); if (result.Success) { return(Ok(result.Message)); } return(BadRequest(result.Message)); }
public List <ProductOutput> GetData_ProductOutputList(int timeType) { TimeType type = (TimeType)timeType; List <ProductOutput> list = new List <ProductOutput>(); switch (type) { case TimeType.Day: for (int i = 0; i < 8; i++) { int num = i + 65; byte[] bt = new byte[] { (byte)num }; ASCIIEncoding aSCIIEncoding = new ASCIIEncoding(); string str = aSCIIEncoding.GetString(bt); ProductOutput p = new ProductOutput(); p.SetData(i, "产品" + str, Random.Range(500, 5000)); list.Add(p); } break; case TimeType.Month: for (int i = 0; i < 8; i++) { int num = i + 65; byte[] bt = new byte[] { (byte)num }; ASCIIEncoding aSCIIEncoding = new ASCIIEncoding(); string str = aSCIIEncoding.GetString(bt); ProductOutput p = new ProductOutput(); p.SetData(i, "产品" + str, Random.Range(5000, 50000)); list.Add(p); } break; case TimeType.Year: for (int i = 0; i < 8; i++) { int num = i + 65; byte[] bt = new byte[] { (byte)num }; ASCIIEncoding aSCIIEncoding = new ASCIIEncoding(); string str = aSCIIEncoding.GetString(bt); ProductOutput p = new ProductOutput(); p.SetData(i, "产品" + str, Random.Range(50000, 500000)); list.Add(p); } break; default: break; } return(list); }
public void Populate(ProductOutput output) { if (output == null) { ViewModel = new NotFoundResult(); return; } ViewModel = new ObjectResult(new ProductDetailsModel( output.ProductId, output.Name, output.Description, output.Price, output.Available)); }
public Response Update(ProductOutput productOutput) { Response response = new Response(); SqlConnection connection = new SqlConnection(); connection.ConnectionString = ConnectionHelper.GetConnectionString(); SqlCommand command = new SqlCommand(); command.CommandText = "UPDATE PRODUCT_OUTPUT SET DATASAIDA = @DATASAIDA, IDFUNCIONARIO = @IDFUNCIONARIO, VALORTOTAL = @VALORTOTAL, IDFORNECEDORES = @IDCLIENTE WHERE ID = @ID"; command.Parameters.AddWithValue("@DATASAIDA", productOutput.ExitDate); command.Parameters.AddWithValue("@IDFUNCIONARIO", productOutput.EmployeeID); command.Parameters.AddWithValue("@VALORTOTAL", productOutput.TotalValue); command.Parameters.AddWithValue("@IDCLIENTE", productOutput.ClientID); command.Parameters.AddWithValue("@ID", productOutput.ID); command.Connection = connection; try { connection.Open(); int nLinhasAfetadas = command.ExecuteNonQuery(); if (nLinhasAfetadas != 1) { response.Success = false; response.Message = "Registro não encontrado!"; return(response); } response.Success = true; response.Message = "Atualizado com sucesso."; } catch (Exception ex) { response.Success = false; response.Message = "Erro no banco de dados, contate o administrador."; response.StackTrace = ex.StackTrace; response.ExceptionError = ex.Message; } finally { connection.Close(); } return(response); }
public virtual ActionResult Index(int id) { using (var dbContext = new AllureContext()) { var product = dbContext .Set <Product>() .Include(p => p.Localized) .SingleOrDefault(c => c.Id == id); if (product == null) { throw new HttpException(404, string.Format("product {0} doesn't exist", id.ToString())); } var model = new ProductOutput(product, this.LanguageCode); return(View(CreateViewModel(model))); } }
public SingleResponse <int> Insert(ProductOutput productOutput) { SingleResponse <int> response = new SingleResponse <int>(); SqlConnection connection = new SqlConnection(); connection.ConnectionString = ConnectionHelper.GetConnectionString(); SqlCommand command = new SqlCommand(); command.CommandText = "INSERT INTO PRODUCTS_OUTPUT (DATASAIDA, IDFUNCIONARIO, VALORTOTAL, IDCLIENTE) VALUES (@DATASAIDA, @IDFUNCIONARIO, @VALORTOTAL, @IDCLIENTE) SELECT SCOPE_IDENTITY()"; command.Parameters.AddWithValue("@DATASAIDA", productOutput.ExitDate); command.Parameters.AddWithValue("@IDFUNCIONARIO", productOutput.EmployeeID); command.Parameters.AddWithValue("@VALORTOTAL", productOutput.TotalValue); command.Parameters.AddWithValue("@IDCLIENTE", productOutput.ClientID); command.Connection = connection; try { connection.Open(); int idGerado = Convert.ToInt32(command.ExecuteScalar()); response.Success = true; response.Message = "Cadastrado com sucesso."; response.Data = idGerado; } catch (Exception ex) { response.Success = false; response.Message = "Erro no banco de dados, contate o administrador."; response.StackTrace = ex.StackTrace; response.ExceptionError = ex.Message; } finally { connection.Close(); } return(response); }
private ProductOutput CreateProduct() { var product = new Product() { Name = "Product 01", Code = 1, Brand = "Brand 01", ExpirationDate = new DateTime(2017, 12, 23), DeliveryDate = new DateTime(2017, 07, 03), SubTitle = "Product 01 Subtitle", Price = 18.30M }; var productOutput = new ProductOutput() { Products = new List <Product>() { product } }; return(productOutput); }
public async Task <ProductOutput> GetSearchAsync(ProductSearchInput productSearchInput) { if (string.IsNullOrEmpty(productSearchInput.Brand) && string.IsNullOrEmpty(productSearchInput.ScreenSize)) { throw new InvalidArgumentException(); } try { var indexName = ElasticSearchItemsConst.ProductIndexName; var searchQuery = new Nest.SearchDescriptor <ProductElasticIndexDto>(); string term = ""; if (productSearchInput.ScreenSize != null) { term = "screensizes"; searchQuery .Query(x => x .Terms(c => c .Verbatim() .Field(p => p.ScreenSize) .Terms(productSearchInput.ScreenSize.ToLower()) )) .Aggregations(a => a .Terms(term, t => t .Field("screenSize.keyword") .MinimumDocumentCount(1)) ); } if (!String.IsNullOrEmpty(productSearchInput.Brand)) { term = "searchingArea"; searchQuery .Query(x => x.Match(m => m.Field(f => f.SearchingArea) .Query(productSearchInput.Brand.ToLower()) .Analyzer("ngram_analyzer") ) ) .Aggregations(a => a .Terms(term, t => t .Field("screenSize.keyword") .MinimumDocumentCount(1)) );; } var searchResultData = await _elasticSearchService.SimpleSearchAsync <ProductElasticIndexDto, int>(indexName, searchQuery); var aggregationResponse = searchResultData.Aggregations.Terms(term); var aggregationList = new List <Aggregation>(); foreach (var item in aggregationResponse.Buckets) { var aggregation = new Aggregation(); aggregation.Key = item.Key; aggregation.DocCount = item.DocCount; aggregationList.Add(aggregation); } var productElasticIndexList = from opt in searchResultData.Documents select new ProductElasticIndexDto { SearchingArea = opt.SearchingArea, Id = opt.Id, Brand = opt.Brand, ModelName = opt.ModelName, ScreenSize = opt.ScreenSize, Price = opt.Price, Stock = opt.Stock, }; var output = new ProductOutput(); output.AggregationList = aggregationList; output.ProductElasticIndexDtoList = productElasticIndexList.ToList(); return(await Task.FromResult(output)); } catch (Exception ex) { return(await Task.FromException <ProductOutput>(ex)); } }
public async Task <BaseOutput <object> > GetProductByBarcode(string barcode) { var product = await _dbContext.Products .Where(a => a.Barcode == barcode) .FirstOrDefaultAsync(); if (product == null) { return(new BaseOutput <object> { IsSuccessful = false, Message = $"product with barcode = {barcode} not found.", Payload = "" }); } var productStr = JsonConvert.SerializeObject(product); var productInfo = new ProductOutput { ProductInfo = JsonConvert.DeserializeObject <ProductInfo>(productStr) }; var ingredients = await _dbContext.Ingredients .Where(a => a.ProductId == product.Id) .ToListAsync(); var ingredientsStr = JsonConvert.SerializeObject(ingredients); productInfo.Ingredients = JsonConvert.DeserializeObject <List <IngredientOutput> >(ingredientsStr); var additives = await _dbContext.Additives .Where(a => product.Additives.Contains(a.OriginalId)) .ToListAsync(); var additivesStr = JsonConvert.SerializeObject(additives); productInfo.Additives = JsonConvert.DeserializeObject <List <AdditiveOutput> >(additivesStr); var splitAllergens = product.Allergens.Split(new char[] { ',' }); var allergens = await _dbContext.Allergies .Where(a => splitAllergens.Contains(a.OriginalId)) .ToListAsync(); var allergenStr = JsonConvert.SerializeObject(allergens); productInfo.Allergens = JsonConvert.DeserializeObject <List <AllergyOutput> >(allergenStr); var wikiAllergens = await _dbContext.WikiAllergies.ToListAsync(); foreach (var wikiAllergy in wikiAllergens) { var selected = productInfo.Allergens.Where(a => a.Name.Contains(wikiAllergy.Name.ToLower())).ToList(); selected.ForEach(a => { a.PotentialReactions = wikiAllergy.PotentialReactions; a.Remarks = wikiAllergy.Remarks; }); } return(new BaseOutput <object> { IsSuccessful = true, Message = $"product with barcode = {barcode} found.", Payload = productInfo }); }
private void btnOutput_Click(object sender, EventArgs e) { productOutput = productOutput ?? new ProductOutput(); frmLayout.panelContents.Controls.Clear(); frmLayout.panelContents.Controls.Add(productOutput); }
public async void GetHtmlAsync() { var httpClient = new HttpClient(); var urlGenerator = new UrlGenerator(); var url = urlGenerator.CreateUrl(); var html = await httpClient.GetStringAsync(url); var htmlDocument = new HtmlDocument(); htmlDocument.LoadHtml(html); var productsHtml = htmlDocument.DocumentNode.Descendants("div") .Where(node => node.GetAttributeValue("class", "") .Equals("offers list")).ToList(); var productOutput = new ProductOutput(); var productListItems = new List <HtmlNode>(); try { productListItems = productsHtml[0].Descendants("article") .Where(node => node.GetAttributeValue("data-ad-id", "") != null).ToList(); } catch (Exception e) { Console.WriteLine("No results found matching your requirements"); } if (productListItems != null) { foreach (var productListItem in productListItems) { // Title productOutput.Title = productListItem.Descendants("h2") .Where(node => node.GetAttributeValue("class", "") .Equals("offer-title ds-title")).FirstOrDefault().InnerText.Trim(); //Console.WriteLine("Name: " + product.Title); // Subtitle try { productOutput.Subtitle = productListItem.Descendants("h3") .Where(node => node.GetAttributeValue("data-type", "") .Equals("complement")).FirstOrDefault().InnerText.Trim(); //Console.WriteLine("Description: " + product.Subtitle); } catch (System.NullReferenceException ex) { //Console.WriteLine("Description: There is no given description for this product"); } // Price try { productOutput.Price = productListItem.Descendants("span") .Where(node => node.GetAttributeValue("class", "") .Equals("offer-price__number ds-price-number")).FirstOrDefault().InnerText.Trim(); //Console.WriteLine("Price: " + product.Price); } catch (System.NullReferenceException ex) { //Console.WriteLine("Price: There is no given price for this product"); } // Year try { productOutput.Year = productListItem.Descendants("li") .Where(node => node.GetAttributeValue("data-code", "") .Equals("year")).FirstOrDefault().InnerText.Trim(); //Console.WriteLine("Year: " + product.Year); } catch (System.NullReferenceException ex) { //Console.WriteLine("Year: There is no given year for this product"); } // Mileage try { productOutput.Mileage = productListItem.Descendants("li") .Where(node => node.GetAttributeValue("data-code", "") .Equals("mileage")).FirstOrDefault().InnerText.Trim(); //Console.WriteLine("Mileage: " + product.Mileage); } catch (System.NullReferenceException ex) { //Console.WriteLine("Mileage: There is no given mileage for this product"); } try { productOutput.EngineCapacity = productListItem.Descendants("li") .Where(node => node.GetAttributeValue("data-code", "") .Equals("engine_capacity")).FirstOrDefault().InnerText.Trim(); //Console.WriteLine("Engine capacity: " + product.EngineCapacity); } catch (System.NullReferenceException ex) { //Console.WriteLine("Engine capacity: There is no given engine capacity for this product"); } // Link to product productOutput.OfferUrl = productListItem.Descendants("a").FirstOrDefault().GetAttributeValue("href", ""); //Console.WriteLine("Link to product: " + product.OfferUrl); //Product image productOutput.ImageUrl = productListItem.Descendants("img").FirstOrDefault().GetAttributeValue("data-src", ""); string json = JsonConvert.SerializeObject(productOutput); // Final base64 json var ImgToBase64 = new ImgToBase64(); ImgToBase64.ConvertImgToBase64(productOutput.ImageUrl); Console.WriteLine(json); Console.WriteLine("--------------------------------"); } } }
public IResult Update(ProductOutput productOutput) { _productOutputDal.Update(productOutput); return(new SuccessResult(Messages.UpdatedProductOutput)); }