protected void Page_Load(object sender, EventArgs e) { WidgetSettings = SettingsManager.Instance.LoadSettingsFor <ProjectsWidgetSettings>(SecurityContext.CurrentAccount.ID); ShowFollowingProjects = WidgetSettings.ShowFollowingProjects; ShowFollowingTasks = WidgetSettings.ShowFollowingTasks; var taskFilter = new TaskFilter { SortBy = "deadline", SortOrder = true, MyProjects = true, TaskStatuses = new List <TaskStatus> { TaskStatus.Open } }; if (WidgetSettings.ShowOnlyMyTasks) { taskFilter.ParticipantId = SecurityContext.CurrentAccount.ID; } tasksInMyProjects = TaskEngine.GetByFilter(taskFilter); var myProjects = new List <Project>(tasksInMyProjects.Select(r => r.Project).Distinct().Take(WidgetSettings.MyProjectsCount)); if (!tasksInMyProjects.Any()) { myProjects.AddRange(RequestContext.GetCurrentUserProjects().Take(WidgetSettings.MyProjectsCount)); } IsMyProjectsExist = myProjects.Any(); MyProjectsRepeater.DataSource = myProjects.OrderBy(r => r.Title); MyProjectsRepeater.DataBind(); if (ShowFollowingProjects) { var followingProjects = new List <Project>(RequestContext.GetCurrentUserFollowingProjects().Take(WidgetSettings.FollowingProjectsCount)); IsFollowingProjectsExist = followingProjects.Any(); if (IsFollowingProjectsExist) { FollowingProjectsRepeater.DataSource = followingProjects; FollowingProjectsRepeater.DataBind(); } } }