public ModelBaseReturn SaveFromScrapy(PlayerScrapy scrapyModel)
        {
            var playerInDb = _repository.FindByName((scrapyModel as PlayerScrapy).Name);
            var retorno    = SaveFromScrapy(scrapyModel as PlayerScrapy, playerInDb);

            _repository.Save();

            return(retorno);
        }
        public ModelBaseReturn SaveFromScrapy(PlayerScrapy model, Player player)
        {
            try
            {
                bool isCreated = true;

                isCreated = player == null;

                var world = player?.World ?? _worldRepository.FindByName(model.WorldName);

                if (player == null)
                {
                    player = new Player();
                    var novoPlayer = _mapper.Map <Player>(model);

                    player.UpdatePlayer(novoPlayer)
                    .UpdateWorld(world)
                    .AddNewHistoryScrapy(novoPlayer, world);
                }
                else
                {
                    var updatePlayer = _mapper.Map <Player>(model);
                    player
                    .UpdatePlayer(updatePlayer)
                    .UpdateWorld(world)
                    .AddNewHistoryScrapy(updatePlayer, world);
                }


                _repository.AddOrUpdate(player);

                if (isCreated)
                {
                    return(CreateReturnCreated(player.Id));
                }
                else
                {
                    var retorno = _mapper.Map <PlayerScrapy>(player);
                    return(CreateReturnOk(retorno));
                }
            }
            catch (Exception ex)
            {
                return(CreateReturnErrorInternal(ex.Message));
            }
        }
Beispiel #3
0
        public ActionResult Post(PlayerScrapy player)
        {
            ModelBaseReturn retorno = null;

            try
            {
                retorno = _playerService.SaveFromScrapy <PlayerScrapy>(player);

                if (retorno.Status == System.Net.HttpStatusCode.Created)
                {
                    retorno.UrlCreated = Url.Action("Get", "Player", new { name = player.Name });
                }

                return(ReturnBasedServiceLayer(retorno));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }