Beispiel #1
0
        private CustomerDTO ProcessCustomer(string customerLine)
        {
            using (var unitOfWork = _factory.GetInstance())
            {
                var fullName  = ParseLine(customerLine, ' ');
                var firstName = fullName[0];
                var lastName  = fullName[1];

                Expression <Func <CustomerDTO, bool> > customerSearchCriteria = (x => x.FirstName == firstName && x.LastName == lastName);

                var customer = unitOfWork.GetCustomers(customerSearchCriteria).FirstOrDefault();

                if (customer == null)
                {
                    customer = new CustomerDTO()
                    {
                        FirstName = firstName, LastName = lastName
                    };

                    lock (_lockers[customer.GetType()])
                    {
                        if (unitOfWork.GetCustomers(customerSearchCriteria).FirstOrDefault() == null)
                        {
                            unitOfWork.AddCustomer(customer);
                            unitOfWork.Save();
                        }
                    }
                }

                return(unitOfWork.GetCustomers(customerSearchCriteria).FirstOrDefault());
            }
        }
Beispiel #2
0
        public void Create(CustomerDTO t)
        {
            using (SqlConnection sqlConnection = new SqlConnection(connectionString))
            {
                sqlConnection.Open();
                using (SqlDataAdapter adapter = new SqlDataAdapter(sqlQuery, connectionString))
                {
                    DataSet dataSet = new DataSet();
                    adapter.Fill(dataSet, "Customers");

                    DataRow dataRowToAdd = dataSet.Tables["Customers"].NewRow();

                    foreach (var item in t.GetType().GetProperties())
                    {
                        dataRowToAdd[item.Name] = item.GetValue(t, null);
                    }

                    dataSet.Tables["Customers"].Rows.Add(dataRowToAdd);

                    SqlCommandBuilder sqlCommandBuilder = new SqlCommandBuilder(adapter);

                    adapter.Update(dataSet.Tables["Customers"]);
                }
                sqlConnection.Close();
            }
        }