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); } }
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)); } }