public async Task CreateAsync(BomForCreationDto element) { var product = _context.Products.Where(v => v.ProductCode.Equals(element.ProductCode)).FirstOrDefault(); var parentProduct = _context.Products.Where(v => v.ProductCode.Equals(element.ParentProductCode)).FirstOrDefault(); //todo child var bom = new Bom(product, parentProduct, element.Quantity ?? 0); _context.Boms.Add(bom); await _context.SaveChangesAsync(); }
public async Task <IActionResult> PostAsync([FromBody] BomForCreationDto value) { await _bomService.CreateAsync(value); return(Ok()); }
public async Task <IActionResult> AddBom2([FromForm] BomForCreationDto bomForCreationDto) { var formFile = bomForCreationDto.File; if (formFile == null || formFile.Length <= 0) { return(BadRequest("formfile is empty")); } if (!Path.GetExtension(formFile.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase)) { return(BadRequest("Not Support file extension")); } try { using (var stream = new MemoryStream()) { await formFile.CopyToAsync(stream); ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial; using (var package = new ExcelPackage(stream)) { ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; var rowCount = worksheet.Dimension.Rows; var colCount = worksheet.Dimension.Columns; for (int row = 1; row <= rowCount; row++) { var buhnr = worksheet.Cells[row, 1].Value.ToString().Trim(); var mnf = worksheet.Cells[row, 2].Value.ToString().Trim(); var component1 = await _repo.GetCompCMnf(mnf); var component2 = await _repo.GetComponentBuhNr(buhnr); if (component1 == null && component2 == null) { GraphQLData componentInfo = await _componentInfo.GetAllComponentInfo(mnf, 1, "USD"); if (componentInfo.search.results != null) { Componentas ComponentasToCreate = new Componentas { Mnf = mnf, Manufacturer = componentInfo.search.results[0].part.manufacturer.name, Detdescription = componentInfo.search.results[0].part.short_description, BuhNr = buhnr, Type = componentInfo.search.results[0].part.category.name, Created = DateTime.Now }; foreach (var item in componentInfo.search.results[0].part.specs) { switch (item.attribute.name) { case "Case/Package": ComponentasToCreate.Size = item.display_value; break; case "Resistance": ComponentasToCreate.Nominal = item.display_value; break; case "Capacitance": ComponentasToCreate.Nominal = item.display_value; break; case "Impedance": ComponentasToCreate.Nominal = item.display_value; break; default: break; } } var createComponent = await _repo.RegisterComponents(ComponentasToCreate); if (componentInfo.search.results[0].part.images[0].url is string) { var uploadParams = new ImageUploadParams() { File = new FileDescription(componentInfo.search.results[0].part.images[0].url), }; var uploadResult = _cloudinary.Upload(uploadParams); var publicid = uploadResult.PublicId; var url = uploadResult.Uri.ToString(); Photo PhotoToCreate = new Photo { PublicId = publicid, IsMain = true, Url = uploadResult.Uri.ToString(), ComponentasId = createComponent.Id }; await _repo.RegisterPhoto(PhotoToCreate); } } } } } } } catch (System.Exception) { throw; } return(Ok()); }
public async Task <IActionResult> AddBom([FromForm] BomForCreationDto bomForCreationDto) { var formFile = bomForCreationDto.File; var listas = new List <BomList>(); if (formFile == null || formFile.Length <= 0) { return(BadRequest("formfile is empty")); } if (!Path.GetExtension(formFile.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase)) { return(BadRequest("Not Support file extension")); } try { using (var stream = new MemoryStream()) { await formFile.CopyToAsync(stream); ExcelPackage.LicenseContext = LicenseContext.NonCommercial; using (var package = new ExcelPackage(stream)) { ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; var rowCount = worksheet.Dimension.Rows; var colCount = worksheet.Dimension.Columns; var buhNrCol = 0; var qtyCol = 0; var mnfCol = 0; var name = worksheet.Cells[1, 1].Value.ToString().Trim(); var tikrinimas = await _repo.GetBomName(name); if (tikrinimas != null) { return(BadRequest("Toks bomas jau yra ikeltas")); } for (int col = 1; col <= colCount; col++) { var res = worksheet.Cells[2, col].Value.ToString().Trim(); if (res.Contains("Buh") || res.Contains("buh")) { buhNrCol = col; } if (res.Contains("QTY") || res.Contains("uantity")) { qtyCol = col; } if (res.Contains("Manufacturer Part Number")) { mnfCol = col; } } if (buhNrCol == 0) { return(BadRequest("Nerastas buhalterinio nr. stuleplis, patikslinkite langelio pavadinima i Buh.Nr. ")); } if (qtyCol == 0) { return(BadRequest("Nerastas kiekio stulpelis, patikslinkite langelio pavadinima i QTY")); } if (mnfCol == 0) { return(BadRequest("Nerastas gamintojo kodo stuleplis, patikslinkite i Manufacturer Part Number")); } var bomName = new BomName { Name = name, DateAdded = DateTime.Now, LastModified = DateTime.Now }; var result = await _repo.RegisterBomName(bomName); for (int row = 3; row <= rowCount; row++) { var buhNr = worksheet.Cells[row, buhNrCol].Value.ToString().Trim(); var manufPartNr = worksheet.Cells[row, mnfCol].Value.ToString().Trim(); var componentasId = 0; var res = await _search.GetComponentBuhNr(buhNr); if (res != null) { manufPartNr = res.Mnf; componentasId = res.Id; } listas.Add(new BomList { BuhNr = buhNr, Qty = int.Parse(worksheet.Cells[row, qtyCol].Value.ToString().Trim()), BomNameId = result.Id, ComponentasId = componentasId, ManufPartNr = manufPartNr }); } var reg = await _repo.RegisterBomList(listas); } } } catch (System.Exception) { throw; } return(Ok(listas)); }
public async Task <IActionResult> AddBom([FromForm] BomForCreationDto bomForCreationDto) { var formFile = bomForCreationDto.File; if (formFile == null || formFile.Length <= 0) { return(BadRequest("formfile is empty")); } if (!Path.GetExtension(formFile.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase)) { return(BadRequest("Not Support file extension")); } try { using (var stream = new MemoryStream()) { await formFile.CopyToAsync(stream); ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial; using (var package = new ExcelPackage(stream)) { ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; var rowCount = worksheet.Dimension.Rows; var colCount = worksheet.Dimension.Columns; for (int row = 1; row <= rowCount; row++) { var buhnr = worksheet.Cells[row, 1].Value.ToString().Trim(); var manufacturer = worksheet.Cells[row, 3].Value.ToString().Trim(); var mnf = worksheet.Cells[row, 4].Value.ToString().Trim(); var type = worksheet.Cells[row, 5].Value.ToString().Trim(); var detdes = worksheet.Cells[row, 6].Value.ToString().Trim(); var size = worksheet.Cells[row, 7].Value.ToString().Trim(); var nominal = worksheet.Cells[row, 8].Value.ToString().Trim(); var Durl = worksheet.Cells[row, 9].Value.ToString().Trim(); var Furl = worksheet.Cells[row, 10].Value.ToString().Trim(); var Murl = worksheet.Cells[row, 11].Value.ToString().Trim(); var photoUrl = worksheet.Cells[row, 12].Value.ToString().Trim(); //var publicid = worksheet.Cells[row, 9].Value.ToString().Trim(); //var url = worksheet.Cells[row, 10].Value.ToString().Trim(); var uploadParams = new ImageUploadParams() { File = new FileDescription(photoUrl), }; var uploadResult = _cloudinary.Upload(uploadParams); var publicid = uploadResult.PublicId; var url = uploadResult.Uri.ToString(); var ComponentasToCreate = new Componentas { Mnf = mnf, Manufacturer = manufacturer, Detdescription = detdes, BuhNr = buhnr, Size = size, Type = type, Nominal = nominal, Created = DateTime.Now, Furl = Furl, Murl = Murl, Durl = Durl }; var createComponent = await _repo.RegisterComponents(ComponentasToCreate); var PhotoToCreate = new Photo { PublicId = publicid, IsMain = true, Url = url, ComponentasId = createComponent.Id }; var createPhoto = await _repo.RegisterPhoto(PhotoToCreate); } } } } catch (System.Exception) { throw; } return(Ok()); }