コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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
            });
        }