public HousekeeperHelper2(
     IHousekeeperHelperRepository houseKeeperRepository,
     IStatementGenerator statementGenerator,
     IEmailSender emailSender,
     IXtraMessageBox xtraMessageBox)
 {
     _houseKeeperRepository = houseKeeperRepository;
     _statementGenerator    = statementGenerator;
     _emailSender           = emailSender;
     _xtraMessageBox        = xtraMessageBox;
 }
        public static void SendStatementEmails(DateTime statementDate, IUnitOfWork _unitOfWork, IHousekeeperHelperRepository _repository)
        {
            var housekeepers = _unitOfWork.Query <Housekeeper>();

            foreach (var housekeeper in housekeepers)
            {
                if (string.IsNullOrWhiteSpace(housekeeper.Email))
                {
                    continue;
                }

                var statementFilename = _repository.SaveStatement(housekeeper.Oid, housekeeper.FullName, statementDate);

                if (string.IsNullOrWhiteSpace(statementFilename))
                {
                    continue;
                }

                var emailAddress = housekeeper.Email;
                var emailBody    = housekeeper.StatementEmailBody;

                try
                {
                    _repository.EmailFile(emailAddress, emailBody, statementFilename,
                                          string.Format("Sandpiper Statement {0:yyyy-MM} {1}", statementDate, housekeeper.FullName));
                }
                catch (Exception e)
                {
                    XtraMessageBox.Show(e.Message, string.Format("Email failure: {0}", emailAddress),
                                        MessageBoxButtons.OK);
                }
            }
        }