protected void bt_submit_Click(object sender, EventArgs e) { confirm.Visible = false; error.Visible = false; Member m = Member.GetCurrentMember(); int pId = 0; if (!string.IsNullOrEmpty(Request.QueryString["id"]) && int.TryParse(Request.QueryString["id"], out pId) && umbraco.library.IsLoggedOn()) { Document d = new Document(pId); if ((int)d.getProperty("owner").Value == m.Id) { Member c = Member.GetMemberFromLoginName(tb_email.Text); if (c != null && c.Id != m.Id) { //member found ProjectContributor pc = new ProjectContributor(d.Id, c.Id); pc.Add(); confirm.Visible = true; tb_email.Text = ""; } else { //member not found error.Visible = true; } } } }
public void AddProjectContributor(ProjectContributor projectContributor) { if (!_db.ProjectContributors.Any(pc => pc.UserId == projectContributor.UserId && pc.ProjectId == projectContributor.ProjectId)) { _db.ProjectContributors.Add(projectContributor); } }
public async Task <Result <Unit> > Handle(Command request, CancellationToken cancellationToken) { var user = await _context.Users.FirstOrDefaultAsync(x => x.UserName == _userAccessor.GetUsername()); var contributor = new ProjectContributor { AppUser = user, Project = request.Project, IsOwner = true, IsContributing = true, }; request.Project.Contributors.Add(contributor); _context.Projects.Add(request.Project); var result = await _context.SaveChangesAsync() > 0; if (!result) { return(Result <Unit> .Failure("Failed to create project")); } return(Result <Unit> .Success(Unit.Value)); }
public async Task <IActionResult> Join([FromBody] ProjectContributor projectContributor) { var command = new JoinProjectCommand { ProjectContributor = projectContributor }; await _mediator.Send(command); return(Ok()); }
public async Task<IActionResult> JoinAsync(int projectId, [FromBody]ProjectContributor projectContributor) { if (!(await _recommendService.IsProjectInRecommend(UserIdentity.UserId, projectId))) { throw new UserOperationException("无权查看该项目"); } var joinProjectCommand = new JoinProjectCommand { Contributor = projectContributor }; await _mediator.Send(joinProjectCommand); return Ok(); }
public async Task <IActionResult> JoinProject(ProjectContributor contributor) { var command = new JoinProjectCommand() { Contributor = contributor }; await _mediator.Send(command); return(Ok()); }
public async Task <IActionResult> JoinProject(int projectId, [FromBody] ProjectContributor contributor) { if (await _recommendService.IsProjectInRecommend(projectId, UserIdentity.UserId)) { return(BadRequest("没有查看该项目的权限")); } var command = new JoinProjectCommand { Contributor = contributor }; await _mediator.Send(command); return(Ok()); }
public async Task <IActionResult> Add_ProjectJoiner([FromBody] ProjectContributor model) { if (await _recommendService.IsProjectRecommend(model.ProjectId.Value, UserIdentity.UserId)) { return(BadRequest("没有查看该项目的权限")); } model.UserId = UserIdentity.UserId; model.UserName = UserIdentity.Name; model.Avatar = UserIdentity.Avatar; var result = await _mediator.Send(new ProjectJoinedCommand { ProjectContributor = model }); return(Ok(result)); }
public async Task <IActionResult> JoinProject([FromBody] ProjectContributor contributor) { if (!await _recommendService.IsProjectRecommend(contributor.ProjectId, UserIdentity.UserId)) { return(BadRequest("没有查看该项目的权限")); } var command = new JoinProjectCommand { Contributor = contributor }; var result = await _mediatR.Send(command, new CancellationToken()); return(Ok(result)); }
public async Task <IActionResult> JoinProject([FromBody] ProjectContributor projectContributor) { if (await _recommendService.IsProjectInRecommend(projectContributor.ProjectId, UserIdentity.UserId)) { return(BadRequest()); } var command = new JoinProjectCommand() { ProjectContributor = projectContributor }; var result = await _mediator.Send(command); return(Ok(result)); }
public async Task <IActionResult> JoinProject([FromBody] ProjectContributor contributor) { if (!(await _recommendService.IsProjectInRecommend(contributor.ProjectId, UserIdentity.UserId))) { return(BadRequest(ProjectMessageTip.NoAuthViewproject)); } var command = new JoinProjectCommand() { Contributor = contributor }; await _mediator.Send(command); return(Ok()); }
//SingleOrDefault throws exception, FirstOrDefault returns null public async Task <Result <Unit> > Handle(Command request, CancellationToken cancellationToken) { var project = await _context.Projects .Include(p => p.Contributors).ThenInclude(u => u.AppUser) .SingleOrDefaultAsync(x => x.Id == request.Id); if (null == project) { return(null); } var user = await _context.Users.FirstOrDefaultAsync(x => x.UserName == _accessor.GetUsername()); if (null == user) { return(null); } var hostUserName = project.Contributors.FirstOrDefault(x => x.IsOwner)?.AppUser?.UserName; var contribution = project.Contributors.FirstOrDefault(x => x.AppUser.UserName == user.UserName); if (null != contribution && hostUserName == user.UserName) { project.IsCancelled = !project.IsCancelled; } if (null != contribution && hostUserName != user.UserName) { project.Contributors.Remove(contribution); } if (null == contribution) { contribution = new ProjectContributor { AppUser = user, Project = project, IsOwner = false, }; project.Contributors.Add(contribution); } var result = await _context.SaveChangesAsync() > 0; return(result ? Result <Unit> .Success(Unit.Value) : Result <Unit> .Failure("Problem Updating Contribution")); }
public void AddContributor(int projectId, int memberId) { var r = _dbContext.Database.SingleOrDefault <ProjectContributor>( "SELECT * FROM projectContributors WHERE projectId=@0 and memberId=@1", projectId, memberId); if (r == null) { var rec = new ProjectContributor(); rec.MemberId = memberId; rec.ProjectId = projectId; _dbContext.Database.Insert(rec); } }
public async Task <IActionResult> JoinProject(ProjectContributor contributor) { if (!(await _recommendService.IsProjectInRecommend(contributor.ProjectId, UserIdentity.UserId))) { //可以抛全局异常 return(BadRequest("同志,那可不是你能看的项目哦~")); } //Todo: 参数正确性判断 var command = new JoinProjectCommand { Contributor = contributor }; var project = await _mediator.Send(command); return(Ok(project)); }
public async Task <IActionResult> JoinProject([FromBody] ProjectContributor contributor) { if (contributor == null) { throw new ArgumentNullException(nameof(contributor)); } if (!await _commandService.IsRecommandProject(contributor.ProjectId, UserIdentity.CurrentUserId)) { return(BadRequest("不具有查看当前项目的权限")); } var cmd = new JoinProjectCommand() { ProjectContributor = contributor }; await _mediator.Send(cmd); return(Ok()); }
public string RemoveContributor(int projectId, int memberId) { int _currentMember = Member.GetCurrentMember().Id; if (_currentMember > 0) { umbraco.presentation.nodeFactory.Node p = new umbraco.presentation.nodeFactory.Node(projectId); if (p.GetProperty("owner").Value == _currentMember.ToString()) { ProjectContributor pc = new ProjectContributor(projectId, memberId); pc.Delete(); return("true"); } return("false"); } return("false"); }
public async Task <IActionResult> JoinProject(int projectId, [FromBody] ProjectContributor contributor) { contributor.ProjectId = projectId; contributor.UserId = UserIdentity.UserId; contributor.UserName = UserIdentity.Name; contributor.Avatar = UserIdentity.Avatar; // 检查是否有权限查看 if (!await _recommendService.IsRecommendProject(contributor.ProjectId, UserIdentity.UserId)) { return(BadRequest("无权查看此项目")); } var cmd = new CreateProjectJoinCommand { Contributor = contributor }; await _mediator.Send(cmd); return(Ok()); }
public IActionResult Update(long id, [FromBody] UpdateProjectVM vm) { if (vm.UpdatedProject == null || vm.UpdatedProject.Id != id) { return(BadRequest()); } else if (vm.UserId == 0) { return(BadRequest()); } var project = _service.Find(id); if (project == null) { return(NotFound()); } ProjectContributor projectContributor = new ProjectContributor(); projectContributor.UserId = vm.UserId; projectContributor.ProjectId = vm.UpdatedProject.Id; _service.AddProjectContributor(projectContributor); project.Name = vm.UpdatedProject.Name; project.Daw = vm.UpdatedProject.Daw; project.Comments = vm.UpdatedProject.Comments; project.AudioUrl = vm.UpdatedProject.AudioUrl; project.Instruments = vm.UpdatedProject.Instruments; project.IsPrivate = vm.UpdatedProject.IsPrivate; project.Style = vm.UpdatedProject.Style; _service.Update(project); return(new NoContentResult()); }
public async Task <IActionResult> NewContributor(string userId, Notification notification) { if (userId == null || userId == "" || notification.Id == 0 || notification.projectId == 0) { return(BadRequest("Invalid data format")); } var noti = await _context.Notifications.FindAsync(notification.Id); noti.isRead = true; var contributor = new ProjectContributor() { UserId = Convert.ToInt32(userId), ProjectId = notification.projectId }; await _context.projectContributors.AddAsync(contributor); var delNoti = await _context.Notifications.FindAsync(notification.Id); _context.Notifications.Remove(delNoti); await _context.SaveChangesAsync(); return(Ok()); }
public string RemoveContributor(int projectId, int memberId) { var memberShipHelper = new Umbraco.Web.Security.MembershipHelper(UmbracoContext.Current); var currentMember = memberShipHelper.GetCurrentMemberId(); if (currentMember <= 0) { return("false"); } var umbracoHelper = new UmbracoHelper(UmbracoContext.Current); var content = umbracoHelper.Content(projectId); if (content.GetPropertyValue <int>("owner") != currentMember) { return("false"); } var projectContributor = new ProjectContributor(projectId, memberId); projectContributor.Delete(); return("true"); }