コード例 #1
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());
        }
コード例 #2
0
 public ResponseResource Post(VoteOnSuggestionsRequest request)
 {
     return(_service.Vote(User, request));
 }
コード例 #3
0
 public HttpResponseMessage Post(VoteOnSuggestionsRequest request)
 {
     return(Request.CreateResponse(HttpStatusCode.OK, _service.Vote(User, request)));
 }