public Project[] getProjectsForUser(string username)
 {
     using (var context = new ThemisContext())
     {
         var            workgroupCreator      = context.WorkGroups.Where(w => w.Creator.username.Equals(username)).Select(w => w.Name);
         var            workgroupScrumMaster  = context.WorkGroups.Where(w => w.ScrumMaster.username.Equals(username)).Select(w => w.Name);
         var            workgroupProductOwner = context.WorkGroups.Where(w => w.ProductOwner.username.Equals(username)).Select(w => w.Name);
         var            workgroupId           = context.WorkGroupDevelopers.Where(w => w.Developer.username.Equals(username)).Select(w => w.WorkGroupId).ToList();
         List <Project> projects = new List <Project>();
         foreach (string project in workgroupCreator)
         {
             projects.Add(assembleProject(project));
         }
         foreach (string project in workgroupScrumMaster)
         {
             projects.Add(assembleProject(project));
         }
         foreach (string project in workgroupProductOwner)
         {
             projects.Add(assembleProject(project));
         }
         foreach (int id in workgroupId)
         {
             var workgroup = context.WorkGroups.Find(id);
             projects.Add(assembleProject(workgroup.Name));
         }
         Project[] array = projects.ToArray();
         return(array);
     }
 }
 public WorkGroup assembleWorkGroup(string projectName)
 {
     using (var context = new ThemisContext())
     {
         var id            = context.WorkGroups.Where(w => w.Name.Equals(projectName)).Select(w => w.WorkGroupId).FirstOrDefault();
         var tempWorkGroup = context.WorkGroups.Find(id);
         var listOfUsers   = assembleDeveloper(id);
         if (tempWorkGroup != null)
         {
             User tempUser = context.WorkGroups.Where(w => w.WorkGroupId.Equals(id)).Select(w => w.Creator).FirstOrDefault();
             if (tempUser != null)
             {
                 tempWorkGroup.Creator = assembleUser(tempUser.username);
             }
             tempUser = context.WorkGroups.Where(w => w.WorkGroupId.Equals(id)).Select(w => w.ScrumMaster).FirstOrDefault();
             if (tempUser != null)
             {
                 tempWorkGroup.ScrumMaster = assembleUser(tempUser.username);
             }
             tempUser = context.WorkGroups.Where(w => w.WorkGroupId.Equals(id)).Select(w => w.ProductOwner).FirstOrDefault();
             if (tempUser != null)
             {
                 tempWorkGroup.ProductOwner = assembleUser(tempUser.username);
             }
             if (listOfUsers != null)
             {
                 tempWorkGroup.Developers = listOfUsers;
             }
         }
         return(tempWorkGroup);
     }
 }
Exemple #3
0
 public UserStory[] GetUserStoriesForProject(string projectName)
 {
     using (var context = new ThemisContext())
     {
         var userStories = context.UserStories.Where(u => u.Name.Equals(projectName)).ToArray();
         return(userStories);
     }
 }
 public string[] GetAllProjectNames()
 {
     using (var context = new ThemisContext())
     {
         var projectNames = context.Projects.Select(p => p.Name).ToArray();
         return(projectNames);
     }
 }
Exemple #5
0
 public BackLogItem getBacklogItemById(int id)
 {
     using (var context = new ThemisContext())
     {
         var item = context.BackLogItems.Find(id);
         return(item);
     }
 }
Exemple #6
0
 //Gets all sprint numbers for a specific project
 public int[] GetSprintNumbers(string projectName)
 {
     using (var context = new ThemisContext())
     {
         var sprintNumbers = context.Sprints.Where(s => s.Name.Equals(projectName)).Select(s => s.Number).ToArray();
         return(sprintNumbers);
     }
 }
 public string[] GetInvitationsByUser(string InvitedUser)
 {
     using (var context = new ThemisContext())
     {
         var invitations = context.Invitation.Where(i => i.username.Equals(InvitedUser)).Select(i => i.Name).ToArray();
         return(invitations);
     }
 }
 public User assembleUser(string username)
 {
     using (var context = new ThemisContext())
     {
         User user = context.Users.Find(username);
         return(user);
     }
 }
Exemple #9
0
 public int GetSprintId(string projectName, int sprintNumber)
 {
     using (var context = new ThemisContext())
     {
         var sprintId = context.Sprints.Where(s => s.Name.Equals(projectName) && s.Number.Equals(sprintNumber)).Select(s => s.SprintId).FirstOrDefault();
         return(sprintId);
     }
 }
Exemple #10
0
 public User retrieveUserByName(String username)
 {
     using (var context = new ThemisContext())
     {
         var user = context.Users.Find(username);
         return(user);
     }
 }
Exemple #11
0
 public string[] GetAllUsernames()
 {
     using (var context = new ThemisContext())
     {
         var usernames = context.Users.Select(u => u.username).ToArray();
         return(usernames);
     }
 }
Exemple #12
0
 public BackLogItem AssembleBackLogItem(string projectName, string description)
 {
     using (var context = new ThemisContext())
     {
         var backlogItem = context.BackLogItems.Where(b => b.Name.Equals(projectName) && b.Description.Equals(description)).FirstOrDefault();
         return(backlogItem);
     }
 }
Exemple #13
0
 public void addUser(User user)
 {
     using (var context = new ThemisContext())
     {
         context.Users.Add(user);
         context.SaveChanges();
     }
 }
Exemple #14
0
 public UserStory AddUserStory(UserStory story)
 {
     using (var context = new ThemisContext())
     {
         context.UserStories.Add(story);
         context.SaveChanges();
     }
     return(story);
 }
 public User DeleteInvitation(String projectName, String invitedUser)
 {
     using (var context = new ThemisContext())
     {
         var declinedInvitation = context.Invitation.Where(i => i.username.Equals(invitedUser) && i.Name.Equals(projectName));
         context.Invitation.Remove(declinedInvitation.FirstOrDefault());
         context.SaveChanges();
         return(context.Users.Find(invitedUser));
     }
 }
Exemple #16
0
 public Sprint CreateSprint(string projectName, int number)
 {
     using (var context = new ThemisContext())
     {
         context.Sprints.Add(new Sprint()
         {
             Name = projectName, Number = number
         });
         context.SaveChanges();
         return(GetSprint(projectName, number));
     }
 }
Exemple #17
0
 public BackLogItem[] GetBackLogItemsBySprint(string projectName, int sprintId)
 {
     using (var context = new ThemisContext())
     {
         var backlogs = context.BackLogItems.Where(b => b.Name.Equals(projectName) && b.SprintId.Equals(sprintId)).ToArray();
         foreach (BackLogItem backLog in backlogs)
         {
             backLog.WorksOnIt = context.Users.Find(context.BackLogItems.Where(b => b.Id.Equals(backLog.Id)).Select(b => b.WorksOnIt.username));
         }
         return(backlogs);
     }
 }
 public List <User> assembleDeveloper(int id)
 {
     using (var context = new ThemisContext())
     {
         var         listOfUsernames = context.WorkGroupDevelopers.Where(w => w.WorkGroupId.Equals(id)).Select(w => w.Developer.username);
         List <User> returnUserList  = new List <User>();
         foreach (string username in listOfUsernames)
         {
             returnUserList.Add(assembleUser(username));
         }
         return(returnUserList);
     }
 }
Exemple #19
0
 //Gets the sprint and puts the apropriate backlog items in it
 public Sprint GetSprint(string projectName, int sprintNumber)
 {
     using (var context = new ThemisContext())
     {
         var sprint       = context.Sprints.Where(s => s.Name.Equals(projectName) && s.Number.Equals(sprintNumber)).FirstOrDefault();
         var backlogItems = context.BackLogItems.Where(b => b.SprintId.Equals(sprint.SprintId)).ToList();
         foreach (BackLogItem backLog in backlogItems)
         {
             backLog.WorksOnIt = context.Users.Find(context.BackLogItems.Where(b => b.Id.Equals(backLog.Id)).Select(b => b.WorksOnIt.username).FirstOrDefault());
         }
         sprint.BacklogItems = backlogItems;
         return(sprint);
     }
 }
Exemple #20
0
 public BackLogItem EditDescription(int backlogId, string newDescription)
 {
     using (var context = new ThemisContext())
     {
         var backlog = context.BackLogItems.Find(backlogId);
         if (backlog != null)
         {
             backlog.Description = newDescription;
         }
         context.Entry(backlog).State = EntityState.Modified;
         context.SaveChanges();
         return(backlog);
     }
 }
Exemple #21
0
 public BackLogItem SetSprintId(int backlogId, int sprintId)
 {
     using (var context = new ThemisContext())
     {
         var backlogItem = context.BackLogItems.Find(backlogId);
         if (backlogItem != null)
         {
             backlogItem.SprintId = sprintId;
         }
         context.Entry(backlogItem).State = EntityState.Modified;
         context.SaveChanges();
         return(backlogItem);
     }
 }
 public User AddInvitation(string projectName, string invitedUser)
 {
     using (var context = new ThemisContext())
     {
         var invitation = new InvitationModel()
         {
             Name     = projectName,
             username = invitedUser
         };
         context.Invitation.Add(invitation);
         context.SaveChanges();
         return(context.Users.Find(invitedUser));
     }
 }
Exemple #23
0
 public Sprint AssembleSprintById(int?id)
 {
     using (var context = new ThemisContext())
     {
         var sprint       = context.Sprints.Find(id);
         var backlogItems = context.BackLogItems.Where(b => b.SprintId.Equals(sprint.SprintId)).ToList();
         foreach (BackLogItem backLog in backlogItems)
         {
             backLog.WorksOnIt = context.Users.Find(context.BackLogItems.Where(b => b.Id.Equals(backLog.Id)).Select(b => b.WorksOnIt.username).FirstOrDefault());
         }
         sprint.BacklogItems = backlogItems;
         return(sprint);
     }
 }
Exemple #24
0
 public UserStory[] EditDescription(string projectName, string oldDescription, string newDescription)
 {
     using (var context = new ThemisContext())
     {
         var userStory = context.UserStories.Where(u => u.Name.Equals(projectName) && u.Description.Equals(oldDescription)).FirstOrDefault();
         if (userStory != null)
         {
             userStory.Description = newDescription;
         }
         context.Entry(userStory).State = EntityState.Modified;
         context.SaveChanges();
         return(GetUserStoriesForProject(projectName));
     }
 }
 public Project assembleProject(string projectName)
 {
     using (var context = new ThemisContext())
     {
         var project = context.Projects.Find(projectName);
         if (project != null)
         {
             project.WorkGroup    = assembleWorkGroup(projectName);
             project.BackLogItems = BackLogItems.GetBacklogByProject(projectName).ToList();
             project.UserStories  = UserStories.GetUserStoriesForProject(projectName).ToList();
             project.Sprints      = Sprints.AssembleSprintsForProject(projectName).ToList();
         }
         return(project);
     }
 }
        //Set a scrum master and removes the developer from the developers table
        public Project SetScrumMaster(string username, string projectName)
        {
            using (var context = new ThemisContext())
            {
                User      user      = context.Users.Find(username);
                WorkGroup workgroup = assembleWorkGroup(projectName);
                var       wgDevs    = context.WorkGroupDevelopers.Where(w => w.Developer.username.Equals(username) && w.WorkGroupId.Equals(workgroup.WorkGroupId)).FirstOrDefault();

                workgroup.ScrumMaster = user;
                context.WorkGroupDevelopers.Remove(wgDevs);
                context.Entry(workgroup).State = EntityState.Modified;
                context.SaveChanges();

                return(assembleProject(projectName));
            }
        }
Exemple #27
0
 public Sprint SetActualTime(int backlogId, int actualTime)
 {
     using (var context = new ThemisContext())
     {
         var backlog = context.BackLogItems.Find(backlogId);
         if (backlog != null)
         {
             backlog.ActualTime = actualTime;
             backlog.Status     = "Done";
         }
         context.Entry(backlog).State = EntityState.Modified;
         context.SaveChanges();
         var sprint = AssembleSprintById(backlog.SprintId);
         return(sprint);
     }
 }
Exemple #28
0
 public Sprint SetWorkingUser(int backlogId, string username)
 {
     using (var context = new ThemisContext())
     {
         var backlog = context.BackLogItems.Find(backlogId);
         var user    = context.Users.Find(username);
         if (backlog != null)
         {
             backlog.WorksOnIt = user;
             backlog.Status    = "Being done";
         }
         context.Entry(backlog).State = EntityState.Modified;
         context.SaveChanges();
         var sprint = AssembleSprintById(backlog.SprintId);
         return(sprint);
     }
 }
 public Project AcceptInvitation(String projectName, String invitedUser)
 {
     using (var context = new ThemisContext())
     {
         var user = context.Users.Find(invitedUser);
         var AcceptedInvitation = context.Invitation.Where(i => i.username.Equals(invitedUser) && i.Name.Equals(projectName));
         var workGroupId        = context.WorkGroups.Where(w => w.Name.Equals(projectName)).Select(w => w.WorkGroupId).FirstOrDefault();
         context.WorkGroupDevelopers.Add(new WorkGroupDeveloper()
         {
             WorkGroupId = workGroupId,
             Developer   = user
         });
         context.Invitation.Remove(AcceptedInvitation.FirstOrDefault());
         context.SaveChanges();
         return(context.Projects.Find(projectName));
     }
 }
Exemple #30
0
 public void CreateBacklogItem(BackLogItem backlog)
 {
     using (var context = new ThemisContext())
     {
         var backlogItem = new BackLogItem()
         {
             Name          = backlog.Name,
             SprintId      = null,
             Status        = "Not done",
             Description   = backlog.Description,
             Priority      = backlog.Priority,
             EstimatedTime = backlog.EstimatedTime
         };
         context.BackLogItems.Add(backlogItem);
         context.SaveChanges();
     }
 }