public async Task <ServiceTermRespObj> Handle(GetServiceTermsQuery request, CancellationToken cancellationToken) { var item = await _supRepo.GetServiceTermsAsync(request.ServiceTermId); var respList = new List <ServiceTermObj>(); if (item != null) { var respItem = new ServiceTermObj { CompanyId = item.CompanyId, Active = item.Active, CreatedBy = item.CreatedBy, CreatedOn = item.CreatedOn, ServiceTermsId = item.ServiceTermsId, UpdatedBy = item.UpdatedBy, UpdatedOn = item.UpdatedOn, Content = item.Content, Header = item.Header }; respList.Add(respItem); } return(new ServiceTermRespObj { ServiceTerms = respList, Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage { FriendlyMessage = respList.Count() > 0 ? null : "Search Complete!! No Record Found" } } }); }
public async Task <FileUploadRespObj> Handle(UploadServiceTermsCommand 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 <ServiceTermObj>(); 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 != 2) { apiResponse.Status.Message.FriendlyMessage = "2 Columns Expected"; return(apiResponse); } for (int i = 2; i <= totalRows; i++) { var item = new ServiceTermObj { ExcelLineNumber = i, Header = workSheet.Cells[i, 1]?.Value != null ? workSheet.Cells[i, 1]?.Value.ToString() : string.Empty, Content = workSheet.Cells[i, 2]?.Value != null ? workSheet.Cells[i, 2]?.Value.ToString() : string.Empty, }; uploadedRecord.Add(item); } } } } var ItemList = await _repo.GetAllServiceTermsAsync(); cor_serviceterms itemFrmRepo = new cor_serviceterms(); if (uploadedRecord.Count > 0) { foreach (var item in uploadedRecord) { if (string.IsNullOrEmpty(item.Content)) { apiResponse.Status.Message.FriendlyMessage = $" Empty Content Expected Detected on line {item.ExcelLineNumber}"; return(apiResponse); } if (string.IsNullOrEmpty(item.Header)) { apiResponse.Status.Message.FriendlyMessage = $" Empty Header Expected Detected on line {item.ExcelLineNumber}"; return(apiResponse); } itemFrmRepo = ItemList.FirstOrDefault(c => c.Header.ToLower().Trim() == item.Header.ToLower().Trim()); if (itemFrmRepo != null) { itemFrmRepo.Header = item?.Header; itemFrmRepo.Content = item?.Content; await _repo.AddUpdateSeviceTermAsync(itemFrmRepo); } else { var newItem = new cor_serviceterms { Header = item?.Header, Content = item?.Content, }; await _repo.AddUpdateSeviceTermAsync(newItem); } } } apiResponse.Status.IsSuccessful = true; apiResponse.Status.Message.FriendlyMessage = "Successful"; return(apiResponse); } catch (Exception ex) { throw ex; } }