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

                if (marca == null)
                {
                    throw new RestException(HttpStatusCode.NotFound, new { Marca = "Cound not find marca" });
                }

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

                var attendance = await _context.UserMarcas
                                 .SingleOrDefaultAsync(x => x.MarcaId == marca.Id &&
                                                       x.AppUserId == user.Id);

                if (attendance != null)
                {
                    throw new RestException(HttpStatusCode.BadRequest,
                                            new { Attendance = "Already attending this marca" });
                }

                attendance = new UserMarca
                {
                    Marca      = marca,
                    AppUser    = user,
                    IsHost     = false,
                    DateJoined = DateTime.Now
                };

                _context.UserMarcas.Add(attendance);

                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 marca = new Marca
                {
                    Id             = request.Id,
                    Title          = request.Title,
                    Description    = request.Description,
                    Category       = request.Category,
                    Date           = request.Date,
                    City           = request.City,
                    Venue          = request.Venue,
                    ProcessoNumber = request.ProcessoNumber,
                    Procurador     = request.Procurador,
                    Proprietario   = request.Proprietario
                };

                _context.Marcas.Add(marca);

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

                var attendee = new UserMarca
                {
                    AppUser    = user,
                    Marca      = marca,
                    IsHost     = true,
                    DateJoined = DateTime.Now
                };

                _context.UserMarcas.Add(attendee);

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

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

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