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);
     }
 }
Ejemplo n.º 3
0
            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));
            }
Ejemplo n.º 4
0
        public async Task <IActionResult> Join([FromBody] ProjectContributor projectContributor)
        {
            var command = new JoinProjectCommand {
                ProjectContributor = projectContributor
            };
            await _mediator.Send(command);

            return(Ok());
        }
Ejemplo n.º 5
0
 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();
 }
Ejemplo n.º 6
0
        public async Task <IActionResult> JoinProject(ProjectContributor contributor)
        {
            var command = new JoinProjectCommand()
            {
                Contributor = contributor
            };
            await _mediator.Send(command);

            return(Ok());
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 9
0
        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));
        }
Ejemplo n.º 10
0
        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));
        }
Ejemplo n.º 11
0
        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());
        }
Ejemplo n.º 12
0
            //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));
        }
Ejemplo n.º 15
0
        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());
        }
Ejemplo n.º 16
0
        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");
        }
Ejemplo n.º 17
0
        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());
        }
Ejemplo n.º 19
0
        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());
        }
Ejemplo n.º 20
0
        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");
        }