internal MessageResponse ProcessHttpRequest(InputFileProperties inputFile) { try { if (inputFile == null) { return(MessageResponse.error("File Not Found")); } var inputContent = GetInputFileContentAndLogRequest(inputFile); var sb = _psTool.ProcessDataFile(inputContent); var errorList = _psTool.GetErrors(); if (errorList.Any()) { return(MessageResponse.error(errorList)); } var encryptedData = AESHelper.EncryptAES(sb.ToString(), _configuration["AESKeyBLOB"]); return(MessageResponse.ok(encryptedData)); } catch (Exception e) { Logger.Error(e); return(MessageResponse.error(e.Message)); } }
public string Encrypt(string key, string data) { using (Aes myAes = Aes.Create()) { myAes.Key = dataToSHA256(key); myAes.Mode = CipherMode.CBC; myAes.Padding = PaddingMode.PKCS7; return(AESHelper.EncryptAES(data, myAes.Key)); } }
// request nay la send từ postman, qua hàm này request.Content.ReadAsMultipartAsync // nó sẽ lầy tên file từ body truyền trên postman // System.net.http ko xa2i tre6n .netcore // Doc them phan Upload large files with streaming // https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-3.0 internal MessageResponse ProcessHttpRequest(MasterConversionRequest request) { try { // coi them vd cho .net framework // https://stackoverflow.com/questions/14937926/file-name-from-httprequestmessage-content //if (!request.Content.IsMimeMultipartContent()) // return MessageResponse.info("Invalid media type - multipart"); //var provider = new MultipartFormDataMemoryStreamProvider(); //await request.Content.ReadAsMultipartAsync(provider); //var inputContent = GetInputFileContentAndLogRequest(provider); if (request is null || request.FileData.Length == 0) //TODO length > maximum length { return(MessageResponse.error("Bad request. File not found!")); } var inputContent = GetInputFileContentAndLogRequest(request); var sb = _psTool.ProcessDataFile(inputContent); var errorList = _psTool.GetErrors(); if (errorList.Any()) { return(MessageResponse.error(errorList)); } var encryptedData = AESHelper.EncryptAES(sb, AzureKeyVaultProvider.AESKeyBLOB); return(MessageResponse.ok(encryptedData)); } catch (Exception e) { _logger.Error(e.Message); return(MessageResponse.error(e.Message)); } }
public MessageResponse ReadDataFromExcel() { MessageResponse res = new MessageResponse(); var outPayment = new List <string>(); MemoryStream reader = new MemoryStream(_byteArr); //2. Reading from a OpenXml Excel file (2007 format; *.xlsx) IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(reader); Logger.Info("rowsZip"); //4. DataSet - Create column names from first row DataSet result = excelReader.AsDataSet(new ExcelDataSetConfiguration() { ConfigureDataTable = (_) => new ExcelDataTableConfiguration() { UseHeaderRow = true } }); DataTable tblResult = result.Tables[0]; tblResult.Columns.Add("LineNo", typeof(int)); for (int y = 0; y < tblResult.Rows.Count; y++) { tblResult.Rows[y]["LineNo"] = y + 1; } DataTable dtCloned = tblResult.Clone(); dtCloned.Columns["Vendor ID"].DataType = typeof(string); foreach (DataRow row in tblResult.Rows) { if (row[0] != DBNull.Value) { dtCloned.ImportRow(row); } } //validate int check = 0; DataTable selectedTableVendorID = null; var rowsVendorID = dtCloned.AsEnumerable() .Where(r => string.IsNullOrEmpty(r.Field <string>("Vendor ID")) == true); DataTable selectedTableVendorName = null; var rowsVendorName = dtCloned.AsEnumerable() .Where(r => string.IsNullOrEmpty(r.Field <string>("Name")) == true); var rowsVendorIDLess9 = dtCloned.AsEnumerable() .Where(r => r.Field <string>("Vendor ID").Length < 9); if (rowsVendorID.Any()) { selectedTableVendorID = rowsVendorID.CopyToDataTable(); foreach (DataRow row in selectedTableVendorID.Rows) { res.messages.Add("Vendor ID required at line : " + row["LineNo"].ToString()); } check++; } if (rowsVendorName.Any()) { selectedTableVendorName = rowsVendorName.CopyToDataTable(); foreach (DataRow row in selectedTableVendorName.Rows) { res.messages.Add("Vendor Name required at line : " + row["LineNo"].ToString()); } check++; } for (int i = dtCloned.Rows.Count - 1; i >= 0; i--) { DataRow dr = dtCloned.Rows[i]; if (string.IsNullOrEmpty(dr["Address - 1"].ToString()) && string.IsNullOrEmpty(dr["Address - 2"].ToString()) && string.IsNullOrEmpty(dr["Address - 3"].ToString())) { dr.Delete(); dtCloned.AcceptChanges(); } else if (string.IsNullOrEmpty(dr["City"].ToString())) { dr.Delete(); dtCloned.AcceptChanges(); } else if (string.IsNullOrEmpty(dr["State"].ToString())) { dr.Delete(); dtCloned.AcceptChanges(); } else if (string.IsNullOrEmpty(dr["Zip + 4 + 2"].ToString())) { dr.Delete(); dtCloned.AcceptChanges(); } else if (dr["Vendor ID"].ToString().Length < 9) { dr.Delete(); dtCloned.AcceptChanges(); } } if (check > 0) { res.code = (int)HttpStatusCode.InternalServerError; } else { Trace.WriteLine(H_TITLE); Trace.WriteLine(D_TITLE); outPayment.Add(H_TITLE); outPayment.Add(D_TITLE); string Address1 = string.Empty; foreach (DataRow row in dtCloned.Rows) { Vendor V = new Vendor(); VendorAddress A = new VendorAddress(); Address1 = string.Empty; foreach (DataColumn dc in dtCloned.Columns) { if (!string.IsNullOrEmpty(dc.ColumnName)) { switch (dc.ColumnName) { case "Vendor ID": V.VendorId = row[dc].ToString(); break; case "Name": V.Name = row[dc].ToString(); break; case "Address - 1": Address1 = row[dc].ToString().Replace(Convert.ToChar(System.Convert.ToInt32(160)), ' '); A.Address1 = Address1; break; case "Address - 2": A.Address2 = row[dc].ToString(); break; case "Address - 3": A.Address3 = row[dc].ToString(); break; case "City": A.City = row[dc].ToString().Trim().TrimEnd(','); break; case "State": A.StateProvince = row[dc].ToString(); break; case "Zip + 4 + 2": A.PostalCode = row[dc].ToString(); break; case "Contact Name": A.Contact = row[dc].ToString(); break; case "Phone - 1": A.PhoneNumber = row[dc].ToString(); break; } } } outPayment.Add(@"""VR""" + "," + V.ToString()); outPayment.Add(@"""AR""" + "," + A.ToString()); Trace.WriteLine(@"""VR""" + "," + V.ToString()); Trace.WriteLine(@"""AR""" + "," + A.ToString()); } StringBuilder sb = new StringBuilder(); foreach (var line in outPayment) { sb.AppendFormat("{0}{1}", line, Environment.NewLine); } //var outputBytes = Encoding.UTF8.GetBytes(sb.ToString()); string DecryptText = AESHelper.EncryptAES(sb.ToString(), Vault.Current.AESKeyBLOB); //BlobHelper.UploadFile(ConfigHelper.GetConnectionString("storage.payment.conversion"), "stamforddev-export", "vendorlisting.csv", outputBytes); res.code = (int)HttpStatusCode.OK; res.data = DecryptText; } //6. Free resources (IExcelDataReader is IDisposable) excelReader.Close(); return(res); }