public async Task <bool> DeleteTaxSetupAsync(cor_taxsetup model) { var itemToDelete = await _dataContext.cor_taxsetup.FindAsync(model.TaxSetupId); if (itemToDelete != null) { _dataContext.cor_taxsetup.Remove(itemToDelete); } _dataContext.Entry(itemToDelete).CurrentValues.SetValues(model); return(await _dataContext.SaveChangesAsync() > 0); }
public async Task <bool> AddUpdateTaxSetupAsync(cor_taxsetup model) { if (model.TaxSetupId > 0) { var itemToEdit = await _dataContext.cor_taxsetup.FindAsync(model.TaxSetupId); _dataContext.Entry(itemToEdit).CurrentValues.SetValues(model); } else { await _dataContext.cor_taxsetup.AddAsync(model); } return(await _dataContext.SaveChangesAsync() > 0); }
public async Task <FileUploadRespObj> Handle(UploadTaxSetupCommand request, CancellationToken cancellationToken) { try { var apiResponse = new FileUploadRespObj { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage() } }; 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()); } } } var userId = _accessor.HttpContext.User?.FindFirst(x => x.Type == "userId").Value; var user = await _serverRequest.UserDataAsync(); var uploadedRecord = new List <TaxsetupObj>(); ExcelPackage.LicenseContext = LicenseContext.NonCommercial; if (byteList.Count() > 0) { foreach (var byteItem in byteList) { using (MemoryStream stream = new MemoryStream(byteItem)) using (ExcelPackage excelPackage = new ExcelPackage(stream)) { ExcelWorksheet workSheet = excelPackage.Workbook.Worksheets[0]; int totalRows = workSheet.Dimension.Rows; int totalColumns = workSheet.Dimension.Columns; if (totalColumns != 4) { apiResponse.Status.Message.FriendlyMessage = "4 Columns Expected"; return(apiResponse); } for (int i = 2; i <= totalRows; i++) { var item = new TaxsetupObj { ExcelLineNumber = i, TaxName = workSheet.Cells[i, 1]?.Value != null ? workSheet.Cells[i, 1]?.Value.ToString() : string.Empty, SubGlName = workSheet.Cells[i, 2]?.Value != null ? workSheet.Cells[i, 2]?.Value.ToString() : string.Empty, Percentage = workSheet.Cells[i, 3]?.Value != null?Convert.ToDouble(workSheet.Cells[i, 3]?.Value.ToString()) : 0, Type = workSheet.Cells[i, 4]?.Value != null ? workSheet.Cells[i, 4]?.Value.ToString() : string.Empty, }; uploadedRecord.Add(item); } } } } var ItemList = await _repo.GetAllTaxSetupAsync(); cor_taxsetup itemFrmRepo = new cor_taxsetup(); if (uploadedRecord.Count > 0) { foreach (var item in uploadedRecord) { if (string.IsNullOrEmpty(item.TaxName)) { apiResponse.Status.Message.FriendlyMessage = $"Empty tax name detected on line {item.ExcelLineNumber}"; return(apiResponse); } if (string.IsNullOrEmpty(item.SubGlName)) { apiResponse.Status.Message.FriendlyMessage = $"Sub Gl name is empty detected on line {item.ExcelLineNumber}"; return(apiResponse); } //if (item.Percentage < 1) //{ // apiResponse.Status.Message.FriendlyMessage = $"Sub Gl name is empty detected on line {item.ExcelLineNumber}"; // return apiResponse; //} if (string.IsNullOrEmpty(item.Type)) { apiResponse.Status.Message.FriendlyMessage = $"Type is empty detected on line {item.ExcelLineNumber}"; return(apiResponse); } itemFrmRepo = ItemList.FirstOrDefault(c => c.TaxName.ToLower().Trim() == item?.TaxName.ToLower().Trim()); if (itemFrmRepo != null) { itemFrmRepo.TaxName = item?.TaxName; itemFrmRepo.TaxSetupId = itemFrmRepo.TaxSetupId; itemFrmRepo.Percentage = item.Percentage; itemFrmRepo.SubGL = itemFrmRepo.SubGL; itemFrmRepo.Type = item?.Type; await _repo.AddUpdateTaxSetupAsync(itemFrmRepo); } else { var newItem = new cor_taxsetup(); newItem.TaxName = item?.TaxName; newItem.Percentage = item.Percentage; newItem.SubGL = item.SubGL; newItem.Type = item?.Type; await _repo.AddUpdateTaxSetupAsync(newItem); } } } apiResponse.Status.IsSuccessful = true; apiResponse.Status.Message.FriendlyMessage = "Successful"; return(apiResponse); } catch (Exception ex) { throw ex; } }
public async Task <TaxsetupRegRespObj> Handle(AddUpdateTaxsetupCommand request, CancellationToken cancellationToken) { var response = new TaxsetupRegRespObj { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage() } }; try { if (request.TaxSetupId < 1) { var item = _data.cor_taxsetup.Any(q => q.TaxName.Trim().ToLower() == request.TaxName.Trim().ToLower()); if (item) { response.Status.IsSuccessful = false; response.Status.Message.FriendlyMessage = $"Name Already exist"; return(response); } } string[] Types = { "+", "-" }; if (!Types.Contains(request.Type)) { response.Status.Message.FriendlyMessage = "Invalid Tax type"; return(response); } var user = await _serverRequest.UserDataAsync(); cor_taxsetup sup = new cor_taxsetup(); sup.Deleted = true; sup.CreatedOn = request.TaxSetupId > 0 ? (DateTime?)null : DateTime.Now; sup.CreatedBy = user.UserName; sup.UpdatedBy = user.UserName; sup.Percentage = request.Percentage; sup.SubGL = request.SubGL; sup.Type = request.Type; sup.Deleted = false; sup.TaxName = request.TaxName; sup.TaxSetupId = request.TaxSetupId > 0 ? request.TaxSetupId : 0; await _supRepo.AddUpdateTaxSetupAsync(sup); var actionTaken = request.TaxSetupId < 1 ? "created" : "updated"; response.TaxSetupId = sup.TaxSetupId; response.Status.IsSuccessful = true; response.Status.Message.FriendlyMessage = $"Successfully "; return(response); } catch (Exception ex) { #region Log error to file var errorCode = ErrorID.Generate(4); _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"); response.Status.IsSuccessful = false; response.Status.Message.FriendlyMessage = "Error occured!! Unable to delete item"; response.Status.Message.TechnicalMessage = $"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"; return(response); #endregion } }