Exemple #1
0
        public async Task <ActionResult> Import([FromForm] IFormFile file2)
        {
            IFormFile file      = Request.Form.Files["UploadedFile"];
            object    createdBy = Request.Form["CreatedBy"];
            var       datasList = new List <IngredientForImportExcelDto>();

            //var datasList2 = new List<UploadDataVM2>();
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

            if ((file != null) && (file.Length > 0) && !string.IsNullOrEmpty(file.FileName))
            {
                string fileName = file.FileName;
                int    userid   = createdBy.ToInt();
                using (var package = new ExcelPackage(file.OpenReadStream()))
                {
                    var currentSheet = package.Workbook.Worksheets;
                    var workSheet    = currentSheet.First();
                    var noOfCol      = workSheet.Dimension.End.Column;
                    var noOfRow      = workSheet.Dimension.End.Row;

                    for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
                    {
                        datasList.Add(new IngredientForImportExcelDto()
                        {
                            Name       = workSheet.Cells[rowIterator, 1].Value.ToSafetyString(),
                            SupplierID = workSheet.Cells[rowIterator, 2].Value.ToInt(),
                        });
                    }
                }
                datasList.ForEach(item =>
                {
                    var generator = new RandomGenerator();
                    var code      = generator.RandomStringNumber(8);
                    if (datasList.Any(x => x.Code == code))
                    {
                        code = generator.RandomStringNumber(8);
                    }
                    item.Code        = code;
                    item.CreatedDate = DateTime.Now;
                    item.CreatedBy   = userid;
                });

                return(Ok(await _ingredientService.AddRangeAsync(datasList)));
            }
            else
            {
                return(StatusCode(500));
            }
        }