Beispiel #1
0
        public async Task Create([FromBody]
                                 CreateGameInput input)
        {
            var entity = _mapper.Map <Game>(input);
            await _gamesDbContext.Games.AddAsync(entity);

            await _gamesDbContext.SaveChangesAsync();
        }
Beispiel #2
0
        public GameResponse Execute(CreateGameInput game)
        {
            var gameResponse = new GameResponse();

            try
            {
                Log.Information("Creating Game Entry for [{NewName}].", game?.Name);
                var gameEntity = Mapper.Map <CreateGameInput, Domain.Game.Entities.Game>(game);
                gameResponse.Game       = Repository.Create(gameEntity);
                gameResponse.StatusCode = 200;
            }
            catch (Exception exception)
            {
                Log.Error(exception, "Failed to Create Game: [{NewName}].", game?.Name);
                HandleErrors(gameResponse, exception);
            }
            return(gameResponse);
        }
Beispiel #3
0
        public CreateOutput <GameDto, long> Create(CreateGameInput input)
        {
            Game newGameEntity = input.Entity.MapTo <Game>();

            if (!GamePolicy.CanCreateEntity(newGameEntity))
            {
                throw new CityQuestPolicyException(CityQuestConsts.CQPolicyExceptionCreateDenied, "\"Game\"");
            }

            newGameEntity.IsActive      = true;
            newGameEntity.GameImageName = CreateGameImage(Guid.NewGuid().ToString(), input.GameImageData);

            try
            {
                newGameEntity.GameStatusId = GameStatusRepository.GetAll().Where(r => r.IsDefault).Single().Id;
            }
            catch
            {
                throw new UserFriendlyException("Default game status not found!",
                                                "Default game status not found! Please contact your system administrator.");
            }

            GameRepository.Includes.Add(r => r.GameTasks);
            GameRepository.Includes.Add(r => r.Location);
            GameRepository.Includes.Add(r => r.GameStatus);
            GameRepository.Includes.Add(r => r.LastModifierUser);
            GameRepository.Includes.Add(r => r.CreatorUser);

            long newGameId = GameRepository.InsertAndGetId(newGameEntity);

            UowManager.Current.Completed += (sender, e) =>
            {
                GameChangesNotifier.RaiseOnGameAdded(new GameAddedMessage(newGameId));
            };

            GameDto newGameDto = GameRepository.Get(newGameId).MapTo <GameDto>();

            GameRepository.Includes.Clear();

            return(new CreateOutput <GameDto, long>()
            {
                CreatedEntity = newGameDto
            });
        }
Beispiel #4
0
        public void Valid()
        {
            var createGameInput = new CreateGameInput
            {
                Genre       = "Some Genre",
                Name        = "Da Name",
                Price       = 69.69,
                ReleaseDate = DateTime.Now.AddDays(-17)
            };

            var game = Mapper.Map <Domain.Game.Entities.Game>(createGameInput);

            game.Should().NotBeNull();

            game.Genre.Should().Be(createGameInput.Genre);
            game.Name.Should().Be(createGameInput.Name);
            game.Price.Should().Be((decimal)createGameInput.Price);
            game.ReleaseDate.Should().Be(createGameInput.ReleaseDate);
        }
        public async Task <GameResponse> ExecuteAsync(CreateGameInput input)
        {
            var gameResponse = new GameResponse();

            try
            {
                Log.Information("Creating Game Entry for [{NewName}]...", input?.Name);
                var gameEntity = Mapper.Map <CreateGameInput, Domain.Game.Entities.Game>(input);
                gameResponse.Game = await Repository.CreateAsync(gameEntity);

                gameResponse.StatusCode = 200;
                Log.Information("Created Game Entry for [{NewName}] with Id: [{Id}]", gameResponse.Game.Name, gameResponse.Game.Id);
            }
            catch (Exception exception)
            {
                Log.Error(exception, "Failed to Create Game: [{NewName}].", input?.Name);
                HandleErrors(gameResponse, exception);
            }
            return(gameResponse);
        }
 public IActionResult Post(CreateGameInput game)
 {
     return(ExecuteAndHandleRequest(() => GameRequestAggregate.CreateGameRequest.Execute(game)));
 }
Beispiel #7
0
 public async Task <IActionResult> Post(CreateGameInput game)
 {
     return(await ExecuteAndHandleRequestAsync(() => GameRequestAggregateAsync.CreateGameRequestAsync.ExecuteAsync(game)));
 }