예제 #1
0
        public async Task <IEnumerable <int> > AddPostCategoryLocalizationsAsync(int postCategoryId, AddPostCategoryLocalizationsModel model)
        {
            #region Validation
            var userInfo       = contextProvider.BusinessContext.PrincipalInfo;
            var validationData = new ValidationData(resultLocalizer);

            var exists = await dbContext.PostCategory.ById(postCategoryId).AnyAsync();

            if (!exists)
            {
                validationData.Fail(code: ResultCode.EntityNotFound);
            }

            var cultures         = model.ListOfLocalization.Select(o => I18nHelper.GetCulture(o.Lang, o.Region)).ToArray();
            var anyCultureExists = await dbContext.PostCategoryLocalization.ByCultures(cultures).AnyAsync();

            if (anyCultureExists)
            {
                validationData.Fail(code: ResultCode.PostCategory_LocalizationExists);
            }

            if (!validationData.IsValid)
            {
                throw validationData.BuildException();
            }
            #endregion

            var entities = model.ListOfLocalization.MapTo <PostCategoryLocalizationEntity>().ToArray();
            foreach (var entity in entities)
            {
                entity.EntityId = postCategoryId;
            }

            dbContext.AddRange(entities);

            await dbContext.SaveChangesAsync();

            return(entities.Select(o => o.Id).ToArray());
        }
예제 #2
0
        public async Task <IActionResult> AddLocalizations(int id, AddPostCategoryLocalizationsModel model)
        {
            var ids = await _postCategoryService.AddPostCategoryLocalizationsAsync(id, model);

            return(Success(ids));
        }