Example #1
0
        public async Task <bool> UpdateCompanystructuredefinitionAsync(cor_companystructuredefinition model)
        {
            var item = await _dataContext.cor_companystructuredefinition.FindAsync(model.StructureDefinitionId);

            _dataContext.Entry(item).CurrentValues.SetValues(model);
            return(await _dataContext.SaveChangesAsync() > 0);
        }
Example #2
0
            public async Task <FileUploadRespObj> Handle(UploadCompanyStructureDefinitionCommand request, CancellationToken cancellationToken)
            {
                var response = new FileUploadRespObj {
                    Status = new APIResponseStatus {
                        IsSuccessful = false, Message = new APIResponseMessage()
                    }
                };

                List <CompanyStructureDefinitionObj> uploadedRecord = new List <CompanyStructureDefinitionObj>();

                var files = _accessor.HttpContext.Request.Form.Files;

                var byteList = new List <byte[]>();

                foreach (var fileBit in files)
                {
                    if (fileBit.Length > 0)
                    {
                        using (var ms = new MemoryStream())
                        {
                            await fileBit.CopyToAsync(ms);

                            byteList.Add(ms.ToArray());
                        }
                    }
                }

                try
                {
                    if (byteList.Count() > 0)
                    {
                        foreach (var item in byteList)
                        {
                            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
                            using (MemoryStream stream = new MemoryStream(item))
                                using (ExcelPackage excelPackage = new ExcelPackage(stream))
                                {
                                    ExcelWorksheet workSheet    = excelPackage.Workbook.Worksheets[0];
                                    int            totalRows    = workSheet.Dimension.Rows;
                                    int            totalColumns = workSheet.Dimension.Columns;
                                    if (totalColumns != 3)
                                    {
                                        response.Status.Message.FriendlyMessage = $"Three (3) Column Expected";
                                        return(response);
                                    }
                                    for (int i = 2; i <= totalRows; i++)
                                    {
                                        uploadedRecord.Add(new CompanyStructureDefinitionObj
                                        {
                                            ExcelLineNumber = i,
                                            Definition      = workSheet.Cells[i, 1].Value != null ? workSheet.Cells[i, 1].Value.ToString() : null,
                                            Description     = workSheet.Cells[i, 2].Value != null ? workSheet.Cells[i, 2].Value.ToString() : null,
                                            StructureLevel  = workSheet.Cells[i, 3].Value != null ? Convert.ToInt32(workSheet.Cells[i, 3].Value.ToString()) : 0,
                                        });
                                    }
                                }
                        }
                    }
                }
                catch (Exception ex)
                {
                    response.Status.Message.FriendlyMessage = $" {ex?.Message}";
                    return(response);
                }
                List <cor_companystructuredefinition> StructureDefinitions = new List <cor_companystructuredefinition>();

                var _CompanyStructureDefinition = await _repo.GetAllCompanyStructureDefinitionAsync();

                try
                {
                    if (uploadedRecord.Count > 0)
                    {
                        foreach (var item in uploadedRecord)
                        {
                            if (string.IsNullOrEmpty(item.Definition))
                            {
                                response.Status.Message.FriendlyMessage = $"Definition cannot be empty detected on line {item.ExcelLineNumber}";
                                return(response);
                            }
                            if (string.IsNullOrEmpty(item.Description))
                            {
                                response.Status.Message.FriendlyMessage = $"Description cannot be empty detected on line {item.ExcelLineNumber}";
                                return(response);
                            }
                            if (item.StructureLevel < 1)
                            {
                                response.Status.Message.FriendlyMessage = $"Structure level cannot be empty detected on line {item.ExcelLineNumber}";
                                return(response);
                            }
                            var compStructFrmRepo = _CompanyStructureDefinition.FirstOrDefault(x => x.Definition.ToLower() == item.Definition.ToLower());
                            if (compStructFrmRepo != null)
                            {
                                compStructFrmRepo.Definition     = item.Definition;
                                compStructFrmRepo.Description    = item.Description;
                                compStructFrmRepo.StructureLevel = item.StructureLevel;
                                await _repo.AddUpdateCompanyStructureDefinitionAsync(compStructFrmRepo);
                            }
                            else
                            {
                                var newStructFrmRepo = new cor_companystructuredefinition();
                                newStructFrmRepo.Definition     = item.Definition;
                                newStructFrmRepo.Description    = item.Description;
                                newStructFrmRepo.StructureLevel = item.StructureLevel;
                                await _repo.AddUpdateCompanyStructureDefinitionAsync(newStructFrmRepo);
                            }
                        }
                    }
                    response.Status.IsSuccessful            = true;
                    response.Status.Message.FriendlyMessage = "Successful";
                    return(response);
                }
                catch (Exception ex)
                {
                    response.Status.IsSuccessful            = true;
                    response.Status.Message.FriendlyMessage = ex?.Message;
                    return(response);
                }
            }
Example #3
0
        public async Task <bool> UploadCompanyStructureDefinitionAsync(byte[] record, string createdBy)
        {
            try
            {
                if (record == null)
                {
                    return(await Task.Run(() => false));
                }

                List <CompanyStructureDefinitionObj> uploadedRecord = new List <CompanyStructureDefinitionObj>();
                using (MemoryStream stream = new MemoryStream(record))
                    using (ExcelPackage excelPackage = new ExcelPackage(stream))
                    {
                        //Use first sheet by default
                        ExcelWorksheet workSheet = excelPackage.Workbook.Worksheets[1];
                        int            totalRows = workSheet.Dimension.Rows;
                        //First row is considered as the header
                        for (int i = 2; i <= totalRows; i++)
                        {
                            uploadedRecord.Add(new CompanyStructureDefinitionObj
                            {
                                Definition     = workSheet.Cells[i, 1].Value.ToString(),
                                Description    = workSheet.Cells[i, 2].Value.ToString(),
                                StructureLevel = int.Parse(workSheet.Cells[i, 3].Value.ToString()),
                            });
                        }
                    }
                if (uploadedRecord.Count > 0)
                {
                    foreach (var entity in uploadedRecord)
                    {
                        var accountTypeExist = await _dataContext.cor_companystructuredefinition.FirstOrDefaultAsync(x => x.Definition.ToLower() == entity.Definition.ToLower());

                        if (accountTypeExist != null)
                        {
                            accountTypeExist.Definition     = entity.Definition;
                            accountTypeExist.Description    = entity.Description;
                            accountTypeExist.StructureLevel = entity.StructureLevel;
                            accountTypeExist.Active         = true;
                            accountTypeExist.Deleted        = false;
                            accountTypeExist.UpdatedBy      = entity.CreatedBy;
                            accountTypeExist.UpdatedOn      = DateTime.Now;
                        }
                        else
                        {
                            var accountType = new cor_companystructuredefinition
                            {
                                Definition     = entity.Definition,
                                Description    = entity.Description,
                                StructureLevel = entity.StructureLevel,
                                Active         = true,
                                Deleted        = false,
                                CreatedBy      = entity.CreatedBy,
                                CreatedOn      = DateTime.Now,
                            };
                            await _dataContext.cor_companystructuredefinition.AddAsync(accountType);
                        }
                    }
                }
                var response = await _dataContext.SaveChangesAsync() > 0;

                return(response);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }