public void Bind() { if (RatingId.HasValue && User.LoggedInUser != null) { var userRating = UserRating; if (userRating == null) { userRating = new UserRating { UserId = User.LoggedInUser.UserId, RatingId = Rating.RatingId, Value = 0 }; db.UserRatings.InsertOnSubmit(userRating); db.SubmitChanges(); } rating.CurrentRating = userRating.Value; if (userRating.Value == 0) { descMessage.InnerText = "Rate it!"; } else { descMessage.InnerText = String.Format("Current Vote {0}", userRating.Value); } Visible = true; } else { Visible = false; } }
protected void newTeamForm_ItemUpdating(object sender, FormViewUpdateEventArgs e) { e.NewValues["Scope"] = newTeamForm.FindControl <DropDownList>("scope").SelectedIndex; e.NewValues["Status"] = newTeamForm.FindControl <DropDownList>("privacy").SelectedIndex; FileUpload avatar = newTeamForm.FindControl <FileUpload>("avatarupload"); if (avatar.HasFile) { string extension = Path.GetExtension(avatar.FileName); var avatarImage = System.Drawing.Image.FromStream(avatar.FileContent); var imageData = avatarImage.Resize(96, 96).ToByteArray(extension); //change default pic if (Team.PictureId != Picture.TeamDefaultPicture) { //delete old picture var current = db.Pictures.SingleOrDefault(p => p.PictureId == Team.PictureId); current.Data = imageData; db.SubmitChanges(); } else { e.NewValues["PictureId"] = Picture.CreateFrom(Team.Name + "'s Avatar", imageData); } } }
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { try { FudgeDataContext db = new FudgeDataContext(); var runs = db.Runs.Where(r => r.Status != RunStatus.Done && r.Status != RunStatus.CompilationError); foreach (Run run in runs) { run.Status = RunStatus.InternalError; } db.SubmitChanges(); } catch (Exception) { EventLog.WriteEntry("Fudge Framework", "Database exception in unhandled exception handler", EventLogEntryType.Error, 1, 1); } EventLog.WriteEntry("Fudge Framework", e.ExceptionObject.ToString(), EventLogEntryType.Error, 1, 1); ProcessStartInfo restarter = new ProcessStartInfo(Assembly.GetExecutingAssembly().GetName().Name + ".exe"); restarter.Domain = "MILK"; restarter.UserName = "******"; restarter.Password = new SecureString(); restarter.Password.Append("fxcompiler"); restarter.UseShellExecute = false; restarter.CreateNoWindow = false; restarter.ErrorDialog = true; EventLog.WriteEntry("Fudge Framework", "Attempting to restart " + restarter.FileName, EventLogEntryType.Information, 2, 0); Process.Start(restarter); }
protected void TagProblem(object sender, EventArgs e) { if (TagIds.Count == 0) { errorTagging.Show(); } else { foreach (var tagId in TagIds) { if (!CurrentProblem.ProblemTags.Any(p => p.UserId == FudgeUser.UserId && p.TagId == tagId)) { db.ProblemTags.InsertOnSubmit(new ProblemTag { ProblemId = CurrentProblem.ProblemId, TagId = tagId, UserId = FudgeUser.UserId }); } } db.SubmitChanges(); TagIds.Clear(); tagProblemPanel.Visible = false; errorTagging.Hide(); tagTip.Show(); } }
protected void Posts_ItemInserting(object sender, FormViewInsertEventArgs e) { var textBox = insertPost.FindControl <TextBox>("postBody"); e.Cancel = String.IsNullOrEmpty(textBox.Text) || Fudge.Framework.Database.User.LoggedInUser == null; if (!e.Cancel) { //add rating for this post var rating = new Rating { Sum = 0, Count = 0 }; db.Ratings.InsertOnSubmit(rating); db.SubmitChanges(); e.Values["RatingId"] = rating.RatingId; e.Values["TopicId"] = Topic.TopicId; e.Values["Timestamp"] = DateTime.Now.ToUniversalTime(); e.Values["Visible"] = true; e.Values["Title"] = Topic.Title; e.Values["UserId"] = Fudge.Framework.Database.User.LoggedInUser.UserId; } else { var error = insertPost.FindControl <HtmlGenericControl>("insertError"); error.Visible = true; } }
/// <summary> /// Creates the relation => (FriendId, UserId) /// </summary> /// <param name="friendId"></param> public static void AddFriend(this User user, int friendId) { FudgeDataContext db = new FudgeDataContext(); if (user.IsRejected(friendId)) { var friendRelation = db.Friends.SingleOrDefault(f => f.UserId == friendId && f.FriendId == user.UserId); db.Friends.DeleteOnSubmit(friendRelation); } //add a new friend relation db.Friends.InsertOnSubmit(new Friend { UserId = user.UserId, FriendId = friendId, Status = FriendStatus.Pending }); var friend = User.GetUserById(friendId); //send friend request email Email.AddFriendEmail.Send(friend, "Fudge Friend Request", Util.BaseUrl, user.FullName); db.SubmitChanges(); }
protected void SignUp_Click(object sender, EventArgs e) { //only let users register if contest has not started if (!Contest.IsRunning) { db.ContestUsers.InsertOnSubmit(new ContestUser { ContestId = Contest.ContestId, UserId = FudgeUser.UserId }); db.SubmitChanges(); //show tooltip contestTip.Text = "Successfully registered for the contest"; contestTip.Show(); contestView.DataBind(); contestUsers.DataBind(); } else { //otherwise tell the user they are too late contestTip.RenderAsError = true; contestTip.Text = "Sorry the contest is running!"; contestTip.Show(); } }
public void UpdatePoints() { FudgeDataContext db = new FudgeDataContext(); foreach (Run run in Runs) { run.UpdatePoints(); } var contestUsers = db.ContestUsers.Where(cu => cu.ContestId == ContestId); foreach (ContestUser contestUser in contestUsers) { contestUser.Points = db.Runs.Where(r => r.ContestId == ContestId && r.UserId == contestUser.UserId).Sum(r => r.Points) ?? 0; } var rankedContestUsers = GetRankingsList(contestUsers, c => c.Points ?? 0); foreach (RankTuple <ContestUser> rankedContestUser in rankedContestUsers) { rankedContestUser.Item.Rank = rankedContestUser.Rank; } db.SubmitChanges(); }
public static void Notify(Notification notification) { FudgeDataContext db = new FudgeDataContext(); db.Notifications.InsertOnSubmit(notification); db.SubmitChanges(); }
public static void Update(DateTime timestamp, bool updateStandings) { FudgeDataContext db = new FudgeDataContext(@"Data Source=163.118.202.41,81;Initial Catalog=fudge;Persist Security Info=True;User ID=webuser;Password=webpassword"); double runAvgPopularity = GetAveragePopularity(db.Runs); double postAvgPopularity = GetAveragePopularity(db.Posts); foreach (User user in db.Users) { double userPoints = 0.0; userPoints += GetPoints(user.GoodRuns, runAvgPopularity); userPoints += GetPoints(user.Posts.Where(p => p.Rating.Count > 0), postAvgPopularity); userPoints += user.ReferralCount; user.Points = (int)Math.Round(userPoints); if (updateStandings) { db.Standings.InsertOnSubmit(new Standing { User = user, Points = user.Points, Timestamp = timestamp }); } } UpdateGlobalRanks(db); UpdateSchoolRanks(db); UpdateRegionRanks(db); db.SubmitChanges(); }
protected void newPost_ItemInserting(object sender, FormViewInsertEventArgs e) { Page.Validate(); e.Cancel = !Page.IsValid; if (!e.Cancel) { //create a new topic var newTopic = new Topic { ForumId = Int32.Parse(Request.QueryString["id"]), Visible = true, UserId = Fudge.Framework.Database.User.LoggedInUser.UserId, Timestamp = DateTime.Now.ToUniversalTime(), Status = 0, Title = e.Values["Title"].ToString() }; var newRating = new Rating { Sum = 0, Count = 0 }; //insert rating and topic for this post db.Ratings.InsertOnSubmit(newRating); db.Topics.InsertOnSubmit(newTopic); db.SubmitChanges(); //assign values to new post e.Values["RatingId"] = newRating.RatingId; e.Values["TopicId"] = newTopic.TopicId; e.Values["Timestamp"] = DateTime.Now.ToUniversalTime(); e.Values["Visible"] = true; e.Values["UserId"] = newTopic.UserId; } }
public static void UnSubscribeFrom(this User user, int topicId) { FudgeDataContext db = new FudgeDataContext(); var subscription = db.TopicSubscriptions.SingleOrDefault(s => s.UserId == user.UserId && s.TopicId == topicId); db.TopicSubscriptions.DeleteOnSubmit(subscription); db.SubmitChanges(); }
public void Initialize() { Console.WriteLine("[contest] Looking for a Judge module..."); foreach (IModule module in Host.Modules) { Judge = module as JudgeModule; if (Judge != null) { break; } } if (Judge == null) { Console.WriteLine("[contest] There is no Judge module loaded. Contest module will unload."); Dispose(); } else { Console.WriteLine("[contest] Contest module will use {0} as Judge.", Judge.Name); while (true) { DataContext = new FudgeDataContext(); // Get all contests that have ended and are waiting for deferred judging var contests = DataContext.Contests.Where(c => (c.Scoring & ContestScoring.DeferredJudging) == ContestScoring.DeferredJudging && c.EndTime < DateTime.UtcNow && c.Status != ContestStatus.Closed); foreach (Contest contest in contests) { Console.WriteLine("[contest] Judging contest {0}", contest.ContestId); foreach (ContestProblem problem in contest.ContestProblems) { var runs = problem.Problem.Runs.Where(p => p.ContestId == contest.ContestId); Console.WriteLine("[contest] Judging contest problem {0}", problem.Problem.Name); foreach (Run run in runs) { Thread judge = new Thread(Judge.Run); judge.Start(run.RunId); } } contest.Status = ContestStatus.Closed; DataContext.SubmitChanges(); } Thread.Sleep(30000); } } }
public static void ChangeUserStatus(this Team team, int userId, TeamUserStatus status) { FudgeDataContext db = new FudgeDataContext(); var teamUser = FindTeamUser(db, userId, team.TeamId); teamUser.Status = status; db.SubmitChanges(); }
public bool deletePost(string appKey, string postid, string username, string password, bool publish) { Topic topic = GetBlogPost(username, password, postid); //we can't delete posts with comments if (topic.Posts.Count > 1) { return(false); } //delete all posts for this topic db.Posts.DeleteAllOnSubmit(db.Posts.Where(p => p.TopicId == topic.TopicId)); //delete the topic itself db.Topics.DeleteOnSubmit(topic); db.SubmitChanges(); return(true); }
public static void SubscribeForReplies(this User user, int topicId) { FudgeDataContext db = new FudgeDataContext(); db.TopicSubscriptions.InsertOnSubmit(new TopicSubscription { TopicId = topicId, UserId = user.UserId }); db.SubmitChanges(); }
public static void RejectFriend(this User user, int friendId) { FudgeDataContext db = new FudgeDataContext(); //reject the user var friendRelation = db.Friends.Single(f => f.UserId == friendId && f.FriendId == user.UserId); friendRelation.Status = FriendStatus.Rejected; db.SubmitChanges(); }
protected void preference_SelectedIndexChanged(object sender, EventArgs e) { if (preference.SelectedIndex == 0) { User.OptionFlag |= (int)Option; } else { User.OptionFlag &= ~(int)Option; } db.SubmitChanges(); }
//creates a new rating and returns the id public static int NewRating() { FudgeDataContext db = new FudgeDataContext(); var rating = new Rating { Sum = 0, Count = 0 }; db.Ratings.InsertOnSubmit(rating); db.SubmitChanges(); return(rating.RatingId); }
public static int CreateFrom(string title, byte[] image) { FudgeDataContext db = new FudgeDataContext(); Picture newPic = new Picture { Data = new Binary(image), Title = title, }; db.Pictures.InsertOnSubmit(newPic); db.SubmitChanges(); return(newPic.PictureId); }
/// <summary> /// Deletes users from each other friend links i.e (Friend,User) and (User,Friend) /// </summary> /// <param name="friendId"></param> public static void RemoveFriend(this User user, int friendId) { FudgeDataContext db = new FudgeDataContext(); var userToFriend = db.Friends.Single(f => f.UserId == user.UserId && f.FriendId == friendId); var friendToUser = db.Friends.Single(f => f.UserId == friendId && f.FriendId == user.UserId); db.Friends.DeleteOnSubmit(userToFriend); db.Friends.DeleteOnSubmit(friendToUser); db.SubmitChanges(); }
public static void RequestJoinTeam(this User user, int teamId) { FudgeDataContext db = new FudgeDataContext(); db.TeamUsers.InsertOnSubmit(new TeamUser { Status = TeamUserStatus.Requested, TeamId = teamId, UserId = user.UserId, Title = null }); db.SubmitChanges(); }
public static void Update(DateTime timestamp, bool updateStandings) { FudgeDataContext db = new FudgeDataContext(); double runAvgPopularity = GetAveragePopularity(db.Runs); double postAvgPopularity = GetAveragePopularity(db.Posts); foreach (User user in db.Users) { double userPoints = 0.0; userPoints += GetPoints(user.GoodRuns, runAvgPopularity); userPoints += GetPoints(user.Posts.Where(p => p.Rating.Count > 0), postAvgPopularity); userPoints += user.ReferralCount; user.Points = (int)Math.Round(userPoints); } try { foreach (Entity entity in db.Entities) { var users = db.Users.Where(u => u.Affiliation.EntityId == entity.EntityId); entity.Points = users.Any() ? users.Sum(s => s.Points) : 0; } UpdateGlobalRanks(db); UpdateEntityRanks(db); if (updateStandings) { Console.WriteLine("[standings] updating standings table"); foreach (User user in db.Users) { db.Standings.InsertOnSubmit(new Standing { User = user, Points = user.Points, Timestamp = timestamp, Rank = user.GlobalRank }); } } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); } db.SubmitChanges(); }
public static void LeaveTeam(this User user, int teamId) { FudgeDataContext db = new FudgeDataContext(); var tu = (from u in db.TeamUsers where u.UserId == user.UserId && u.TeamId == teamId select u).FirstOrDefault(); db.TeamUsers.DeleteOnSubmit(tu); db.SubmitChanges(); //unsubscribe from this team user.UnSubscribeFrom(Team.GetTeamById(teamId).TopicId); }
protected void OnLinqDataSource1Inserted(object sender, LinqDataSourceStatusEventArgs e) { userFormView.Visible = false; notActivated.Visible = false; var registeredUser = e.Result as User; //update the topic id for this user var user = db.Users.SingleOrDefault(u => u.UserId == registeredUser.UserId); //set default flags user.OptionFlag |= (int)Fudge.Framework.Database.User.UserOptions.AutomaticallySubscribeToMyTopics; user.OptionFlag |= (int)Fudge.Framework.Database.User.UserOptions.AutomaticallySubscribeToTopicsIReplyTo; user.TopicId = Topic.CreateStackTopic(registeredUser.UserId, "Stack for UserId " + registeredUser.UserId); db.SubmitChanges(); if (Util.SendActivationEmail(registeredUser)) { //add activation cookie var cookie = new HttpCookie("activation_cookie"); cookie.Expires = DateTime.Now.AddDays(3); Response.Cookies.Add(cookie); if (Referrer != null) { Referrer.ReferralCount++; Referrer.AddFriend(registeredUser.UserId); db.SubmitChanges(); } regSuccess.Visible = true; } else { regFailed.Visible = true; } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { var user = db.Users.SingleOrDefault(u => u.ActivationCode == Request.QueryString["code"]); if (Request.Cookies["activation_cookie"] != null) { var cookie = Response.Cookies.Get("activation_cookie"); //make the cookie expire cookie.Expires = DateTime.Now.AddDays(-1); } Title += ".ActivateUser(" + user.FullName + ")"; //set this account as activated user.Status = UserStatus.Activated; //remove the activation code user.ActivationCode = null; //update the database db.SubmitChanges(); //first user to from a school if (user.School.Users.Count == 1) { db.NewsFeeds.InsertOnSubmit(new NewsFeed { Text = String.Format("<strong>{0} is the first user to join from {1}!</strong>", Html.LinkToProfile(user.UserId), Html.LinkToSchoolProfile(user.School.SchoolId)), Link = "http://fudge.fit.edu/Users/Profile/" + user.UserId, Timestamp = DateTime.UtcNow, Type = NewsFeedType.FirstUserFromSchool }); db.SubmitChanges(); } Email.NewUserEmail.SendToAdmin("New user joined Fudge!", user.FullName, user.School.Name); } }
public static int CreateStackTopic(int userId, string title) { FudgeDataContext db = new FudgeDataContext(); var topic = new Topic { ForumId = Forum.WallPostId, Status = 0, UserId = userId, Visible = false, Title = title, Timestamp = DateTime.UtcNow }; db.Topics.InsertOnSubmit(topic); db.SubmitChanges(); return(topic.TopicId); }
public static void InviteMember(this Team team, int userId) { FudgeDataContext db = new FudgeDataContext(); db.TeamUsers.InsertOnSubmit(new TeamUser { Status = TeamUserStatus.Invited, TeamId = team.TeamId, UserId = userId }); Notification.Notify(Notification.InviteToTeam(userId, team.TeamId)); db.SubmitChanges(); Email.NotifyTeamInvite.Send(User.GetUserById(userId), "Join " + team.Name + "!", User.LoggedInUser.FirstName, team.Name, team.TeamId); }
protected void closeMessage_Click(object sender, EventArgs e) { //hide the control Hide(); if (_close != null) { _close(this, EventArgs.Empty); } if (TipType.HasValue) { User.TooltipFlag &= ~(int)TipType; db.SubmitChanges(); } }
/// <summary> /// Approves relation (Friend, User) and adds (User, Friend) /// </summary> /// <param name="friendId"></param> public static void ApproveFriend(this User user, int friendId) { FudgeDataContext db = new FudgeDataContext(); //approve (FriendId, UserId) var friendRelation = db.Friends.Single(f => f.UserId == friendId && f.FriendId == user.UserId); friendRelation.Status = FriendStatus.Accepted; //add (UserId, FriendId) relation db.Friends.InsertOnSubmit(new Friend { FriendId = friendId, UserId = user.UserId, Status = FriendStatus.Accepted }); db.SubmitChanges(); }