/// <summary> /// Customer Inquiry /// </summary> /// <param name="firstName"></param> /// <param name="lastName"></param> /// <param name="paging"></param> /// <returns></returns> public List<CustomerInquiry> CustomerInquiry(string firstName, string lastName, DataGridPagingInformation paging) { string sortExpression = paging.SortExpression; if (paging.SortDirection != string.Empty) sortExpression = sortExpression + " " + paging.SortDirection; var customerQuery = Customers.AsQueryable(); if (firstName != null && firstName.Trim().Length > 0) { customerQuery = customerQuery.Where(c => c.FirstName.StartsWith(firstName)); } if (lastName != null && lastName.Trim().Length > 0) { customerQuery = customerQuery.Where(c => c.LastName.StartsWith(lastName)); } var customers = from c in customerQuery join p in PaymentTypes on c.PaymentTypeID equals p.PaymentTypeID select new { c.CustomerID, c.FirstName, c.LastName, c.EmailAddress, c.City, p.Description }; int numberOfRows = customers.Count(); customers = customers.OrderBy(sortExpression); var customerList = customers.Skip((paging.CurrentPageNumber - 1) * paging.PageSize).Take(paging.PageSize); paging.TotalRows = numberOfRows; paging.TotalPages = Utilities.CalculateTotalPages(numberOfRows, paging.PageSize); List<CustomerInquiry> customerInquiry = new List<CustomerInquiry>(); foreach (var customer in customerList) { CustomerInquiry customerData = new CustomerInquiry(); customerData.CustomerID = customer.CustomerID; customerData.FirstName = customer.FirstName; customerData.LastName = customer.LastName; customerData.EmailAddress = customer.EmailAddress; customerData.City = customer.City; customerData.PaymentTypeDescription = customer.Description; customerInquiry.Add(customerData); } return customerInquiry; }
public void CustomerInquiryIntegrationTest() { TransactionalInformation transaction; CustomerApplicationService customerApplicationService = new CustomerApplicationService(customerDataService); DataGridPagingInformation paging = new DataGridPagingInformation(); paging.CurrentPageNumber = 1; paging.PageSize = 15; paging.SortExpression = "LastName"; paging.SortDirection = "ASC"; List<CustomerInquiry> customers = customerApplicationService.CustomerInquiry("", "", paging, out transaction); string returnMessage = Utilities.GetReturnMessage(transaction.ReturnMessage); Assert.AreEqual(15, customers.Count, returnMessage); }
public HttpResponseMessage CustomerInquiry(string FirstName, string LastName, int CurrentPageNumber, string SortExpression, string SortDirection, int PageSize) { TransactionalInformation transaction; if (FirstName == null) FirstName = string.Empty; if (LastName == null) LastName = string.Empty; if (SortDirection == null) SortDirection = string.Empty; if (SortExpression == null) SortExpression = string.Empty; CustomerInquiryViewModel customerInquiryViewModel = new CustomerInquiryViewModel(); DataGridPagingInformation paging = new DataGridPagingInformation(); paging.CurrentPageNumber = CurrentPageNumber; paging.PageSize = PageSize; paging.SortExpression = SortExpression; paging.SortDirection = SortDirection; if (paging.SortDirection == "") paging.SortDirection = "ASC"; if (paging.SortExpression == "") paging.SortExpression = "LastName"; CustomerApplicationService customerApplicationService = new CustomerApplicationService(customerDataService); List<CustomerInquiry> customers = customerApplicationService.CustomerInquiry(FirstName, LastName, paging, out transaction); customerInquiryViewModel.Customers = customers; customerInquiryViewModel.ReturnStatus = transaction.ReturnStatus; customerInquiryViewModel.ReturnMessage = transaction.ReturnMessage; customerInquiryViewModel.TotalPages = paging.TotalPages; customerInquiryViewModel.TotalRows = paging.TotalRows; customerInquiryViewModel.PageSize = paging.PageSize; if (transaction.ReturnStatus == true) { var response = Request.CreateResponse<CustomerInquiryViewModel>(HttpStatusCode.OK, customerInquiryViewModel); return response; } var badResponse = Request.CreateResponse<CustomerInquiryViewModel>(HttpStatusCode.BadRequest, customerInquiryViewModel); return badResponse; }
/// <summary> /// Customer Inquiry /// </summary> /// <param name="firstName"></param> /// <param name="lastName"></param> /// <param name="paging"></param> /// <returns></returns> public List<CustomerInquiry> CustomerInquiry(string firstName, string lastName, DataGridPagingInformation paging) { List<Customer> customers = new List<Customer>(); string sortExpression = paging.SortExpression; int maxRowNumber; int minRowNumber; minRowNumber = (paging.PageSize * (paging.CurrentPageNumber - 1)) + 1; maxRowNumber = paging.PageSize * paging.CurrentPageNumber; StringBuilder sqlBuilder = new StringBuilder(); StringBuilder sqlWhereBuilder = new StringBuilder(); string sqlWhere = string.Empty; if (firstName != null && firstName.Trim().Length > 0) sqlWhereBuilder.Append(" c.FirstName LIKE @FirstName AND "); if (lastName != null && lastName.Trim().Length > 0) sqlWhereBuilder.Append(" c.LastName LIKE @LastName AND "); if (sqlWhereBuilder.Length > 0) sqlWhere = " WHERE " + sqlWhereBuilder.ToString().Substring(0, sqlWhereBuilder.Length - 4); sqlBuilder.Append(" SELECT COUNT(*) as total_records FROM Customers c "); sqlBuilder.Append(sqlWhere); sqlBuilder.Append(";"); sqlBuilder.Append(" SELECT * FROM ( "); sqlBuilder.Append(" SELECT (ROW_NUMBER() OVER (ORDER BY " + paging.SortExpression + " " + paging.SortDirection + ")) as record_number, "); sqlBuilder.Append(" c.*, p.Description as PaymentTypeDescription "); sqlBuilder.Append(" FROM Customers c "); sqlBuilder.Append(" INNER JOIN PaymentTypes p ON p.PaymentTypeID = c.PaymentTypeID "); sqlBuilder.Append(sqlWhere); sqlBuilder.Append(" ) Rows "); sqlBuilder.Append(" where record_number between " + minRowNumber + " and " + maxRowNumber); string sql = sqlBuilder.ToString(); SqlCommand sqlCommand = new SqlCommand(); sqlCommand.CommandText = sql; sqlCommand.Connection = dbConnection; if (firstName != null && firstName.Trim().Length > 0) { sqlCommand.Parameters.Add("@FirstName", System.Data.SqlDbType.VarChar); sqlCommand.Parameters["@FirstName"].Value = firstName + "%"; } if (lastName != null && lastName.Trim().Length > 0) { sqlCommand.Parameters.Add("@LastName", System.Data.SqlDbType.VarChar); sqlCommand.Parameters["@LastName"].Value = lastName + "%"; } SqlDataReader reader = sqlCommand.ExecuteReader(); reader.Read(); paging.TotalRows = Convert.ToInt32(reader["Total_Records"]); paging.TotalPages = Utilities.CalculateTotalPages(paging.TotalRows, paging.PageSize); reader.NextResult(); List<CustomerInquiry> customerList = new List<CustomerInquiry>(); while (reader.Read()) { CustomerInquiry customer = new CustomerInquiry(); DataReader dataReader = new DataReader(reader); customer.CustomerID = dataReader.GetGuid("CustomerID"); customer.FirstName = dataReader.GetString("FirstName"); customer.LastName = dataReader.GetString("LastName"); customer.EmailAddress = dataReader.GetString("EmailAddress"); customer.City = dataReader.GetString("City"); customer.PaymentTypeDescription = dataReader.GetString("PaymentTypeDescription"); customerList.Add(customer); } reader.Close(); return customerList; }
public void UpdateCustomerIntegrationTest() { string returnMessage; TransactionalInformation transaction; CustomerApplicationService customerApplicationService = new CustomerApplicationService(customerDataService); DataGridPagingInformation paging = new DataGridPagingInformation(); paging.CurrentPageNumber = 1; paging.PageSize = 15; paging.SortExpression = "LastName"; paging.SortDirection = "ASC"; List<CustomerInquiry> customers = customerApplicationService.CustomerInquiry("", "", paging, out transaction); var customerInformation = (from c in customers select c).First(); Guid customerID = customerInformation.CustomerID; Customer customer = customerApplicationService.GetCustomerByCustomerID(customerID, out transaction); customerApplicationService.UpdateCustomer(customer, out transaction); returnMessage = Utilities.GetReturnMessage(transaction.ReturnMessage); Assert.AreEqual(true, transaction.ReturnStatus, returnMessage); }
/// <summary> /// Customer Inquiry /// </summary> /// <param name="firstName"></param> /// <param name="lastName"></param> /// <param name="paging"></param> /// <param name="transaction"></param> /// <returns></returns> public List<CustomerInquiry> CustomerInquiry(string firstName, string lastName, DataGridPagingInformation paging, out TransactionalInformation transaction) { transaction = new TransactionalInformation(); try { CustomerDataService.CreateSession(); List<CustomerInquiry> customers = CustomerDataService.CustomerInquiry(firstName, lastName, paging); transaction.ReturnStatus = true; return customers; } catch (Exception ex) { transaction.ReturnMessage = new List<string>(); string errorMessage = ex.Message; transaction.ReturnStatus = false; transaction.ReturnMessage.Add(errorMessage); return null; } finally { CustomerDataService.CloseSession(); } }