Esempio n. 1
0
        public SaveVoteResponse SaveVote(SaveVoteRequest request)
        {
            using (var db = new DotWEntities())
            {
                var previousVote = db.Votes.FirstOrDefault(x => x.IdUser == request.UserId &&
                                                           x.IdPost == request.PostId);
                Votes vote;

                if (previousVote == null)
                {
                    vote = new Votes
                    {
                        IdPost = request.PostId,
                        IdUser = request.UserId,
                        Good   = request.Good,
                        Bad    = request.Bad
                    };

                    db.Votes.Add(vote);
                    db.SaveChanges();
                }
                else
                {
                    vote = previousVote;

                    vote.Good = request.Good;
                    vote.Bad  = request.Bad;

                    db.SaveChanges();
                }

                var response = new SaveVoteResponse
                {
                    VoteId        = vote.Id,
                    PostId        = vote.IdPost,
                    PostGoodVotes = db.Votes.Where(x => x.IdPost == request.PostId).Count(x => x.Good),
                    PostBadVotes  = db.Votes.Where(x => x.IdPost == request.PostId).Count(x => x.Bad)
                };

                return(response);
            }
        }
Esempio n. 2
0
        private void SendVoteButton_Click(object sender, RoutedEventArgs e)
        {
            if (_voteOptions == null)
                MessageBox.Show("Please get options first");
            else if (ValidVotes.Count() != 3)
                MessageBox.Show("Select three items");
            else
            {
                var client = new FoodleServiceClient();
                var request = new SaveVoteRequest
                    {
                        Vote = new Vote
                            {
                                Prio1 = ValidVotes.ElementAt(0),
                                Prio2 = ValidVotes.ElementAt(1),
                                Prio3 = ValidVotes.ElementAt(2)
                            }
                    };

                var resp = client.SubmitVote(request);
                GetResults(string.Format("Your vote has been {0}.", resp.Status));
            }
        }