//Removes a connection public bool RemoveCollaborator(string Username, int?ProjectID) { if (ProjectID.HasValue && Username != "") { UserService getUser = new UserService(null); var SharedUsers = getUser.GetSharedUsersFromProject(ProjectID); var RemoveUser = SharedUsers.Where(x => x.Username == Username).FirstOrDefault(); if (RemoveUser != null) { ProjectShare DeleteShare = (from x in DB.ProjectShares where x.ShareUser.Username == Username && x.ShareProject.ID == ProjectID select x).FirstOrDefault(); if (DeleteShare != null) { DB.ProjectShares.Remove(DeleteShare); DB.SaveChanges(); return(true); } } } return(false); }
//Shares Project with specific ID with user with specific Username. Returns true if connection is made, otherwise false public bool AddCollaborator(string Username, int?ProjectID) { if (ProjectID.HasValue && Username != "") { var CollaboratorAlreadyExists = DB.ProjectShares.Where(x => x.ShareUser.Username == Username && //If the User getting project shared with has project x.ShareProject.ID == ProjectID).SingleOrDefault(); //already shared with him or is owner it is saved in either of those variables var Owner = (from x in DB.Projects where x.ID == ProjectID select x.Owner).SingleOrDefault(); if (CollaboratorAlreadyExists == null && Username != Owner.Username) //if user with specific username did not have access to project the new connection is made { ProjectShare NewConnection = new ProjectShare(); NewConnection.ShareUser = DB.UsersInfo.Where(x => x.Username == Username).SingleOrDefault(); NewConnection.ShareProject = DB.Projects.Where(x => x.ID == ProjectID).SingleOrDefault(); if (NewConnection.ShareUser != null) { DB.ProjectShares.Add(NewConnection); DB.SaveChanges(); return(true); } } } return(false); }
public void Initialize() { var MockDb = new MockDatabase(); var U1 = new UserInfo { ID = 1, Name = "Patti", Username = "******" }; MockDb.UsersInfo.Add(U1); var U2 = new UserInfo { ID = 2, Name = "Alex", Username = "******", Country = "Iceland", Email = "*****@*****.**", DateCreated = DateTime.Now }; MockDb.UsersInfo.Add(U2); var U3 = new UserInfo { ID = 3, Name = "Joey", Username = "******" }; MockDb.UsersInfo.Add(U3); var U4 = new UserInfo { ID = 4, Name = "Nonni", Username = "******" }; MockDb.UsersInfo.Add(U4); var P1 = new Project { ID = 1, Owner = U1 }; MockDb.Projects.Add(P1); var P2 = new Project { ID = 2, Owner = U1 }; MockDb.Projects.Add(P2); var P3 = new Project { ID = 3, Owner = U2 }; MockDb.Projects.Add(P3); var PS1 = new ProjectShare { ID = 1, ShareProject = P1, ShareUser = U2 }; MockDb.ProjectShares.Add(PS1); var PS2 = new ProjectShare { ID = 2, ShareProject = P1, ShareUser = U3 }; MockDb.ProjectShares.Add(PS2); var PS3 = new ProjectShare { ID = 3, ShareProject = P1, ShareUser = U4 }; MockDb.ProjectShares.Add(PS3); var PS4 = new ProjectShare { ID = 4, ShareProject = P3, ShareUser = U4 }; MockDb.ProjectShares.Add(PS4); Service = new UserService(MockDb); }