public static string SendEmailNotifications() { StringBuilder output = new StringBuilder(); NetflixConnection conn = new NetflixConnection(ConfigurationManager.AppSettings["NetflixConsumerKey"], ConfigurationManager.AppSettings["NetflixConsumerSecret"]); DatabaseDataContext db = new DatabaseDataContext(); foreach (returnflix.Common.User u in db.Users) { try { output.AppendFormat("Executing Netflix account for {0} {1}...<br />", u.FirstName, u.LastName); AccessToken accTok = new AccessToken(u.NetflixUserID, u.NetflixAccessToken, u.NetflixAccessTokenSecret); System.Xml.Linq.XElement atHomeFeed = conn.RequestXmlResource(NetflixUrls.GetUsersAtHome(accTok, 0, 10, DateTime.Now.AddDays(-7)), accTok); string currentMovie = atHomeFeed.Elements("at_home_item").First().Element("title").Attribute("regular").Value; int currentMovieDays = DateTime.Now.Subtract(UnixTimeToDateTime(atHomeFeed.Elements("at_home_item").First().Element("estimated_arrival_date").Value)).Days; System.Xml.Linq.XElement queueFeed = conn.RequestXmlResource(NetflixUrls.GetUsersQueuesDiscAvailable(accTok, QueueSortOrder.QueueSequence, 0, 10, DateTime.Now.AddYears(-1)), accTok); string nextMovie = queueFeed.Elements("queue_item").First().Element("title").Attribute("regular").Value; output.AppendFormat("\"{0}\" has been at home for {1} days.<br />", currentMovie, currentMovieDays); if (DateTime.Now.Subtract(u.LastNotificationDate).Days >= 3 && currentMovieDays >= 7) { System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); msg.From = new System.Net.Mail.MailAddress(ConfigurationManager.AppSettings["SmtpEmailAddress"], "Returnflix"); msg.To.Add(u.EmailAddress); msg.Subject = string.Format("Don't Forget to Return \"{0}\" to Netflix", currentMovie); msg.Body = string.Format("Hi {0},\n\nHave you had a chance to watch \"{1}\"? This movie has been at home for a week now. You should return this DVD to Netflix soon so that you can receive your next movie, \"{2}\".\n\nThanks!\n\n--\nReturnflix\nhttp://returnflix.com\n\nTired of the reminders? Unsubscribe at http://returnflix.com/unsubscribe.aspx?id={3}", u.FirstName, currentMovie, nextMovie, u.NetflixUserID); msg.IsBodyHtml = false; System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(); smtp.Host = ConfigurationManager.AppSettings["SmtpHost"]; smtp.Port = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpPort"]); smtp.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["SmtpUsername"], ConfigurationManager.AppSettings["SmtpPassword"]); output.AppendFormat("Sending message to {0} {1} ({2}).<br />", u.FirstName, u.LastName, u.EmailAddress); smtp.Send(msg); u.LastNotificationDate = DateTime.Now; } } catch (Exception ex) { output.AppendFormat("Failed due to {0}.<br />", ex.Message); } output.AppendFormat("Done.<br /><br />"); } db.SubmitChanges(); return output.ToString(); }
protected void uxAuthorize_Click(object sender, EventArgs e) { if (this.ddEmailAddress.Text.Length > 0) { NetflixConnection conn = new NetflixConnection(ConfigurationManager.AppSettings["NetflixConsumerKey"], ConfigurationManager.AppSettings["NetflixConsumerSecret"]); RequestToken reqTok = conn.GenerateRequestToken(); Session["REQUEST_TOKEN"] = reqTok; Session["EMAIL_ADDRESS"] = this.ddEmailAddress.Text; Response.Redirect(reqTok.PermissionUrl + "&oauth_callback=http%3A%2F%2F" + Request.ServerVariables["SERVER_NAME"] + "%2Fauthorize.aspx"); } else { Response.Redirect("~/default.aspx?error=Please enter your email address and try again."); } }
public WrapNetflix.User GetUser(string token, string tokenSecret) { var nc = new NetflixConnection(ConsumerKey, SharedSecret); var at = new AccessToken(GetAccessTokenResponse(token, tokenSecret)); var u = new WrapNetflix.User(at, nc); return u; }