protected void Page_Load(object sender, EventArgs e) { _hintPopup.Options.IsPopup = true; _hintPopupTaskRemove.Options.IsPopup = true; _newLinkError.Options.IsPopup = true; SubtasksCount = Task.SubTasks.Count; CanEditTask = ProjectSecurity.CanEdit(Task); CanCreateSubtask = ProjectSecurity.CanCreateSubtask(Task); CanCreateTimeSpend = ProjectSecurity.CanCreateTimeSpend(Task); CanDeleteTask = ProjectSecurity.CanDelete(Task); InitAttachments(); InitCommentBlock(commentList, Task); var timeList = Page.EngineFactory.TimeTrackingEngine.GetByTask(Task.ID); TaskTimeSpend = timeList.Sum(timeSpend => timeSpend.Hours).ToString(); TaskTimeSpend = TaskTimeSpend.Replace(',', '.'); var taskCount = Page.EngineFactory.CommentEngine.Count(Task); CommentsCountTitle = taskCount != 0 ? string.Format("({0})", taskCount.ToString(CultureInfo.InvariantCulture)) : ""; }
public static List <ProjectCommonModule> GetModules(Project project) { var modules = new List <ProjectCommonModule> { new MilestonesModule(project), new TasksModule(project), new ProjectTeamModule(project) }; if (ProjectSecurity.CanReadFiles(project)) { modules.Add(new DocumentsModule(project)); } if (ProjectSecurity.CanReadMessages(project)) { modules.Add(new MessagesModule(project)); } if (ProjectSecurity.CanCreateTimeSpend(project)) { modules.Add(new TimeTrackingModule(project)); } var crmEnabled = WebItemManager.Instance[new Guid("6743007C-6F95-4d20-8C88-A8601CE5E76D")]; if (crmEnabled != null && !crmEnabled.IsDisabled() && ProjectSecurity.CanReadContacts(project)) { modules.Add(new ContactsModule(project)); } return(modules.OrderBy(r => r.Context.DefaultSortOrder).ToList()); }
protected void Page_Load(object sender, EventArgs e) { Utility.RegisterTypeForAjax(typeof(TaskDescriptionView), Page); _hintPopup.Options.IsPopup = true; _hintPopupTaskRemove.Options.IsPopup = true; _newLinkError.Options.IsPopup = true; IsMobile = MobileDetector.IsRequestMatchesMobile(Context); CanReadFiles = ProjectSecurity.CanReadFiles(Task.Project); CanEditTask = ProjectSecurity.CanEdit(Task); CanCreateSubtask = ProjectSecurity.CanCreateSubtask(Task); CanCreateTimeSpend = ProjectSecurity.CanCreateTimeSpend(Task); CanDeleteTask = ProjectSecurity.CanDelete(Task); SubtasksCount = Task.SubTasks.Count; if (CanReadFiles) { InitAttachments(); } InitCommentBlock(); var timeList = Global.EngineFactory.GetTimeTrackingEngine().GetByTask(Task.ID); TaskTimeSpend = timeList.Sum(timeSpend => timeSpend.Hours).ToString(); TaskTimeSpend = TaskTimeSpend.Replace(',', '.'); }
public TaskWrapper(Task task) { Id = task.ID; Title = task.Title; Description = task.Description; Status = (int)task.Status; if (Status > 2) { Status = 1; } if (task.Responsibles != null) { Responsibles = task.Responsibles.Select(EmployeeWraper.Get).OrderBy(r => r.DisplayName).ToList(); } Deadline = (task.Deadline == DateTime.MinValue ? null : new ApiDateTime(task.Deadline, TimeZoneInfo.Local)); Priority = task.Priority; ProjectOwner = new SimpleProjectWrapper(task.Project); MilestoneId = task.Milestone; Created = (ApiDateTime)task.CreateOn; CreatedBy = EmployeeWraper.Get(task.CreateBy); Updated = (ApiDateTime)task.LastModifiedOn; StartDate = task.StartDate.Equals(DateTime.MinValue) ? null : (ApiDateTime)task.StartDate; if (task.CreateBy != task.LastModifiedBy) { UpdatedBy = EmployeeWraper.Get(task.LastModifiedBy); } if (task.SubTasks != null) { Subtasks = task.SubTasks.Select(x => new SubtaskWrapper(x, task)).ToList(); } Progress = task.Progress; if (task.Milestone != 0 && task.MilestoneDesc != null) { Milestone = new SimpleMilestoneWrapper(task.MilestoneDesc); } if (task.Links.Any()) { Links = task.Links.Select(r => new TaskLinkWrapper(r)); } CanEdit = ProjectSecurity.CanEdit(task); CanCreateSubtask = ProjectSecurity.CanCreateSubtask(task); CanCreateTimeSpend = ProjectSecurity.CanCreateTimeSpend(task); CanDelete = ProjectSecurity.CanDelete(task); CanReadFiles = ProjectSecurity.CanReadFiles(task.Project); }
public static bool CanCreateTime(bool checkConreteProject = false) { if (checkConreteProject && IsInConcreteProject) { var project = GetCurrentProject(); var taskCount = Global.EngineFactory.GetProjectEngine().GetTaskCount(project.ID, null); return(taskCount > 0 && ProjectSecurity.CanCreateTimeSpend(project)); } return(CanCreate(ProjectSecurity.CanCreateTimeSpend, false) && Global.EngineFactory.GetTaskEngine().GetByFilterCount(new TaskFilter()) > 0); }
public static bool CanCreateTime(bool checkConreteProject = false) { if (checkConreteProject && IsInConcreteProject) { var project = GetCurrentProject(); var taskCount = Global.EngineFactory.GetProjectEngine().GetTaskCount(project.ID, null); return(project.Status != ProjectStatus.Closed && taskCount > 0 && ProjectSecurity.CanCreateTimeSpend(project)); } return(CanCreate(ProjectSecurity.CanCreateTimeSpend, false)); }
public bool CanCreateTime(bool checkConreteProject = false) { if (checkConreteProject && IsInConcreteProject) { var project = GetCurrentProject(); var taskCount = engineFactory.ProjectEngine.GetTaskCount(project.ID, null); return(taskCount > 0 && ProjectSecurity.CanCreateTimeSpend(project)); } return(CanCreate(ProjectSecurity.CanCreateTimeSpend, false) && AllTasksCount > 0); }
public ProjectSecurityInfo(Project project) { CanCreateMilestone = ProjectSecurity.CanCreateMilestone(project); CanCreateMessage = ProjectSecurity.CanCreateMessage(project); CanCreateTask = ProjectSecurity.CanCreateTask(project); CanCreateTimeSpend = ProjectSecurity.CanCreateTimeSpend(project); CanEditTeam = ProjectSecurity.CanEditTeam(project); CanReadFiles = ProjectSecurity.CanReadFiles(project); CanReadMilestones = ProjectSecurity.CanReadMilestones(project); CanReadMessages = ProjectSecurity.CanReadMessages(project); CanReadTasks = ProjectSecurity.CanReadTasks(project); IsInTeam = ProjectSecurity.IsInTeam(project, SecurityContext.CurrentAccount.ID, false); CanLinkContact = ProjectSecurity.CanLinkContact(project); CanReadContacts = ProjectSecurity.CanReadContacts(project); }
public SimpleTaskWrapper(Task task) { ID = task.ID; Title = task.Title; Description = task.Description; Status = (int)task.Status; if (task.Responsibles != null) { Responsibles = task.Responsibles; } Deadline = (task.Deadline == DateTime.MinValue ? null : new ApiDateTime(task.Deadline, TimeZoneInfo.Local)); Priority = task.Priority; ProjectOwner = task.Project.ID; MilestoneId = task.Milestone; Created = (ApiDateTime)task.CreateOn; CreatedBy = task.CreateBy; Updated = (ApiDateTime)task.LastModifiedOn; StartDate = task.StartDate.Equals(DateTime.MinValue) ? null : (ApiDateTime)task.StartDate; if (task.CreateBy != task.LastModifiedBy) { UpdatedBy = task.LastModifiedBy; } if (task.SubTasks != null) { SubtasksCount = task.SubTasks.Count(r => r.Status == TaskStatus.Open); // somehow don't work :( } Progress = task.Progress; MilestoneId = task.Milestone; if (task.Links.Any()) { Links = task.Links.Select(r => new TaskLinkWrapper(r)); } CanEdit = ProjectSecurity.CanEdit(task); CanCreateSubtask = ProjectSecurity.CanCreateSubtask(task); CanCreateTimeSpend = ProjectSecurity.CanCreateTimeSpend(task); CanDelete = ProjectSecurity.CanDelete(task); }
private void RenderContentForTimer() { var participantId = Guid.Empty; if (!WebItemSecurity.IsProductAdministrator(EngineFactory.ProductId, SecurityContext.CurrentAccount.ID)) { participantId = Participant.ID; } UserProjects = EngineFactory.ProjectEngine.GetByFilter(new TaskFilter { ProjectStatuses = new List <ProjectStatus> { ProjectStatus.Open }, SortBy = "title", SortOrder = true }).Where(r => r.TaskCountTotal > 0).ToList(); if (UserProjects.Any() && (Project == null || !UserProjects.Contains(Project))) { Project = UserProjects.First(); } var tasks = EngineFactory.TaskEngine.GetByProject(Project.ID, null, Participant.IsVisitor ? participantId : Guid.Empty).Where(r => ProjectSecurity.CanCreateTimeSpend(r)).ToList(); OpenUserTasks = tasks.Where(r => r.Status == TaskStatus.Open).OrderBy(r => r.Title); ClosedUserTasks = tasks.Where(r => r.Status == TaskStatus.Closed).OrderBy(r => r.Title); Users = EngineFactory.ProjectEngine.GetProjectTeamExcluded(Project.ID) .OrderBy(r => DisplayUserSettings.GetFullUserName(r.UserInfo)) .Where(r => !r.UserInfo.IsVisitor()) .Where(r => !r.IsRemovedFromTeam || tasks.Any(t => t.Responsibles.Contains(r.ID))) .ToList(); if (!string.IsNullOrEmpty(Request.QueryString["taskId"])) { Target = int.Parse(Request.QueryString["taskId"]); } }
public bool CanCreateTime() { return(ProjectFat.GetTasks().Count(t => t.Status == TaskStatus.Open) > 0 && ProjectSecurity.CanCreateTimeSpend(ProjectFat.Project)); }
protected override IEnumerable <KeyValuePair <string, object> > GetClientVariables(HttpContext context) { var filter = new TaskFilter { SortBy = "title", SortOrder = true, ProjectStatuses = new List <ProjectStatus> { ProjectStatus.Open } }; var projects = Global.EngineFactory.ProjectEngine.GetByFilter(filter) .Select(pr => new { id = pr.ID, title = pr.Title, responsible = pr.Responsible, //created = (ApiDateTime) pr.CreateOn, security = new { canCreateMilestone = ProjectSecurity.CanCreateMilestone(pr), canCreateMessage = ProjectSecurity.CanCreateMessage(pr), canCreateTask = ProjectSecurity.CanCreateTask(pr), canCreateTimeSpend = ProjectSecurity.CanCreateTimeSpend(pr), canEditTeam = ProjectSecurity.CanEditTeam(pr), canReadFiles = ProjectSecurity.CanReadFiles(pr), canReadMilestones = ProjectSecurity.CanReadMilestones(pr), canReadMessages = ProjectSecurity.CanReadMessages(pr), canReadTasks = ProjectSecurity.CanReadTasks(pr), isInTeam = ProjectSecurity.IsInTeam(pr, SecurityContext.CurrentAccount.ID, false), canLinkContact = ProjectSecurity.CanLinkContact(pr) }, isPrivate = pr.Private, status = pr.Status, taskCountTotal = pr.TaskCountTotal }).ToList(); var tags = Global.EngineFactory.TagEngine.GetTags().Select(r => new { value = r.Key, title = r.Value.HtmlEncode() }).ToList(); var result = new List <KeyValuePair <string, object> >(1) { RegisterObject( new { Global.EntryCountOnPage, Global.VisiblePageCount, Projects = new { response = projects }, Tags = new { response = tags }, ProjectsCount = Global.EngineFactory.ProjectEngine.GetByFilterCount(new TaskFilter()) }) }; filter = new TaskFilter { SortBy = "deadline", SortOrder = false, MilestoneStatuses = new List <MilestoneStatus> { MilestoneStatus.Open } }; var milestones = Global.EngineFactory.MilestoneEngine.GetByFilter(filter) .Select(m => new { id = m.ID, title = m.Title, deadline = SetDate(m.DeadLine, TimeZoneInfo.Local), projectOwner = new { id = m.Project.ID }, status = (int)m.Status }).ToList(); result.Add(RegisterObject(new { Milestones = new { response = milestones } })); return(result); }
public bool CanCreateTimeSpend() { return(Global.ModuleManager.IsVisible(ModuleType.TimeTracking) && ProjectSecurity.CanCreateTimeSpend(Task.Project)); }