public void When_handle_Then_should_call_correct_methods()
        {
            //Given            
            var message = new SendHardCopyToOfficeEmail()
            {
                ChecklistId = Guid.NewGuid(),
                CAN = "SGG72",
                VisitDate = DateTime.Now,
                VisitBy = "Fred Flintstone",
                SubmittedBy = "Barney Rubble",
                SubmittedDate = DateTime.Now,        
                SiteAddressLine1 = "22 Acacia Avenue",
                SiteAddressLine2 = "Rubble Town",
                SiteAddressLine3 = "Rockville",
                SiteAddressLine4 = "",
                SiteAddressLine5 = "",        
                SitePostcode = "FF1 2RV"
            };          

            //When
            var handler = CreateTarget();
            handler.Handle(message);

            //Then
            _emailSender.Verify(x => x.Send(It.IsAny<RazorEmailResult>()));
        }
        private void SendSubmitChecklistEmails(Checklist checklist)
        {
            _checklistRepository.SaveOrUpdate(checklist);
            _checklistRepository.Flush();

            // close the session to commit the transaction so that the new values can be accessed when generating the emails
            if (_businessSafeSessionManager != null)
                _businessSafeSessionManager.CloseSession();

            if (checklist.EmailReportToPerson || (checklist.EmailReportToOthers && checklist.OtherEmails.Any()))
            {
                _bus.Send(new SendSubmitChecklistEmail() {ChecklistId = checklist.Id});
            }

            if (checklist.PostReport)
            {
                var clientDetails = new List<CompanyDetails>();
                string can = GetClientAccountNumber(clientDetails, checklist.ClientId);

                 var site = checklist.SiteId.HasValue
                        ? _clientDetailsService.GetSite(checklist.ClientId.Value, checklist.SiteId.Value)
                        : null;

                SendHardCopyToOfficeEmail email = new SendHardCopyToOfficeEmail()
                                                      {
                                                          CAN = can,
                                                          ChecklistId = checklist.Id,
                                                          VisitDate = checklist.VisitDate,
                                                          VisitBy = checklist.ChecklistCompletedBy,
                                                          SubmittedBy = checklist.ChecklistSubmittedBy,
                                                          SubmittedDate = checklist.ChecklistSubmittedOn,
                                                          SiteName = site != null ? site.SiteName : "",
                                                          SiteAddressLine1 = site != null ? site.Address1 : "",
                                                          SiteAddressLine2 = site != null ? site.Address2 : "",
                                                          SiteAddressLine3 = site != null ? site.Address3 : "",
                                                          SiteAddressLine4 = site != null ? site.Address4 : "",
                                                          SiteAddressLine5 = site != null ? site.Address5 : "",
                                                          SitePostcode = site != null ? site.Postcode  : ""
                                                      };

                _bus.Send(email);
            }
        }