public void AddNewCustomer_NoContact_Success_ReturnsValidationResult() { // given var resources = new Resources(); var inputModel = new AddOrderCustomerRequestModel { CustomerId = 0, CustomerName = "New Customer", CustomerDetails = "Testing a customer details text area.", CustomerContactNo = "0214478512", CustomerMobileNo = "0847110055", CustomerAccountNo = "DR3243", CustomerEmailAddress = "*****@*****.**", ContactId = 0 }; var responseModel = new AddCustomerOrderModel { CustomerId = 1, ContactId = 1 }; resources.MockApiCaller.AddMockResponse("WebApi:Orders:AddOrderCustomer", inputModel, responseModel); // when var result = resources.Controller.AddCustomerOrder(inputModel) as JsonResult; // then Assert.IsNotNull(result); var model = (AddCustomerOrderModel)result.Value; Assert.AreEqual(responseModel.CustomerId, model.CustomerId); Assert.AreEqual(responseModel.ContactId, model.ContactId); }
public JsonResult AddCustomerOrder(AddOrderCustomerRequestModel inputModel) { inputModel.CompanyProfileId = CurrentUser.CompanyProfileId; inputModel.Username = CurrentUser.Username; var result = WebApiCaller.PostAsync <AddCustomerOrderModel>("WebApi:Orders:AddOrderCustomer", inputModel); return(Json(result)); }
public AddCustomerOrderModel AddCustomerOrder([FromBody] AddOrderCustomerRequestModel requestModel) { var orderHead = Context.Orders.First(o => o.OrderId == requestModel.OrderId); var contact = new ContactPerson { ContactName = requestModel.ContactName, ContactNo = requestModel.ContactNo, EmailAddress = requestModel.ContactEmailAddress, CreateDate = DateTime.Now, CreateUser = requestModel.Username, }; var existingCustomer = Context.Customers.Include(cp => cp.ContactPeople).FirstOrDefault(o => o.CustomerId == requestModel.CustomerId); if (existingCustomer == null) { // insert customer details var newCustomer = new Customer { CustomerName = requestModel.CustomerName, CustomerDetails = requestModel.CustomerDetails, AccountNo = requestModel.CustomerAccountNo, ContactNo = requestModel.CustomerContactNo, EmailAddress = requestModel.CustomerEmailAddress, MobileNo = requestModel.CustomerMobileNo, CompanyProfileId = requestModel.CompanyProfileId, CreateDate = DateTime.Now, CreateUser = requestModel.Username, }; if (requestModel.ContactAdded) { newCustomer.ContactPeople.Add(contact); } Context.Customers.Add(newCustomer); Context.SaveChanges(); orderHead.CustomerId = newCustomer.CustomerId; orderHead.UpdateDate = DateTime.Now; orderHead.UpdateUser = requestModel.Username; if (requestModel.ContactAdded) { orderHead.ContactId = contact.ContactId; } Context.SaveChanges(); } else { // edit customer details existingCustomer.CustomerName = requestModel.CustomerName; existingCustomer.CustomerDetails = requestModel.CustomerDetails; existingCustomer.ContactNo = requestModel.CustomerContactNo; existingCustomer.MobileNo = requestModel.CustomerMobileNo; existingCustomer.EmailAddress = requestModel.CustomerEmailAddress; existingCustomer.AccountNo = requestModel.CustomerAccountNo; existingCustomer.UpdateDate = DateTime.Now; existingCustomer.UpdateUser = requestModel.Username; var existingContact = existingCustomer.ContactPeople.FirstOrDefault(cp => cp.ContactId == requestModel.ContactId); // insert contact person details if (requestModel.ContactAdded && existingContact == null) { // new contact person existingCustomer.ContactPeople.Add(contact); Context.SaveChanges(); orderHead.ContactId = contact.ContactId; } else if (requestModel.ContactAdded && existingContact != null) { // existing contact person existingContact.ContactName = contact.ContactName; existingContact.ContactNo = contact.ContactNo; existingContact.EmailAddress = contact.EmailAddress; existingContact.UpdateDate = DateTime.Now; existingContact.UpdateUser = requestModel.Username; orderHead.ContactId = existingContact.ContactId; Context.SaveChanges(); } else if (!requestModel.ContactAdded) // no contact person linked to order { orderHead.ContactId = 0; } orderHead.CustomerId = existingCustomer.CustomerId; orderHead.UpdateDate = DateTime.Now; orderHead.UpdateUser = requestModel.Username; Context.SaveChanges(); } return(new AddCustomerOrderModel { OrderId = orderHead.OrderId, CustomerId = orderHead.CustomerId, ContactId = orderHead.ContactId, OrderNo = orderHead.OrderNo }); }