public static bool HasCredentials(string username) { using (var db = new ezFixUpDataContext()) { return db.TwitterCredentials.Any(tc => tc.u_username == username); } }
public static void PublishTweet(string username, string tweet) { using (var db = new ezFixUpDataContext()) { var credentials = db.TwitterCredentials.FirstOrDefault(tc => tc.u_username == username); if (credentials == null) return; // encode the username/password string user = Convert.ToBase64String( System.Text.Encoding.UTF8.GetBytes(credentials.tc_username + ":" + credentials.tc_password)); // determine what we want to upload as a status byte[] bytes = System.Text.Encoding.ASCII.GetBytes("status=" + tweet); // connect with the update page var request = (HttpWebRequest) WebRequest.Create("https://twitter.com/statuses/update.xml"); // set the method to POST request.Method = "POST"; // thanks to argodev for this recent change! request.ServicePoint.Expect100Continue = false; // set the authorisation levels request.Headers.Add("Authorization", "Basic " + user); request.ContentType = "application/x-www-form-urlencoded"; // set the length of the content request.ContentLength = bytes.Length; // set up the stream Stream reqStream = request.GetRequestStream(); // write to the stream reqStream.Write(bytes, 0, bytes.Length); // close the stream reqStream.Close(); } }
//public static int FetchPollsCount() //{ // using (var db = new ezFixUpDataContext()) // { // return (from p in db.Polls // select p).Count(); // } //} public static Poll FetchRandom(bool? answered, string username) { using (var db = new ezFixUpDataContext()) { var ids = (from p in db.Polls where answered == null || (answered == true && DateTime.Now.Date <= p.p_showresultsuntil.Date && ((from pa in db.PollAnswers where pa.u_username == username select pa.p_id).Contains(p.p_id) || DateTime.Now.Date > p.p_enddate) ) || (answered == false && DateTime.Now.Date <= p.p_enddate && !(from pa in db.PollAnswers where pa.u_username == username select pa.p_id).Contains(p.p_id)) select p.p_id).ToArray(); if (ids.Length > 0) { var randomID = ids[new Random().Next(ids.Length)]; return (from p in db.Polls where p.p_id == randomID select new Poll { ID = p.p_id, Title = p.p_title, StartDate = p.p_startdate, EndDate = p.p_enddate, ShowResultsUntil = p.p_showresultsuntil }).Single(); } return null; } }
/// <summary> /// Saves this instance. /// </summary> public void Save() { using (var db = new ezFixUpDataContext()) { var photoNote = new Model.PhotoNote { pn_id = Id, p_id = PhotoId, u_username = Username, pn_notes = Notes, pn_timestamp = Timestamp, pn_x = X, pn_y = Y, pn_width = Width, pn_height = Height }; if (Id == 0) db.PhotoNotes.InsertOnSubmit(photoNote); else { db.PhotoNotes.Attach(photoNote, true); } db.SubmitChanges(); if (Id == 0) Id = photoNote.pn_id; } }
public static void RemoveCredentials(string username) { using (var db = new ezFixUpDataContext()) { var credentials = db.TwitterCredentials.FirstOrDefault(tc => tc.u_username == username); if (credentials != null) { db.TwitterCredentials.DeleteOnSubmit(credentials); db.SubmitChanges(); } } }
public static PollChoice Fetch(int choiceID) { using (var db = new ezFixUpDataContext()) { return (from pc in db.PollChoices where pc.pc_id == choiceID select new PollChoice { ID = pc.pc_id, PollID = pc.p_id, Answer = pc.pc_answer }).FirstOrDefault(); } }
public static PollChoice[] FetchByPollID(int pollID) { using (var db = new ezFixUpDataContext()) { return (from pc in db.PollChoices where pc.p_id == pollID select new PollChoice { ID = pc.pc_id, PollID = pc.p_id, Answer = pc.pc_answer }).ToArray(); } }
public static Dictionary<string, double> FetchTopUsers(User.eGender gender, int minAge, int maxAge, TimeSpan period, int count) { DateTime fromBirthdate = DateTime.Now.Subtract(TimeSpan.FromDays((maxAge + 1) * 365.25)); DateTime toBirthdate = DateTime.Now.Subtract(TimeSpan.FromDays(minAge * 365.25)); string cacheKey = String.Format("Votes_FetchTopUsers_{0}_{1}_{2}_{3}_{4}", gender, minAge, maxAge, period, count); if (HttpContext.Current != null && HttpContext.Current.Cache[cacheKey] != null) { return (Dictionary<string, double>) HttpContext.Current.Cache[cacheKey]; } var userRatings = new Dictionary<string, double>(); var fromDate = DateTime.Now.Subtract(period); var averageRating = FetchAverageRating(period, gender, minAge, maxAge); var averageNumberOfVotes = FetchAverageNumberOfVotes(period, gender, minAge, maxAge); using (var db = new ezFixUpDataContext()) { foreach (var rating in (from v in db.Votes join u in db.Users on v.v_tousername equals u.u_username where v.v_timestamp >= fromDate && u.u_gender == (int) gender && u.u_birthdate >= fromBirthdate && u.u_birthdate <= toBirthdate group v by v.v_tousername into uv select new { Username = uv.Key, Rating = ((averageNumberOfVotes*averageRating) + (uv.Count()*uv.Average(v => v.v_score))) /(averageNumberOfVotes + uv.Count()) }).OrderByDescending( uv => uv.Rating).Take(count)) { userRatings.Add(rating.Username, rating.Rating); } } if (HttpContext.Current != null) { HttpContext.Current.Cache.Insert(cacheKey, userRatings, null, DateTime.Now.AddMinutes(30), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null); } return userRatings; }
public static void SaveCredentials(string username, string twitterUsername, string twitterPassword) { using (var db = new ezFixUpDataContext()) { var credentials = db.TwitterCredentials.FirstOrDefault(tc => tc.u_username == username); if (credentials == null) { credentials = new TwitterCredential {u_username = username}; db.TwitterCredentials.InsertOnSubmit(credentials); } credentials.tc_username = twitterUsername; credentials.tc_password = twitterPassword; db.SubmitChanges(); } }
public void Save() { using (var db = new ezFixUpDataContext()) { var pollChoice = new Model.PollChoice { p_id = PollID, pc_id = ID, pc_answer = Answer }; if (ID == 0) db.PollChoices.InsertOnSubmit(pollChoice); else { db.PollChoices.Attach(pollChoice, true); } db.SubmitChanges(); if (ID == 0) ID = pollChoice.pc_id; } }
/// <summary> /// Loads the specified id. /// </summary> /// <param name="id">The id.</param> /// <param name="photoId">The photo id.</param> /// <param name="username">The username.</param> /// <returns></returns> public static PhotoNote[] Load(int? id, int? photoId, string username) { using (var db = new ezFixUpDataContext()) { var photoNotes = from pn in db.PhotoNotes where (!id.HasValue || pn.pn_id == id) && (!photoId.HasValue || pn.p_id == photoId) && (username == null || pn.u_username == username) select new PhotoNote { Id = pn.pn_id, PhotoId = pn.p_id, Username = pn.u_username, Notes = pn.pn_notes, Timestamp = pn.pn_timestamp, X = pn.pn_x, Y = pn.pn_y, Width = pn.pn_width, Height = pn.pn_height }; return photoNotes.ToArray(); } }
public static bool IsAnswered(int pollID, string username) { using (var db = new ezFixUpDataContext()) { return (from pa in db.PollAnswers where pa.p_id == pollID && pa.u_username == username select pa).Count() > 0; } }
public static double FetchAverageNumberOfVotes(TimeSpan period, User.eGender gender, int minAge, int maxAge) { string cacheKey = String.Format("Votes_FetchAverageNumberOfVotes_{0}_{1}_{2}_{3}", period, gender, minAge, maxAge); if (HttpContext.Current != null && HttpContext.Current.Cache[cacheKey] != null) { return (double)HttpContext.Current.Cache[cacheKey]; } double average; var fromDate = DateTime.Now.Subtract(period); DateTime fromBirthdate = DateTime.Now.Subtract(TimeSpan.FromDays((maxAge + 1) * 365.25)); DateTime toBirthdate = DateTime.Now.Subtract(TimeSpan.FromDays(minAge * 365.25)); using (var db = new ezFixUpDataContext()) { average = (from v in db.Votes join u in db.Users on v.v_tousername equals u.u_username where v.v_timestamp >= fromDate && u.u_gender == (int)gender && u.u_birthdate >= fromBirthdate && u.u_birthdate <= toBirthdate group v by v.v_tousername into uv select (double?) uv.Count()).Average() ?? 0; } if (HttpContext.Current != null) { HttpContext.Current.Cache.Insert(cacheKey, average, null, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null); } return average; }
public static void Delete(int id) { using (var db = new ezFixUpDataContext()) { var pollAnswers = db.PollAnswers.Where(pa => pa.p_id == id); var pollChoices = db.PollChoices.Where(pc => pc.p_id == id); var poll = db.Polls.FirstOrDefault(p => p.p_id == id); if (poll != null) { db.PollAnswers.DeleteAllOnSubmit(pollAnswers); db.PollChoices.DeleteAllOnSubmit(pollChoices); db.Polls.DeleteOnSubmit(poll); db.SubmitChanges(); } } }
private static Event[] Fetch(int? id, eType? type, string fromUsername, int? fromGroup, DateTime? date, ulong? bitMask, int? numberOfEvents, eSortColumn sortColumn) { date = date.HasValue ? date.Value.Date : (DateTime?)null; using (var db = new ezFixUpDataContext()) { var events = from e in db.Events where (!id.HasValue || e.e_id == id) && (!type.HasValue || e.e_type == (long?)type) && (fromUsername == null || e.e_fromusername == fromUsername) && (!fromGroup.HasValue || e.e_fromgroup == fromGroup) && (!date.HasValue || e.e_date.Date == date) && (!bitMask.HasValue || (e.e_type & (long?)bitMask) > 0) select new Event { id = e.e_id, fromUsername = e.e_fromusername, type = (eType)e.e_type, fromGroup = e.e_fromgroup, detailsXML = e.e_details, date = e.e_date }; if (sortColumn == eSortColumn.Date) events = events.OrderByDescending(e => e.date); if (numberOfEvents.HasValue) events = events.Take(numberOfEvents.Value); return events.ToArray(); } }
public static Poll Fetch(int id) { using (var db = new ezFixUpDataContext()) { return (from p in db.Polls where p.p_id == id select new Poll { ID = p.p_id, Title = p.p_title, StartDate = p.p_startdate, EndDate = p.p_enddate, ShowResultsUntil = p.p_showresultsuntil }).FirstOrDefault(); } }
public void Save() { using (var db = new ezFixUpDataContext()) { var poll = new Model.Poll { p_id = ID, p_title = Title, p_startdate = StartDate, p_enddate = EndDate, p_showresultsuntil = ShowResultsUntil }; if (ID == 0) db.Polls.InsertOnSubmit(poll); else { db.Polls.Attach(poll, true); } db.SubmitChanges(); if (ID == 0) ID = poll.p_id; } }
/// <summary> /// Fetches number of votes for each answer /// </summary> /// <param name="pollID">the poll id</param> /// <returns>The key is the poll choice ID and the value is the number of votes</returns> public static Dictionary<int, int> FetchResults(int pollID) { var votesForEachChoice = new Dictionary<int, int>(); using (var db = new ezFixUpDataContext()) { var choiceIDs = (from c in db.PollChoices where c.p_id == pollID select c.pc_id).ToArray(); foreach (var id in choiceIDs) { votesForEachChoice.Add(id, 0); } var answers = (from pa in db.PollAnswers where pa.p_id == pollID select pa).ToArray(); foreach (var answer in answers) { if (votesForEachChoice.ContainsKey(answer.pc_id)) { votesForEachChoice[answer.pc_id]++; } } } return votesForEachChoice; }
private static void EventsCleanup(object data) { if (mailerLock) { return; } try { mailerLock = true; Global.Logger.LogStatus("EventsCleanup", "Events Cleanup starting " + DateTime.Now.ToShortTimeString()); DateTime date = DateTime.Now.Subtract(TimeSpan.FromDays(90)); var roundedDate = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second); using (var db = new ezFixUpDataContext()) { db.EventsCleanup(roundedDate); } Global.Logger.LogStatus("EventsCleanup", "Events Cleanup ended " + DateTime.Now.ToShortTimeString()); } catch (Exception err) { Global.Logger.LogError("EventsCleanup", err); } finally { mailerLock = false; } }
private static Relationship[] Fetch(string fromUsername, string toUsername, eRelationshipStatus? type, bool? accepted) { using (var db = new ezFixUpDataContext()) { var relationships = (from r in db.Relationships where (fromUsername == null || r.u_username == fromUsername) && (toUsername == null || r.r_username == toUsername) && (!type.HasValue || (eRelationshipStatus?) r.r_type == type) && (!accepted.HasValue || r.r_accepted == accepted) select new Relationship { id = r.r_id, fromUsername = r.u_username, toUsername = r.r_username, accepted = r.r_accepted, timestamp = r.r_timestamp, type = (eRelationshipStatus) r.r_type, pendingType = (eRelationshipStatus) r.r_pendingtype }); return relationships.ToArray(); } }
public static void AddAnswer(int pollID, string username, int choiceID) { using (var db = new ezFixUpDataContext()) { var pollAnswer = new Model.PollAnswer { p_id = pollID, pc_id = choiceID, u_username = username }; db.PollAnswers.InsertOnSubmit(pollAnswer); db.SubmitChanges(); } }
public void Save() { if (detailsXML != null && detailsXML.Length > 4000) { Global.Logger.LogWarning(String.Format("Event {0} was not saved because it is more than 4000 chars", id)); return; } if (fromUsername != null) { User user = null; try { user = User.Load(fromUsername); } catch (NotFoundException) { return; } switch (type) { case eType.FriendBirthday: case eType.FriendUpdatedProfile: case eType.FriendAttendingEvent: case eType.NewGroupPhoto: case eType.FriendEntersContest: case eType.FriendJoinedGroup: case eType.FriendLeftGroup: case eType.NewPhotoComment: case eType.NewFriendPhoto: case eType.NewFriendVideoUpload: case eType.NewFriendBlogPost: case eType.NewFriendGroup: case eType.NewFriendFriend: case eType.NewGroupTopic: // case eType.NewGroupEvent: // if (!IsEventsSettingEnabled(type, user)) return; // break; case eType.NewProfileComment: case eType.FriendUpdatedStatus: case eType.TaggedOnPhoto: case eType.NewFriendAudioUpload: case eType.NewFriendYouTubeUpload: case eType.RemovedFriendFriend: case eType.NewFriendRelationship: case eType.RemovedFriendRelationship: if (!IsEventsSettingEnabled(type, user)) return; break; } using (var db = new ezFixUpDataContext()) { var result = db.SaveEvent(id, (int?)type, fromUsername, fromGroup, detailsXML, date); if (id == null) id = result.First().Id; } } }
public static void Delete(int id) { using (var db = new ezFixUpDataContext()) { var comments = db.EventComments.Where(c => c.e_id == id); db.EventComments.DeleteAllOnSubmit(comments); Model.Event ev = db.Events.Single(e => e.e_id == id); db.Events.DeleteOnSubmit(ev); db.SubmitChanges(); } }
public void Save() { using (var db = new ezFixUpDataContext()) { var relationship = new Model.Relationship() { r_id = id, u_username = fromUsername, r_username = toUsername, r_type = (int) type, r_pendingtype = pendingType.HasValue ? (int?) pendingType : null, r_accepted = accepted, r_timestamp = timestamp }; if (id == 0) { db.Relationships.InsertOnSubmit(relationship); } else { db.Relationships.Attach(relationship, true); } db.SubmitChanges(); if (id == 0) id = relationship.r_id; } }
public static Event[] Fetch(string fromUsername) { using (var db = new ezFixUpDataContext()) { var events = from e in db.Events where e.e_fromusername == fromUsername select new Event { id = e.e_id, fromUsername = e.e_fromusername, type = (eType)e.e_type, fromGroup = e.e_fromgroup, detailsXML = e.e_details, date = e.e_date }; return events.OrderByDescending(e => e.date).ToArray(); } }
public static Poll[] Fetch() { using (var db = new ezFixUpDataContext()) { return (from p in db.Polls select new Poll { ID = p.p_id, Title = p.p_title, StartDate = p.p_startdate, EndDate = p.p_enddate, ShowResultsUntil = p.p_showresultsuntil }).ToArray(); } }
private static void Delete(int? id, string fromUsername, string toUsername, bool? accepted) { using (var db = new ezFixUpDataContext()) { var relationship = db.Relationships.Where( r => (!id.HasValue || r.r_id == id) && (fromUsername == null || r.u_username == fromUsername) && (toUsername == null || r.r_username == toUsername) && (!accepted.HasValue || r.r_accepted == accepted)).ToArray(); db.Relationships.DeleteAllOnSubmit(relationship); db.SubmitChanges(); } }
public static void Delete(int? id, string fromUsername, int? fromGroup, eType? type, DateTime? date) { using (var db = new ezFixUpDataContext()) { var events = from e in db.Events where (!id.HasValue || e.e_id == id) && (!type.HasValue || e.e_type == (long?)type) && (fromUsername == null || e.e_fromusername == fromUsername) && (!fromGroup.HasValue || e.e_fromgroup == fromGroup) && (!date.HasValue || e.e_date.Date == date) select e; foreach (var ev in events) { db.EventComments.DeleteAllOnSubmit(ev.EventComments); } db.Events.DeleteAllOnSubmit(events); db.SubmitChanges(); } }
/// <summary> /// Deletes this instance. /// </summary> public void Delete() { using (var db = new ezFixUpDataContext()) { var photoNote = db.PhotoNotes.Single(n => n.pn_id == Id); db.PhotoNotes.DeleteOnSubmit(photoNote); db.SubmitChanges(); } }
public static string[] FetchRequests(string toUsername) { using (var db = new ezFixUpDataContext()) { var result = from r in db.Relationships where (r.r_username == toUsername && (!r.r_accepted || r.r_pendingtype != null)) select r.u_username; return result.ToArray(); } }