Example #1
0
        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();
        }
Example #2
0
        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());
        }
Example #4
0
        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());
        }