示例#1
0
        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());
            }
        }
示例#2
0
        /// <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);
        }
示例#3
0
        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);
        }
示例#4
0
        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());
            }
        }