コード例 #1
0
        public async Task <FeaturedChallengeGroup> EditFeaturedGroupAsync(
            FeaturedChallengeGroup group,
            FeaturedChallengeGroupText text)
        {
            VerifyPermission(Permission.ManageFeaturedChallengeGroups);

            var featuredGroup = await _featuredChallengeGroupRepository.GetByIdAsync(group.Id);

            featuredGroup.ChallengeGroupId = group.ChallengeGroupId;
            featuredGroup.EndDate          = group.EndDate;
            featuredGroup.Name             = group.Name?.Trim();
            featuredGroup.StartDate        = group.StartDate;

            var defaultLanguageId = await _languageService.GetDefaultLanguageIdAsync();

            var groupText = await _featuredChallengeGroupRepository
                            .GetTextByFeaturedGroupAndLanguageAsync(featuredGroup.Id, defaultLanguageId);

            groupText.AltText = text.AltText?.Trim();

            await _featuredChallengeGroupRepository.UpdateAsync(GetClaimId(ClaimType.UserId),
                                                                featuredGroup);

            await _featuredChallengeGroupRepository.UpdateTextAsync(groupText,
                                                                    featuredGroup.Id,
                                                                    defaultLanguageId);

            await _featuredChallengeGroupRepository.SaveAsync();

            await ClearFeaturedChallengeGroupsCacheAsync();

            return(featuredGroup);
        }
コード例 #2
0
        public async Task <FeaturedChallengeGroup> AddFeaturedGroupAsync(
            FeaturedChallengeGroup featuredGroup,
            FeaturedChallengeGroupText featuredGroupText,
            string filename,
            byte[] imageBytes)
        {
            VerifyPermission(Permission.ManageFeaturedChallengeGroups);

            var siteId = GetCurrentSiteId();

            featuredGroup.Name   = featuredGroup.Name?.Trim();
            featuredGroup.SiteId = siteId;

            var maxSortOrder = await _featuredChallengeGroupRepository.GetMaxSortOrderAsync(siteId);

            if (maxSortOrder.HasValue)
            {
                featuredGroup.SortOrder = maxSortOrder.Value + 1;
            }

            var addedFeaturedGroup = await _featuredChallengeGroupRepository.AddSaveAsync(
                GetClaimId(ClaimType.UserId),
                featuredGroup);

            featuredGroupText.AltText  = featuredGroupText.AltText?.Trim();
            featuredGroupText.Filename = (await HandleFeaturedImage(filename, imageBytes))?.Trim();

            await _featuredChallengeGroupRepository.AddTextAsync(featuredGroupText,
                                                                 addedFeaturedGroup.Id,
                                                                 await _languageService.GetDefaultLanguageIdAsync());

            await _featuredChallengeGroupRepository.SaveAsync();

            await ClearFeaturedChallengeGroupsCacheAsync();

            return(addedFeaturedGroup);
        }