public IActionResult JoinWorkspace([FromQuery] int workspaceId, [FromQuery] string key) { User user = this.GetAuthenticatedUser(); var workspace = _unitOfWork.Workspaces.GetByID(workspaceId); if (workspace == null) { return(BadRequest("The workspace does not exist")); } if (_unitOfWork.Workspaces.GetUsersIdInWorkspace(workspaceId).Contains(user.Id)) { return(BadRequest("The user is already in the workspace")); } if (workspace.WorkspaceKey == key) { UserWorkspace userWorkspace = new UserWorkspace { UserId = user.Id, WorkspaceId = workspaceId, UserRoleInWorkspace = UserRoleInWorkspace.Member }; _unitOfWork.UserWorkspaces.Insert(userWorkspace); _unitOfWork.Save(); return(Ok("The user is successfully added to the workspace")); } return(BadRequest("The key you entered is not valid")); }
public async Task <ActionResult> CreateTeam([FromQuery] int workspaceId, [FromQuery] string userId) { try { var userWorkspace = new UserWorkspace { ApplicationUserId = userId, WorkspaceId = workspaceId, DevLead = false }; _context.UserWorkspace.Add(userWorkspace); await _context.SaveChangesAsync(); var foundUser = await _context.ApplicationUser .FindAsync(userId); var applicationUserViewModel = new ApplicationUserViewModel { Id = foundUser.Id, FirstName = foundUser.FirstName, LastName = foundUser.LastName, Email = foundUser.Email }; return(Ok(applicationUserViewModel)); } catch { return(View()); } }
public async Task <ActionResult> Create(Workspace workspace) { try { //Creates new workspace object var newWorkspace = new Workspace { Name = workspace.Name, Color1 = workspace.Color1, Color2 = workspace.Color2, Color3 = workspace.Color3 }; if (!String.IsNullOrEmpty(workspace.Description)) { newWorkspace.Description = workspace.Description; } if (!String.IsNullOrEmpty(workspace.GithubRepo)) { newWorkspace.GithubRepo = workspace.GithubRepo; } if (!String.IsNullOrEmpty(workspace.DataRelatDiagram)) { newWorkspace.DataRelatDiagram = workspace.DataRelatDiagram; } if (!String.IsNullOrEmpty(workspace.MockupDiagram)) { newWorkspace.MockupDiagram = workspace.MockupDiagram; } _context.Workspace.Add(newWorkspace); await _context.SaveChangesAsync(); var user = await GetCurrentUserAsync(); var userWorkspace = new UserWorkspace { WorkspaceId = newWorkspace.Id, ApplicationUserId = user.Id, DevLead = true }; _context.UserWorkspace.Add(userWorkspace); await _context.SaveChangesAsync(); return(RedirectToAction("Details", new { id = newWorkspace.Id })); } catch { return(View()); } }
public Result <Workspace> CreateModel(string name, User user) { if (_dbContext.Workspace.Any(q => q.Name == name)) { return(new Result <Workspace> { Data = new Workspace(), Message = "Bu model zaten bulunmaktadýr! Baþka bir isim belirleyin.", Status = "500" }); } else { var resWorkspace = new Workspace(); foreach (var usr in _dbContext.User.ToList()) // Tüm kullanýcýlara eklenmesi için deðiþtirildi. { var workspace = new Workspace { Name = name }; resWorkspace = _dbContext.Workspace.Add(workspace).Entity; _dbContext.SaveChanges(); var userWorkspace = new UserWorkspace { UserId = usr.Id, WorkspaceId = resWorkspace.Id }; var resUserWWorkspace = _dbContext.UserWorkspace.Add(userWorkspace).Entity; try { _dbContext.SaveChanges(); } catch (Exception ex) { Console.Write(ex); } } return(new Result <Workspace> { Data = resWorkspace, Message = "Model baþarýyla oluþturuldu!", Status = "200" }); } }
public void AddUserToWorkspace(int userId, int workspaceId) { var workspace = _unitOfWork.Workspaces.GetByID(workspaceId); var user = _unitOfWork.Users.GetByID(userId); var uw = new UserWorkspace { UserId = userId, WorkspaceId = workspaceId, /* * The -1 subtracts 1 hour from the current time, * this makes notifications enabled by default. */ TimeToWhichNotificationsAreMuted = DateTime.Now.AddHours(-1), UserRoleInWorkspace = UserRoleInWorkspace.Member }; user.UserWorkspaces.Add(uw); workspace.UserWorkspaces.Add(uw); _unitOfWork.UserWorkspaces.Insert(uw); _unitOfWork.Users.Update(user); _unitOfWork.Workspaces.Update(workspace); _unitOfWork.Save(); }
public static void Initialize(AppDbContext _dbContext) { if (_dbContext.User.Any() && _dbContext.Workspace.Any() && _dbContext.UserWorkspace.Any()) { _dbContext.Database.Migrate(); } else { var isDeleted = _dbContext.Database.EnsureDeleted(); var isCreated = _dbContext.Database.EnsureCreated(); var user = new User { FirstName = "test", LastName = "test", Password = "******", Username = "******" }; user = _dbContext.User.Add(user).Entity; var workspace = new Workspace { Name = "1" }; workspace = _dbContext.Workspace.Add(workspace).Entity; var userWorkspace = new UserWorkspace { User = user, Workspace = workspace }; _dbContext.UserWorkspace.Add(userWorkspace); _dbContext.SaveChanges(); } }
// GET: Workspaces/Details/5 public async Task <ActionResult> Details(int id, string searchString, [FromRoute] string userId) { try { //Find the workspace matching the id passed in var workspace = await _context.Workspace .FirstOrDefaultAsync(w => w.Id == id); //Build a WorkspaceViewModel var workspaceViewModel = new WorkspaceViewModel() { Id = id, Name = workspace.Name, Color1 = workspace.Color1, Color2 = workspace.Color2, Color3 = workspace.Color3 }; if (!String.IsNullOrEmpty(workspace.Description)) { workspaceViewModel.Description = workspace.Description; } if (!String.IsNullOrEmpty(workspace.GithubRepo)) { workspaceViewModel.GithubRepo = workspace.GithubRepo; } if (!String.IsNullOrEmpty(workspace.DataRelatDiagram)) { workspaceViewModel.DataRelatDiagram = workspace.DataRelatDiagram; } if (!String.IsNullOrEmpty(workspace.MockupDiagram)) { workspaceViewModel.MockupDiagram = workspace.MockupDiagram; } //Get a list of UserWorkspaces that are a part of the workspace and add to the view model workspaceViewModel.UserWorkspaces = await _context.UserWorkspace .Where(uw => uw.WorkspaceId == id) .Include(uw => uw.ApplicationUser) .ToListAsync(); if (!String.IsNullOrEmpty(userId)) { var userWorkspace = new UserWorkspace { ApplicationUserId = userId, WorkspaceId = id, DevLead = false }; workspaceViewModel.UserWorkspaces.Add(userWorkspace); } var user = await GetCurrentUserAsync(); var allUsers = await _context.ApplicationUser.ToListAsync(); var teamMemberIds = workspaceViewModel.UserWorkspaces.Select(uw => uw.ApplicationUserId).ToArray(); //Store search results in SearchResults list of app users if (!String.IsNullOrEmpty(searchString)) { workspaceViewModel.SearchResults = allUsers .Where(au => au.Id != user.Id) .Where(au => !teamMemberIds.Contains(au.Id)) .Where(au => au.Email.Contains(searchString)).ToList(); } else { workspaceViewModel.SearchResults = new List <ApplicationUser>(); } //Get a list of all the posts made in the workspace //Build a list of PostViewModels and add to the view model workspaceViewModel.Posts = await _context.Post .Where(p => p.WorkspaceId == id) .Include(p => p.ApplicationUser) .Select(p => new PostViewModel() { Id = p.Id, Text = p.Text, ImageFile = p.ImageFile, Link = p.Link, ApplicationUserId = p.ApplicationUserId, ApplicationUser = p.ApplicationUser, Timestamp = p.Timestamp, Pinned = p.Pinned, Comments = _context.Comment.Where(c => c.PostId == p.Id).Include(c => c.ApplicationUser).OrderBy(c => c.Timestamp).ToList(), Likes = _context.Like.Where(l => l.PostId == p.Id).ToList() }).ToListAsync(); return(View(workspaceViewModel)); } catch (Exception ex) { return(View()); } }