コード例 #1
0
        public IHttpActionResult UpdateContentTranslation(EditContentTranslationData data)
        {
            VerifyPermission(Permissions.Update, Modules.TranslationManager);

            var validationResult = _translationCommands.ValidateThatContentTranslationCanBeEdited(data);

            if (!validationResult.IsValid)
            {
                return(Ok(ValidationExceptionResponse(validationResult.Errors)));
            }

            _translationCommands.UpdateContentTranslation(data);
            return(Ok(new { result = "success" }));
        }
コード例 #2
0
        public void UpdateContentTranslation(EditContentTranslationData editContentTranslationDataData)
        {
            if (_repository.ContentTranslations.Any(
                    t =>
                    t.Name == editContentTranslationDataData.ContentName &&
                    t.Source == editContentTranslationDataData.ContentSource &&
                    t.Language == editContentTranslationDataData.Language &&
                    t.Id != editContentTranslationDataData.Id))
            {
                throw new RegoException("Translation already exist");
            }

            var translation = _repository.ContentTranslations.Single(x => x.Id == editContentTranslationDataData.Id);

            var language = _repository.Cultures.SingleOrDefault(
                cc =>
                cc.Code == editContentTranslationDataData.Language);

            if (language == null)
            {
                throw new RegoException("Language not found");
            }

            using (var scope = CustomTransactionScope.GetTransactionScope())
            {
                translation.Name        = editContentTranslationDataData.ContentName;
                translation.Source      = editContentTranslationDataData.ContentSource;
                translation.Translation = editContentTranslationDataData.Translation;
                translation.Language    = language.Code;
                translation.Remark      = editContentTranslationDataData.Remark;
                translation.Updated     = DateTimeOffset.UtcNow;
                translation.UpdatedBy   = _actorInfoProvider.Actor.UserName;

                _repository.SaveChanges();

                _eventBus.Publish(new ContentTranslationUpdated(translation));
                scope.Complete();
            }
        }
コード例 #3
0
        public ValidationResult ValidateThatContentTranslationCanBeEdited(EditContentTranslationData editContentTranslationData)
        {
            var validator = new EditContentTranslationValidator(_repository);

            return(validator.Validate(editContentTranslationData));
        }