コード例 #1
0
        public HeroeVO FindOrCreate(HeroeVO item)
        {
            var ent = _converter.Parse(item);

            ent = _repository.FindOrCreate(ent);
            return(_converter.Parse(ent));
        }
コード例 #2
0
        private void CreateHeroeHashtag(List <string> list, ref HeroeVO createdItem)
        {
            HeroeHashtag h = new HeroeHashtag {
                idObjectA = createdItem.Id ?? default(long)
            };

            var errou = false;

            foreach (string s in list)
            {
                if (string.IsNullOrEmpty(s))
                {
                    continue;
                }

                HashtagVO vo = new HashtagVO {
                    Name = s.ToLower()
                };
                try
                {
                    var ret = _hashtag.FindOrCreate(vo);
                    h.idObjectB = ret.Id ?? default(long);
                    _heroeHashtag.Create(h);
                }
                catch
                {
                    if (!errou)
                    {
                        _logger.Information("> " + createdItem.Name + " - Hashtag");
                        errou = true;
                    }
                    _logger.Error(s);
                }
            }
        }
コード例 #3
0
        public HeroeVO Update(HeroeVO item)
        {
            var ent = _converter.Parse(item);

            ent = _repository.Update(ent);
            return(_converter.Parse(ent));
        }
コード例 #4
0
        public IActionResult Put([FromBody] HeroeVO item)
        {
            if (item == null)
            {
                return(BadRequest());
            }
            var updatedItem = _business.Update(item);

            if (updatedItem == null)
            {
                return(NoContent());
            }
            return(new OkObjectResult(updatedItem));
        }
コード例 #5
0
        public IActionResult Post([FromBody] HeroeVO item)
        {
            if (item == null)
            {
                return(BadRequest());
            }
            var createdItem = _business.Create(item);

            if (createdItem == null)
            {
                return(BadRequest());
            }
            return(new OkObjectResult(createdItem));
        }
コード例 #6
0
        public IActionResult PostImport([FromBody] McocHeroeRequest item)
        {
            if (item == null)
            {
                return(BadRequest());
            }

            HeroeVO h = new HeroeVO
            {
                Name        = item.name,
                heroeClass  = nvc[item.heroeClass],
                releaseDate = item.released,
                infoPage    = item.infopage,
                stars       = item.stars
            };

            var exact_name = _heroe.FindByExactName(item.name);

            if (exact_name.Name != null)
            {
                h.Id = exact_name.Id;

                var updatedItem = _heroe.Update(h);
                if (updatedItem == null)
                {
                    return(NoContent());
                }
                return(Ok());
            }

            var createdItem = _heroe.FindOrCreate(h);

            if (createdItem == null)
            {
                return(BadRequest());
            }

            this.CreateHeroeHashtag(item.hashtags, ref createdItem);
            this.CreateHeroeAbilities(item.abilities, ref createdItem, 0);
            this.CreateHeroeAbilities(item.extAbilities, ref createdItem, 1);
            this.CreateHeroeAbilities(item.counters, ref createdItem, 2);

            return(Ok());
        }
コード例 #7
0
        private void CreateHeroeAbilities(List <string> list, ref HeroeVO createdItem, int type)
        {
            HeroeAbility h = new HeroeAbility {
                idObjectA = createdItem.Id ?? default(long)
            };

            var errou = false;

            foreach (string s in list)
            {
                if (string.IsNullOrEmpty(s))
                {
                    continue;
                }

                AbilityVO vo = new AbilityVO {
                    Name = s.ToLower(), Type = type
                };
                try
                {
                    var ret = _ability.FindByExactName(vo.Name, (enAbility)vo.Type);

                    if (ret.Id == null)
                    {
                        ret = _ability.Create(vo);
                    }

                    h.idObjectB = ret.Id ?? default(long);
                    _heroeAbility.Create(h);
                }
                catch
                {
                    if (!errou)
                    {
                        _logger.Information("> " + createdItem.Name + " - Ability " + type.ToString());
                        errou = true;
                    }
                    _logger.Error(s);
                }
            }
        }