Exemplo n.º 1
0
 public void EmailOnInvited(int reservationId, IEnumerable <Invitee> invitees, int clientId, ReservationModificationType modificationType = ReservationModificationType.Created)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 2
0
        //Send email to invitees when they are invited to a reservation
        public void EmailOnInvited(int reservationId, IEnumerable <Invitee> invitees, int clientId, ReservationModificationType modificationType = ReservationModificationType.Created)
        {
            if (invitees == null)
            {
                return;
            }

            var invited = invitees.Where(x => !x.Removed).ToArray();

            if (invited.Length == 0)
            {
                return;
            }

            var           rsv = Require <ReservationInfo>(reservationId);
            string        fromAddr, subject, body;
            List <string> toAddr = new List <string>();

            fromAddr = Properties.Current.SchedulerEmail;
            subject  = $"{SendEmail.CompanyName} - Reservation Invitation";

            //reservationType
            string invitedModifiedText;

            if (modificationType == ReservationModificationType.Created)
            {
                invitedModifiedText = "invited you to a reservation";
            }
            else
            {
                invitedModifiedText = "modified a reservation to which you are invited";
            }

            body  = string.Format("{0} has {1} for resource {2}.", Clients.GetDisplayName(rsv.LName, rsv.FName), invitedModifiedText, rsv.ResourceName);
            body += Environment.NewLine + string.Format("- Begin time: {0}", rsv.BeginDateTime.ToString(Reservation.DateFormat));
            body += Environment.NewLine + string.Format("- End time: {0}", rsv.EndDateTime.ToString(Reservation.DateFormat));

            foreach (var ri in invited)
            {
                //Send email if invitee wants to receive email
                ClientSetting inviteeSetting = Session.Get <ClientSetting>(ri.InviteeID);
                if (inviteeSetting != null)
                {
                    if (inviteeSetting.EmailInvited.Value)
                    {
                        var primary = Client.GetPrimary(ri.InviteeID);
                        if (primary != null)
                        {
                            toAddr.Add(primary.Email);
                        }
                    }
                }
            }

            if (toAddr.Count == 0)
            {
                return;
            }

            SendEmail.Send(clientId, "LNF.Scheduler.EmailUtility.EmailOnInvited", subject, body, fromAddr, toAddr);
        }