Пример #1
0
        private int GetOrSetEmployeeRecord(Wave_X1_MainEntities dbContext, string employeeName, string address)
        {
            var    names     = employeeName.Split(new char[] { ' ' });
            string firstName = names[0];
            string lastName  = names[1];

            var emp = dbContext.Employees.Where(x => x.FirstName == firstName && x.LastName == lastName).FirstOrDefault();

            if (emp == null)
            {
                DataAccess.Employee newEmployee = new DataAccess.Employee
                {
                    FirstName   = firstName,
                    LastName    = lastName,
                    Address     = address,
                    CreatedDate = DateTime.Now
                };

                dbContext.Employees.Add(newEmployee);
                dbContext.SaveChanges();
                return(newEmployee.EmployeeId);
            }
            else
            {
                return(emp.EmployeeId);
            }
        }
Пример #2
0
        private int GetOrSetExpenseCategory(Wave_X1_MainEntities dbContext, string expenseCategory)
        {
            var cat = dbContext.ExpenseCategories.Where(x => x.CategoryName == expenseCategory).FirstOrDefault();

            if (cat == null)
            {
                DataAccess.ExpenseCategory category = new DataAccess.ExpenseCategory
                {
                    CategoryName = expenseCategory
                };

                dbContext.ExpenseCategories.Add(category);
                dbContext.SaveChanges();
                return(category.CategoryId);
            }
            else
            {
                return(cat.CategoryId);
            }
        }
Пример #3
0
        private int GetOrSetTaxState(Wave_X1_MainEntities dbContext, string taxName)
        {
            string[] states    = taxName.Split(new char[] { ' ' });
            string   stateCode = states[0];

            var taxState = dbContext.TaxStates.Where(x => x.StateCode == stateCode).FirstOrDefault();

            if (taxState == null)
            {
                DataAccess.TaxState ts = new TaxState
                {
                    StateName = LookUpStateNameFromStateCode(stateCode),
                    StateCode = stateCode
                };
                dbContext.TaxStates.Add(ts);
                dbContext.SaveChanges();
                return(ts.StateId);
            }
            else
            {
                return(taxState.StateId);
            }
        }
Пример #4
0
        private Dictionary <int, decimal> MigrateData(List <Expense> expenses)
        {
            Dictionary <int, decimal> totalExpenseByMonth = new Dictionary <int, decimal>();

            if (expenses != null && expenses.Count > 0)
            {
                List <DataAccess.Expense> dbExpenses = new List <DataAccess.Expense>();
                try
                {
                    using (var dbContext = new Wave_X1_MainEntities())
                    {
                        foreach (var expense in expenses)
                        {
                            int employeeId        = GetOrSetEmployeeRecord(dbContext, expense.EmployeeName, expense.EmployeeAddress);
                            int expenseCategoryId = GetOrSetExpenseCategory(dbContext, expense.Category);
                            int taxId             = GetOrSetTaxState(dbContext, expense.TaxName);

                            DataAccess.Expense dbExpense = new DataAccess.Expense
                            {
                                EmployeeId         = employeeId,
                                ExpenseCategoryId  = expenseCategoryId,
                                TaxStateId         = taxId,
                                ExpenseDescription = expense.ExpenseDescription,
                                PreTaxAmount       = expense.PretaxAmount,
                                TaxAmount          = expense.TaxAmount,
                            };
                            DateTime dt;

                            bool isDateTime = DateTime.TryParse(expense.Date, out dt);
                            if (isDateTime)
                            {
                                dbExpense.SubmissionDate = dt;
                            }
                            else
                            {
                                string sqlMinDt = SqlDateTime.MinValue.ToString();
                                dbExpense.SubmissionDate = Convert.ToDateTime(sqlMinDt);
                            }
                            if (totalExpenseByMonth.ContainsKey(dt.Month))
                            {
                                totalExpenseByMonth[dt.Month] = totalExpenseByMonth[dt.Month] + expense.TotalExpenseAmount;
                            }
                            else
                            {
                                totalExpenseByMonth[dt.Month] = expense.TotalExpenseAmount;
                            }

                            dbExpenses.Add(dbExpense);

                            lock (lockObject)
                            {
                                completed = completed + 1;
                            }

                            System.Console.WriteLine("Processing Completed:" + completed);
                            UpdateMigrationProgress(total, completed);
                        }

                        dbContext.Expenses.AddRange(dbExpenses);
                        dbContext.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                }
            }
            return(totalExpenseByMonth);
        }