Exemplo n.º 1
0
        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();
                }
            }
        }