public async Task <IHttpActionResult> PostVote(int id, VoteView voteView)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var entry = _db.Entries.Include(x => x.Votes).Include(x => x.User).SingleOrDefault(x => x.Id == id);

            if (entry == null)
            {
                return(NotFound());
            }

            var userVoteResult = EntryHelper.UserVoteResult(User.Identity, entry.Votes);

            if (userVoteResult != null)
            {
                return(BadRequest());
            }

            var userName = UserHelper.GetUserNameFromIdentity(User.Identity);
            var user     = _userContext.GetUser(userName);

            var vote = new Vote
            {
                Author     = UserHelper.GetUserNameFromIdentity(User.Identity),
                CreateDate = DateTime.Now,
                Entry      = entry,
                IsPositive = voteView.IsPositive,
                UserId     = user.Id
            };

            _db.Votes.Add(vote);
            await _db.SaveChangesAsync();

            _mailer.InformAboutVote(entry);

            var location = $"api/entry/{vote.Entry.Id}";

            return(Created(location, new VoteView
            {
                Id = vote.Id,
                Author = _userContext.GetUser(UserHelper.GetUserNameFromComplexUsername(vote.Author)).Name,
                CreateDate = vote.CreateDate,
                IsPositive = voteView.IsPositive
            }));
        }