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); } }
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); } }
public BackLogItem getBacklogItemById(int id) { using (var context = new ThemisContext()) { var item = context.BackLogItems.Find(id); return(item); } }
//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); } }
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); } }
public User retrieveUserByName(String username) { using (var context = new ThemisContext()) { var user = context.Users.Find(username); return(user); } }
public string[] GetAllUsernames() { using (var context = new ThemisContext()) { var usernames = context.Users.Select(u => u.username).ToArray(); return(usernames); } }
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); } }
public void addUser(User user) { using (var context = new ThemisContext()) { context.Users.Add(user); context.SaveChanges(); } }
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)); } }
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)); } }
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); } }
//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); } }
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); } }
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)); } }
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); } }
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)); } }
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); } }
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)); } }
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(); } }