Ejemplo n.º 1
0
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var anecdote = await _context.Anecdotes.FindAsync(request.Id);

                if (anecdote == null)
                {
                    throw new RestException(HttpStatusCode.NotFound, new { Anecdote = "Could not find anecdote" });
                }

                var user = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _userAccessor.GetCurrentUsername());

                var fave = await _context.UserAnecdotes.SingleOrDefaultAsync(x => x.AnecdoteId == anecdote.Id && x.AppUserId == user.Id);

                if (fave != null)
                {
                    throw new RestException(HttpStatusCode.BadRequest, new { Fave = "Already favourited this anecdote" });
                }

                fave = new UserAnecdote
                {
                    Anecdote  = anecdote,
                    AppUser   = user,
                    IsOwner   = false,
                    DateFaved = DateTime.Now
                };

                _context.UserAnecdotes.Add(fave);

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Problem saving changes");
            }
Ejemplo n.º 2
0
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var anecdote = new Anecdote
                {
                    Id          = request.Id,
                    Title       = request.Title,
                    Description = request.Description,
                    Category    = request.Category,
                    Date        = request.Date,
                    City        = request.City,
                    Venue       = request.Venue
                };

                _context.Anecdotes.Add(anecdote);

                var user = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _userAccessor.GetCurrentUsername());

                var favee = new UserAnecdote
                {
                    AppUser   = user,
                    Anecdote  = anecdote,
                    IsOwner   = true,
                    DateFaved = DateTime.Now
                };

                _context.UserAnecdotes.Add(favee);

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Problem saving changes");
            }