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" })); }
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(); } }
public ValidationResult ValidateThatContentTranslationCanBeEdited(EditContentTranslationData editContentTranslationData) { var validator = new EditContentTranslationValidator(_repository); return(validator.Validate(editContentTranslationData)); }