public List<Statistics> GetAllStatistics(int projectId)
 {
     using (var context = new ProjectManagerDBEntities())
     {
         return context.Statistics.Where(s => s.ProjectId == projectId).ToList();
     }
 }
 public Statistics GetStatistics(int statisticsId)
 {
     using (var context = new ProjectManagerDBEntities())
     {
         return context.Statistics.SingleOrDefault(s => s.Id == statisticsId);
     }
 }
        public void CreateNewProject(int userId, ProjectData data)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                var project = new Project()
                {
                    Name = data.Name,
                    Description = data.Description,
                    Deadline = data.Deadline,
                    Done = data.Done,
                    CreatedDate = DateTime.Now
                };

                context.Project.Add(project);

                context.Role.Add(new Role()
                {
                    ProjectUserId = userId,
                    Type = new ProjectUserManager().GetLeaderId(),
                    Project = project
                });

                context.SaveChanges();
            }
        }
        public void FinishProject(int projectId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                var project = context.Project.First(p => p.Id == projectId);

                project.Done = true;

                context.SaveChanges();
            }
        }
        public void Delete(int statisticsId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                var statistics = context.Statistics.SingleOrDefault(s => s.Id == statisticsId);

                if (statistics != null)
                {
                    context.Statistics.Remove(statistics);
                    context.SaveChanges();
                }
            }
        }
        public void TogglePublic(int statisticsId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                var statistics = context.Statistics.SingleOrDefault(s => s.Id == statisticsId);

                if (statistics != null)
                {
                    statistics.Public = !statistics.Public;
                    context.SaveChanges();
                }
            }
        }
Example #7
0
        public void AcceptAppliance(int taskId, int userId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                var assignment = context.Assignment.FirstOrDefault(
                    a => a.TaskId == taskId && a.ProjectUserId == userId && a.Accepted == false);

                if (assignment != null)
                {
                    assignment.Accepted = true;
                    context.SaveChanges();
                }
            }
        }
        public int AddUserAndReturnId(string userName)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                var user = new ProjectUser()
                {
                    UserName = userName
                };

                context.ProjectUser.Add(user);
                context.SaveChanges();

                return user.Id;
            }
        }
        public void AddComment(CommentData data)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                context.Comment.Add(new Comment()
                {
                    ProjectUserId = data.ProjectUserId,
                    TaskId = data.TaskId,
                    Content = data.Content,
                    Timestamp = data.Timestamp
                });

                context.SaveChanges();
            }
        }
Example #10
0
        public void AcceptStateChange(int taskId, int userId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                var change = context.TaskStateChange.FirstOrDefault(
                    a => a.TaskId == taskId && a.ProjectUserId == userId && a.Accepted == false);

                var task = context.Task.First(t => t.Id == taskId);

                if (change != null)
                {
                    change.Accepted = true;
                    task.State = change.TaskState;
                    context.SaveChanges();
                }
            }
        }
        public void AddNewStatistics(StatisticsData data)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                Statistics stat = new Statistics()
                {
                    ProjectId = data.ProjectId,
                    Name = data.Name,
                    CreatedDate = data.CreatedDate,
                    Public = data.Public,
                    Chart = data.ImageContent
                };

                context.Statistics.Add(stat);
                context.SaveChanges();
            }
        }
Example #12
0
        public void AddNewTask(int projectId, TaskData data)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                int newId = GetNewStateId();

                context.Task.Add(new Task()
                    {
                        Name = data.Name,
                        Description = data.Description,
                        Priority = data.Priority,
                        MaxDevelopers = data.MaxDevelopers,
                        EstimatedWorkHours = data.EstimatedWorkHours,
                        ProjectId = projectId,
                        State = newId
                    });

                context.SaveChanges();
            }
        }
        public void AddDeveloperToProject(int userId, int projectId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                int developerId = GetDeveloperId();
                var roles = context.Role.Where(
                    r => r.ProjectId == projectId && r.ProjectUserId == userId && r.Type == developerId);

                if (roles.Count() == 0)
                {
                    context.Role.Add(new Role()
                    {
                        ProjectUserId = userId,
                        ProjectId = projectId,
                        Type = developerId
                    });

                    context.SaveChanges();
                }
            }
        }
Example #14
0
        public void AddDeveloperToTask(int userId, int taskId, bool accepted)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                int developerId = new ProjectUserManager().GetDeveloperId();
                var assignments = context.Assignment.Where(
                    a => a.TaskId == taskId && a.ProjectUserId == userId);

                if (assignments.Count() == 0)
                {
                    context.Assignment.Add(new Assignment()
                    {
                        ProjectUserId = userId,
                        TaskId = taskId,
                        Accepted = accepted
                    });

                    context.SaveChanges();
                }
            }
        }
        public List<ProjectUser> GetUsersForProject(int projectId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                var roles = context.Role.Where(
                    r => r.ProjectId == projectId);

                return context.ProjectUser.Where(u => roles.Any(r => r.ProjectUserId == u.Id)).ToList();
            }
        }
        public List<ProjectUser> GetAddableOrRemovableDevelopers(int projectId, int leaderId, bool addable)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                List<ProjectUser> result = new List<ProjectUser>();

                var project = context.Project.First(p => p.Id == projectId);

                foreach (var user in context.ProjectUser.Where(u => u.Id != leaderId))
                {
                    var roles = project.Role.Where(r => r.ProjectUserId == user.Id);

                    if ((roles.Count() == 0) == addable)
                    {
                        result.Add(user);
                    }
                }

                return result;
            }
        }
Example #17
0
        public bool AddWorkTime(WorktimeData data)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                var relatedWorkTimes = context.Worktime.Where(w => w.TaskId == data.TaskId &&
                    w.ProjectUserId == data.ProjectUserId);
                var overLappingWorkTimes = relatedWorkTimes.Where(w =>
                    (data.StartTime > w.StartTime && data.StartTime < w.EndTime) ||
                    (data.EndTime > w.StartTime && data.EndTime < w.EndTime));

                if (overLappingWorkTimes.Count() == 0)
                {

                    context.Worktime.Add(new Worktime()
                    {
                        ProjectUserId = data.ProjectUserId,
                        TaskId = data.TaskId,
                        StartTime = data.StartTime,
                        EndTime = data.EndTime
                    });

                    context.SaveChanges();
                    return true;
                }

                return false;
            }
        }
Example #18
0
        public void RemoveDeveloperFromTask(int userId, int taskId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                int developerId = new ProjectUserManager().GetDeveloperId();
                var assignment = context.Assignment.FirstOrDefault(
                    a => a.TaskId == taskId && a.ProjectUserId == userId);

                if (assignment != null)
                    context.Assignment.Remove(assignment);

                context.SaveChanges();
            }
        }
Example #19
0
        public bool IsCommented(int taskId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                var task = context.Task.First(t => t.Id == taskId);

                return task.Comment.Count > 0;
            }
        }
        public void RemoveDeveloperFromProject(int userId, int projectId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                int developerId = GetDeveloperId();
                var role = context.Role.FirstOrDefault(
                    r => r.ProjectId == projectId && r.ProjectUserId == userId && r.Type == developerId);

                if (role != null)
                    context.Role.Remove(role);

                context.SaveChanges();
            }
        }
 public Project GetProject(int id)
 {
     using (var context = new ProjectManagerDBEntities())
     {
         return context.Project.First(p => p.Id == id);
     }
 }
Example #22
0
        public void UnfinishTask(int taskId, int userId, string reason, bool accepted)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                int activeId = GetActiveStateId();

                var task = context.Task.First(t => t.Id == taskId);

                if (accepted)
                    task.State = activeId;

                context.TaskStateChange.Add(new TaskStateChange()
                {
                    ProjectUserId = userId,
                    Timestamp = DateTime.Now,
                    TaskId = taskId,
                    TaskState = activeId,
                    Accepted = accepted,
                    Reason = reason != string.Empty ? reason : null
                });

                context.SaveChanges();
            }
        }
Example #23
0
 public List<Task> GetUnassignedTasks(int projectId)
 {
     using (var context = new ProjectManagerDBEntities())
     {
         return context.Task.Where(t => t.ProjectId == projectId &&
             t.Assignment.Count == 0).ToList();
     }
 }
Example #24
0
        public List<ProjectUser> GetUsersForTask(int taskId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                List<ProjectUser> result = new List<ProjectUser>();

                var userIds = context.Assignment.Where(a => a.TaskId == taskId &&
                    a.Accepted == true).Select(a => a.ProjectUserId);
                var users = context.ProjectUser;

                foreach (var u in users)
                {
                    if (userIds.Contains(u.Id))
                        result.Add(u);
                }

                return result;
            }
        }
        public ProjectUser GetProjectLeader(int projectId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                int leaderId = GetLeaderId();

                var leaderRole = context.Role.First(r => r.ProjectId == projectId && r.Type == leaderId);

                return context.ProjectUser.First(u => u.Id == leaderRole.ProjectUserId);
            }
        }
 public List<Project> GetProjectsForUser(int userId)
 {
     using (var context = new ProjectManagerDBEntities())
     {
         return context.Project.Where(p => p.Role.Any(r => r.ProjectUserId == userId)).ToList();
     }
 }
 public bool IsDone(int projectId)
 {
     using (var context = new ProjectManagerDBEntities())
     {
         return context.Project.First(p => p.Id == projectId).Done;
     }
 }
        public bool IsLeader(int userId, int projectId)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                int leaderId = GetLeaderId();

                var leaderRoles = context.Role.Where(r => r.ProjectId == projectId &&
                        r.ProjectUserId == userId && r.Type == leaderId);

                return leaderRoles.Count() == 1;
            }
        }
 public ProjectUser GetUser(int id)
 {
     using (var context = new ProjectManagerDBEntities())
     {
         return context.ProjectUser.First(u => u.Id == id);
     }
 }
Example #30
0
        public void RestoreTask(int taskId, int userId, string reason)
        {
            using (var context = new ProjectManagerDBEntities())
            {
                int newId = GetNewStateId();
                int activeId = GetActiveStateId();

                var task = context.Task.First(t => t.Id == taskId);

                var workTimes = context.Worktime.Where(w => w.TaskId == taskId);

                //if (workTimes.Count() > 0)
                //    task.State = activeId;
                //else
                    task.State = newId;

                context.TaskStateChange.Add(new TaskStateChange()
                {
                    ProjectUserId = userId,
                    Timestamp = DateTime.Now,
                    TaskId = taskId,
                    TaskState = task.State,
                    Accepted = true,
                    Reason = reason != string.Empty ? reason : null
                });

                context.SaveChanges();
            }
        }