public async Task <IActionResult> SaveJournalImport([FromBody] SaveJournalImportRequest req) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } PortalUser user = await repository.AuthenticateUserToken(req.CurrentUser.UserId, req.CurrentUser.UserToken); if (user == null) { return(NotFound()); } JournalImportModel saveMe = req.JournalEntry.docfile; JournalImport dbEntry = null; // Make sure the driver exists. if (saveMe.JournalEntryID == null || saveMe.JournalEntryID == 0) { throw new NullReferenceException("JournalEntryID is required."); } // Are we saving a new Journal or editing an old one? dbEntry = new JournalImport(); repository.Insert(dbEntry); dbEntry.CreatedBy = user.PortalUsername; dbEntry.DocTitle = saveMe.DocTitle; dbEntry.ContentType = saveMe.ContentType; dbEntry.CreatedDate = DateTime.UtcNow; dbEntry.JournalEntryID = saveMe.JournalEntryID; dbEntry.FileName = saveMe.FileName; Byte[] bytes = Convert.FromBase64String(saveMe.FileData64String); dbEntry.FileData = bytes; await repository.SaveChanges(); JournalImportModel resp = new JournalImportModel(); resp = LoadJournalImport(dbEntry); return(Ok(resp)); } catch (Exception ex) { return(BadRequest()); } }
/// <summary> /// Will convert a dbModel to its DTO pair. /// </summary> public static JournalImportModel LoadJournalImport(JournalImport dbModel) { JournalImportModel ret = new JournalImportModel { CreatedBy = dbModel.CreatedBy, CreatedDate = dbModel.CreatedDate, DocTitle = dbModel.DocTitle, ContentType = dbModel.ContentType, FileName = dbModel.FileName, JournalEntryID = dbModel.JournalEntryID, JournalImportId = dbModel.JournalImportId }; return(ret); }
public static List <JournalImportModel> LoadJournalImports(List <JournalImport> dbModel) { List <JournalImportModel> retList = new List <JournalImportModel>(); foreach (var model in dbModel) { JournalImportModel ret = new JournalImportModel(); ret.CreatedBy = model.CreatedBy; ret.CreatedDate = model.CreatedDate; ret.DocTitle = model.DocTitle; ret.ContentType = model.ContentType; ret.FileName = model.FileName; ret.JournalEntryID = model.JournalEntryID; ret.JournalImportId = model.JournalImportId; retList.Add(ret); } return(retList); }
public async Task <IActionResult> ImportTempDefinition([FromBody] ExpenseMassImportRequest req) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } PortalUser user = await repository.AuthenticateUserToken(req.CurrentUser.UserId, req.CurrentUser.UserToken); if (user == null) { return(NotFound()); } JournalImportModel saveMe = req.JournalEntry.docfile; List <ImportedExpenseModel> modelList = new List <ImportedExpenseModel>(); Byte[] bytes = Convert.FromBase64String(saveMe.FileData64String); Stream stream = new MemoryStream(bytes); bool isHeader = true; using (var reader = new StreamReader(stream)) { int index = 0; List <string> listA = new List <string>(); while (!reader.EndOfStream) { var line = reader.ReadLine(); var values = line.Split(','); if (isHeader) { isHeader = false; foreach (var prop in values) { listA.Add(prop); } } else { var model = new ImportedExpenseModel { ImportedExpenseId = index++, TemplateDefinitionId = req.JournalEntry.docfile.JournalEntryID }; for (int i = 0; i < listA.Count; i++) { if (listA[i].Trim('"').Contains("ContractId")) { if (values.Length >= i) { var bl = int.TryParse(values[i].Trim('"'), out int contractId); model.ContractId = contractId; } } else if (listA[i].Trim('"').Contains("DriverAmount")) { if (values.Length >= i) { var bl = decimal.TryParse(values[i].Trim('"'), out decimal contractId); model.DriverAmount = contractId; } } else if (listA[i].Trim('"').Contains("DriverId")) { if (values.Length >= i) { var bl = int.TryParse(values[i].Trim('"'), out int contractId); model.DriverId = contractId; } } else if (listA[i].Trim('"').Contains("ImportByUser")) { if (values.Length >= i) { model.ImportByUser = values[i].Trim('"'); } } else if (listA[i].Trim('"').Contains("ImportDate")) { if (values.Length >= i) { var bl = DateTime.TryParse(values[i].Trim('"'), out DateTime contractId); model.ImportDate = contractId; } } else if (listA[i].Trim('"').Contains("IsOpen")) { if (values.Length >= i) { var bl = Boolean.TryParse(values[i].Trim('"'), out Boolean contractId); model.IsOpen = contractId; } } else if (listA[i].Trim('"').Contains("SMEAmount")) { if (values.Length >= i) { var bl = decimal.TryParse(values[i].Trim('"'), out decimal value); model.SMEAmount = value; } } else if (listA[i].Trim('"').Contains("TransactionDate")) { if (values.Length >= i) { var bl = DateTime.TryParse(values[i].Trim('"'), out DateTime value); model.TransactionDate = value; } } else if (listA[i].Trim('"').Contains("TransactionDesc")) { if (values.Length >= i) { model.TransactionDesc = values[i].Trim('"'); } } else if (listA[i].Trim('"').Contains("TransactionNumber")) { if (values.Length >= i) { model.TransactionNumber = values[i].Trim('"'); } } else if (listA[i].Trim('"').Contains("TruckId")) { if (values.Length >= i) { var bl = int.TryParse(values[i].Trim('"'), out int value); model.TruckId = value; } } } modelList.Add(model); } } } return(Ok(modelList)); } catch (Exception ex) { return(BadRequest()); } }