private void SendEmail(ContactUsViewModel contactUsViewModel)
 {
     _bus.Send(new SendTechnicalSupportEmail()
     {
         Name = contactUsViewModel.Name.TrimStart().TrimEnd(),
         FromEmailAddress = contactUsViewModel.EmailAddress.TrimStart().TrimEnd(),
         Message = contactUsViewModel.Message.TrimStart().TrimEnd()
     });
 }
        public ActionResult Send(ContactUsViewModel contactUsViewModel)
        {
            Validate(contactUsViewModel);

            if (!ModelState.IsValid)
            {
                return View("Index", contactUsViewModel);    
            }
            
            SendEmail(contactUsViewModel);
            TempData["Notice"] = "Email has been sent out sucessfully.";

            return RedirectToAction("Index");
            
        }
        private void Validate(ContactUsViewModel contactUsViewModel)
        {
            if (String.IsNullOrEmpty(contactUsViewModel.Name))
            {
                ModelState.AddModelError("Name", "Name is required.");
            }
            
            if (String.IsNullOrEmpty(contactUsViewModel.EmailAddress))
            {
                ModelState.AddModelError("EmailAddress", "Email Address is required.");
            }
            else if(!ValidEmailAddress(contactUsViewModel.EmailAddress))
            {
                ModelState.AddModelError("EmailAddressInvalid", "Email Address is invalid.");
            }

            if (String.IsNullOrEmpty(contactUsViewModel.Message))
            {
                ModelState.AddModelError("Message", "Message is required.");
            }
        }