Пример #1
0
        public async Task <IActionResult> Get([FromRoute] Guid id, [FromQuery] CollectionRequestModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                IQueryable <MetaHuman> query = this.metasRepository.GetAll()
                                               .Where(x => x.Id.Equals(id));

                bool withRelations = model.NoRelations;

                if (withRelations)
                {
                    query = this.metasRepository.GetRelations(query) as IQueryable <MetaHuman>;
                }

                var viewQuery = query.Select(metaHuman => ViewModelHelper.BuildMetaViewModel(metaHuman, withRelations));

                MetaHumanViewModel meta = await viewQuery.FirstOrDefaultAsync();

                if (meta == null)
                {
                    return(NotFound());
                }

                return(Ok(meta));
            }
            catch (Exception ex)
            {
                return(BadRequest(new JsonResult(ex.Message)));
            }
        }
Пример #2
0
        public static MetaHumanViewModel BuildMetaViewModel(MetaHuman metaHuman, bool addRelations = false)
        {
            var viewmodel = new MetaHumanViewModel
            {
                Id          = metaHuman.Id,
                Name        = metaHuman.Name,
                Description = metaHuman.Description,
                AlterEgo    = metaHuman.AlterEgo,
                Status      = metaHuman.Status
            };

            if (addRelations)
            {
                viewmodel.Abilities = metaHuman.MetaHumanAbilities.Select(x => BuildAbilityViewModel(x.Ability));
                viewmodel.Teams     = metaHuman.MetaHumanTeams.Select(x => BuildTeamViewModel(x.Team));
            }

            return(viewmodel);
        }