コード例 #1
0
        private Expression <Func <ChangeRequestDocument, bool> > AddAssigneeFilter(
            Expression <Func <ChangeRequestDocument, bool> > filterEx)
        {
            if (Assignees == null || !Assignees.Any())
            {
                return(filterEx);
            }
            Expression <Func <ChangeRequestDocument, bool> > assigneeFilterEx = null;

            foreach (var assignee in Assignees)
            {
                assigneeFilterEx = assigneeFilterEx.OrElse(x => x.Assignee == assignee);
            }
            return(filterEx.AndAlso(assigneeFilterEx));
        }
コード例 #2
0
ファイル: ProjectModel.cs プロジェクト: dallinbeutler/EMS
        public void NotifyByEmail()
        {
            //get list of recipients to see if we actually have someone to email
            List <string> recips = new List <string>();

            if (Assignees.Any(x => x.Name == "DATA"))
            {
                recips = new List <string> {
                    "Nils.Bergmann @lenderlive.com",
                    "Dallin.Beutler @lenderlive.com",
                    "Cameron.Thibeaux @lenderlive.com",
                    "Robert.Cerami @lenderlive.com",
                    "Mike.Auyeung @lenderlive.com",
                    "Bradley.Gill @lenderlive.com",
                    "nils.bergmann @lenderlive.com",
                    "Andrew.Matel @lenderlive.com",
                    "wesley.rollings @lenderlive.com",
                    "luke.stanley @lenderlive.com",
                    "Wesley.Hamilton @lenderlive.com",
                    "britney.clark @lenderlive.com",
                    "*****@*****.**"
                };
            }
            recips.AddRange(Assignees.Select(x => x.Value).Where(x => !string.IsNullOrEmpty(x)));
            if (recips.Count <= 0)
            {
                return;
            }
            string build   = VersionSelector.SelectedVersionEnum.Name;
            string Subject = "EMS- " + build + " Notification: " + Model.ProjectName;

            // simplest html table showing relevant info
            string HTMLBody = $@"<table>
                           <tr><td><b>Project:     </b></td><td>  { Model.ProjectName }<td/></tr>
                           <tr><td><b>Description: </b></td><td>  { Model.Description}<td/></tr>"
                              + (Model.EndDate.HasValue ? ($@"<tr><td><b>End Date:    </b></td><td>  { Model.EndDate.Value.ToShortDateString()} <td/></tr>)") : "") +
                              $@"<tr><td><b>Status:      </b></td><td>  { Model.Status}<td/></tr>
                           <tr><td><b>Division:    </b></td><td>  { Model.Division}<td/></tr>
                           <tr><td><b>Division:    </b></td><td>  { Model.Category}<td/></tr>
                           <tr><td><b>Assigned To: </b></td><td>  { string.Join(", ", recips)}<td/></tr>
                           <tr><td><b>Comments:    </b></td><td>  { EMS2.Utility.RtfToHtmlConverter.ConvertRtfToHtml(Model.Comments)}<td/></tr>
                            </table> ";

            //SMTP is a server service thing for sending mail. Quite relaxed
            SMTP smtp = new SMTP();


            List <string> emails    = recips;
            List <string> assigners = Assigners.Select(x => x.Value).ToList();


            smtp.Recipients   = emails;
            smtp.CCRecipients = assigners;
            smtp.bodyMessage  = HTMLBody;
            smtp.subject      = Subject;
            smtp.from         = "EMS " + build + " <*****@*****.**>";


            //Don't send a prompt to robert, but yes to everyone else. talk about customization!
            //if (!EMSSession.IsAdmin)
            //{
            //   var result = MessageBox.Show("Do you want to send an email to " + string.Join(", ", emails) + "\n" + "with " + string.Join(", ", assigners) + " CC'd?", "Confirm Email", MessageBoxButton.YesNo);
            //   if (result != MessageBoxResult.Yes) return;
            //}

            // send the email on a separate thread so that we don't have to wait for the SMTP server.
            new Thread(() =>
            {
                try
                {
                    Thread.CurrentThread.IsBackground = true;
                    /* run your code here */

                    smtp.SendEmail();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message).ToString();
                }
            }).Start();
            //mail.Send();
        }//butNotify_Click
コード例 #3
0
 protected override bool Reason2Warn(float threshold = 0.7f)
 {
     // a reason to warn is if there exists an astronaut at this station with less than (threshold * 100)% health
     return(Assignees.Any(astronaut => astronaut.myBody.getLifePercentage() <= threshold));
 }