Exemple #1
0
        public async Task <List <BadgeModel> > GetBadges(Guid personUid)
        {
            var personToBadgeEntities = await _badgeRepository.GetBadges(personUid);

            var badges = await _badgeRepository.GetAllBadges();

            var models      = _mapper.Map <List <BadgeModel> >(badges);
            var httpContext = _contextAccessor.HttpContext;
            var culture     = CultureParser.GetCultureFromHttpContext(httpContext);

            foreach (var model in models)
            {
                model.Name        = BadgeText.GetBadgeText(model.BadgeName, BadgeTextType.Name, culture);
                model.Description = BadgeText.GetBadgeText(model.BadgeName, BadgeTextType.Description, culture);
                model.Received    = personToBadgeEntities.Any(x => x.BadgeId == (long)model.BadgeName);
            }
            if (personToBadgeEntities.Any(x => !x.IsViewed))
            {
                await _badgeRepository.SetPersonBadgesViewed(personUid);
            }
            return(models);
        }