示例#1
0
        public SermonEmail DetailsForEmail(int SermonID)
        {
            SermonEmail details = new SermonEmail();

            try
            {
                SqlCon.Open();
                var SqlCmd = new SqlCommand("[config].[uspReadSermons]", SqlCon)
                {
                    CommandType = CommandType.StoredProcedure
                };

                SqlParameter pNewID = new SqlParameter
                {
                    ParameterName = "@SermonID",
                    SqlDbType     = SqlDbType.Int,
                    Value         = SermonID
                };
                SqlCmd.Parameters.Add(pNewID);

                using (var dr = SqlCmd.ExecuteReader())
                {
                    dr.Read();
                    if (dr.HasRows)
                    {
                        details.SermonID     = Convert.ToInt32(dr["SermonID"]);
                        details.Title        = dr["Title"].ToString();
                        details.Description  = dr["Description"].ToString();
                        details.Tags         = dr["Tags"].ToString();
                        details.SermonDate   = Convert.ToDateTime(dr["SermonDate"]);
                        details.ImageURL     = dr["ImagePath"].ToString();
                        details.SermonURL    = dr["SermonURL"].ToString();
                        details.MinisterName = dr["MinisterName"].ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            if (SqlCon.State == ConnectionState.Open)
            {
                SqlCon.Close();
            }

            return(details);
        }
        public HttpResponseMessage AddNew([FromBody] Sermons model)
        {
            var authHeader = this.Request.Headers.GetValues("Authorization").FirstOrDefault();
            var token      = authHeader.Substring("Bearer ".Length);
            var handler    = new JwtSecurityTokenHandler();
            var jsonToken  = handler.ReadToken(token);
            var tokenS     = handler.ReadToken(token) as JwtSecurityToken;

            var UserName = tokenS.Claims.First(claim => claim.Type == "UserName").Value;

            var r = SBL.AddNew(model, UserName);

            if (r > 0)
            {
                #region Email
                SermonEmail           Res         = SBL.DetailsForEmail(r);
                MailAddressCollection emailtoBCC  = new MailAddressCollection();
                List <Users>          Subscribers = USBL.Subscribers(0, true);

                if (Subscribers.Count() > 0)
                {
                    foreach (var item in Subscribers)
                    {
                        emailtoBCC.Add(item.Email);
                    }
                }
                string body = string.Empty;
                using (StreamReader reader = new StreamReader(HttpContext.Current.Server.MapPath("~/Views/EmailTemplates/NewSermons.html")))
                {
                    body = reader.ReadToEnd();
                }
                body = body.Replace("{Title}", Res.Title);
                body = body.Replace("{MinisterName}", Res.MinisterName);
                body = body.Replace("{Description}", Res.Description);

                Emails Email = new Emails()
                {
                    FromEmail    = ConfigurationManager.AppSettings["AdminEmail"].ToString(),
                    ToEmail      = ConfigurationManager.AppSettings["Subscribers"].ToString(),
                    SubjectEmail = "Oasis Alajuela ha subido una Prédica",
                    BodyEmail    = body
                };

                MailMessage mm = new MailMessage(Email.FromEmail, Email.ToEmail)
                {
                    Subject      = Email.SubjectEmail,
                    Body         = Email.BodyEmail,
                    IsBodyHtml   = true,
                    BodyEncoding = Encoding.GetEncoding("utf-8")
                };

                if (Subscribers.Count() > 0)
                {
                    mm.Bcc.Add(emailtoBCC.ToString());
                }

                SmtpClient smtp = new SmtpClient();
                smtp.Send(mm);
                #endregion
                return(this.Request.CreateResponse(HttpStatusCode.OK, true));
            }
            else
            {
                return(this.Request.CreateResponse(HttpStatusCode.InternalServerError));
            }
        }