Exemplo n.º 1
0
 private void GenerateForMerge(StringBuilder stringBuilder, MergeResult result)
 {
     stringBuilder.AppendFormat(
         "\t\t{0} to {1}: {2}{3}",
         result.Parent,
         result.Child,
         result.Message,
         Environment.NewLine);
 }
Exemplo n.º 2
0
        public void SendIndividualMergeEmail(Merge merge, MergeResult result)
        {
            if (!_sendEmails || merge.EmailSettings == null)
            {
                return;
            }

            if (merge.EmailSettings.FromAddress == null && (_settings == null || !_settings.FromAddress.InheritInMergeEmails))
            {
                throw new InvalidOperationException("No from email address could be configured or inherited");
            }

            using (var client = new SmtpClient())
            using (var message = new MailMessage())
            {
                message.From = new MailAddress(
                    merge.EmailSettings.FromAddress != null
                        ? merge.EmailSettings.FromAddress.Value
                        : _settings.FromAddress.Value);

                AddEmailsToCollection(message.To, merge.EmailSettings.ToAddresses);
                AddEmailsToCollection(message.CC, merge.EmailSettings.CcAddresses);
                AddEmailsToCollection(message.Bcc, merge.EmailSettings.BccAddresses);

                if (_settings != null)
                {
                    AddEmailsToCollection(message.To, _settings.ToAddresses.Where(a => a.InheritInMergeEmails));
                    AddEmailsToCollection(message.CC, _settings.CcAddresses.Where(a => a.InheritInMergeEmails));
                    AddEmailsToCollection(message.Bcc, _settings.BccAddresses.Where(a => a.InheritInMergeEmails));
                }

                message.Subject = string.Format(
                    "{0} merge {1} to {2} - {3}",
                    result.Success ? "Successful" : "Failed",
                    merge.Parent,
                    merge.Child,
                    DateTime.Now.ToString("yyyy-MM-dd HH:mm"));
                message.Body = result.Message;

                client.Send(message);
            }
        }
Exemplo n.º 3
0
        public MergeResult MergeIndividualMerge(string projectUrl, Merge merge)
        {
            var result = _merger.Merge(projectUrl, merge.Parent, merge.Child);

            try
            {
                _emailSender.SendIndividualMergeEmail(merge, result);
            }
            catch (Exception e)
            {
                result = new MergeResult(
                    merge.Parent,
                    merge.Child,
                    false,
                    string.Format("{0} - {1}", result.Message, e.Message),
                    e);
            }

            return result;
        }