예제 #1
0
        public void Send(Quote q, byte[] filecontent)
        {
            MembershipHelperUser mhu      = MembershipHelper.GetUser(q.TimeStamp.CreatedBy);
            IList <string[]>     lstMails = new List <string[]>();

            if (q.QuoteNotifications.Count > 0)
            {
                foreach (IQuoteNotification quoteNotification in q.QuoteNotifications)
                {
                    string[] _contact = new string[2];
                    _contact[0] = quoteNotification.Name;
                    _contact[1] = quoteNotification.Email;
                    lstMails.Add(_contact);
                }
            }
            else
            {
                string name  = q.Distributor.Contact;
                string email = q.Distributor.Email;
                if (string.IsNullOrEmpty(email))
                {
                    email = q.Distributor.AlternativeEmail;
                }

                string[] _contact = new string[2];
                _contact[0] = name;
                _contact[1] = email;
                lstMails.Add(_contact);
            }


            if (mhu != null)
            {
                string[] _contact = new string[2];
                _contact[0] = mhu.FullName;
                _contact[1] = mhu.Email;
                lstMails.Add(_contact);
            }

            if (ControllerManager.Lookup.List(LookupType.AdministratorReceiveMail)[0].Description == "True")
            {
                IList <UserMember> umlst = MembershipManager.GetAdministrators();
                foreach (UserMember um in umlst)
                {
                    string[] _contact = new string[2];
                    _contact[0] = um.UserName;
                    _contact[1] = um.Email;
                    lstMails.Add(_contact);
                }
            }

            string title    = "Cotizaciones";
            string subject  = "Cotización para " + q.Distributor.Name;
            string fileName = "Cotizacion" + q.Number + ".pdf";

            WebMailing w = new WebMailing();

            foreach (string[] currentEmail in lstMails)
            {
                string body = File.ReadAllText(Path.Combine(HttpContext.Current.Server.MapPath(Config.MailTemplatePath), "quote.htm"));
                body = body.Replace("[QUOTE_CONTACT]", currentEmail[0]);
                body = body.Replace("[QUOTE_BODY]", Resource.Business.GetString("QuoteBody"));
                body = body.Replace("[QUOTE_OBSERVATION]", q.Observations);
                body = body.Replace("[USUARIO]", mhu.FullName);
                body = body.Replace("[EMAIL]", mhu.Email);

                w.SendMail(currentEmail[1], title, subject, body, false, false, mhu.Email, mhu.FullName, fileName, filecontent);
            }

            q.Status = QuoteStatus.Sent;
            if (q.SentDate == null)
            {
                q.SentDate = DateTime.Now;
            }
            repository.Save(q);
            repository.CommitChange();
        }