Ejemplo n.º 1
0
        private void VoteForFollower(Member member, bool?votingInSupport, Suggestion suggestion, Member leader)
        {
            var vote = suggestion.Votes.SingleOrDefault(v => v.VoterMemberId == member.Id);

            if (vote == null)
            {
                vote = new SuggestionVote();
                vote.SuggestionId                 = suggestion.Id;
                vote.Suggestion                   = suggestion;
                vote.VoterMemberId                = member.Id;
                vote.VoterMember                  = member;
                vote.VotingLeaderMemberId         = leader.Id;
                vote.VotingLeaderMember           = leader;
                vote.MemberIsSupportingSuggestion = votingInSupport;
                vote.LastUpdateDateTimeUtc        = DateTime.UtcNow;
                _dependencies.StorageService.SetOf <SuggestionVote>().Add(vote);
                VoteForFollowers(votingInSupport, suggestion, member, leader);
            }
            else if (vote.VotingLeaderMemberId == leader.Id)
            {
                vote.MemberIsSupportingSuggestion = votingInSupport;
                vote.LastUpdateDateTimeUtc        = DateTime.UtcNow;
                VoteForFollowers(votingInSupport, suggestion, member, leader);
            }
        }
Ejemplo n.º 2
0
        public virtual ResponseResource Vote(IPrincipal principal, VoteOnSuggestionsRequest request)
        {
            var suggestion = GetGuaranteedSuggestion(request.SuggestionId);
            var member     = _dependencies.OrganisationService.GetGuaranteedMember(principal, suggestion.AuthorMember.OrganisationId);
            //if (member.Organisation.CountingInProgress)
            //{
            //    return new ResponseResource {Error = "Vote counting is in progress - please try again later",HasError = true};
            //}
            var vote = suggestion.Votes.SingleOrDefault(v => v.VoterMemberId == member.Id);

            if (vote == null)
            {
                vote = new SuggestionVote();
                vote.SuggestionId         = request.SuggestionId;
                vote.Suggestion           = suggestion;
                vote.VoterMemberId        = member.Id;
                vote.VotingLeaderMemberId = null;
                vote.VoterMember          = member;
                _dependencies.StorageService.SetOf <SuggestionVote>().Add(vote);
            }
            vote.MemberIsSupportingSuggestion = request.VotingInSupport;
            vote.LastUpdateDateTimeUtc        = DateTime.UtcNow;
            VoteForFollowers(request.VotingInSupport, suggestion, member, member);
            _dependencies.StorageService.SaveChanges();
            return(new ResponseResource());
        }