public override void Invoke(IZappyExecutionContext context, ZappyTaskActionInvoker actionInvoker) { TranslationServiceFacade.AzureKey = TextTranslatorResorceKey; AccountViewModel.SaveAccountClick(); var worker = new BackgroundWorker(); DocumentTranslationManager.DoTranslation( FilePath, false, FromLanguage, ToLanguage, false); }
/// <summary> /// The execute. /// </summary> /// <returns> /// The <see cref="bool" />. /// </returns> public override bool Execute() { int documentcount = 0; List <String> listoffiles = new List <string>(); //Expand wildcard, if name specification contains * if (this.sourceDocuments.Values.ToArray().Any(file => file.ToString().Contains("*"))) { foreach (string filename in this.sourceDocuments.Values.ToArray()) { int lastBackslashPosition = filename.LastIndexOf('\\') + 1; string path = filename.Substring(0, lastBackslashPosition); string filenameOnly = filename.Substring(lastBackslashPosition); String[] filelist = Directory.GetFiles(path, filenameOnly, SearchOption.AllDirectories); listoffiles.AddRange(filelist); } } else //no * in the file name { foreach (var file in this.sourceDocuments.ValueString.Split(',')) { listoffiles.Add(file); } } try { var model = new CommentTranslationModel { SourceLanguage = this.sourceLanguage.ValueString ?? "Auto-Detect", TargetLanguage = this.targetLanguages.ValueString }; foreach (var file in listoffiles) { if (!File.Exists(file)) { Logger.WriteLine(LogLevel.Error, String.Format("Specified document {0} does not exist. ", file)); } foreach (var language in this.targetLanguages.Values) { try { this.Logger.WriteLine( LogLevel.Msg, string.Format( "Translating document {0} to language {1}.", file, language)); model.TargetPath = file; var sourceLanguageExpanded = String.IsNullOrEmpty(this.sourceLanguage.ValueString) || this.sourceLanguage.ValueString.Equals("Auto-Detect") ? "Auto-Detect" : TranslationServiceFacade.AvailableLanguages[ this.sourceLanguage.ValueString]; string languagename = TranslationServiceFacade.LanguageCodeToLanguageName(language.ToString()); DocumentTranslationManager.DoTranslation( file, false, sourceLanguageExpanded, languagename); this.Logger.WriteLine( LogLevel.Msg, string.Format( "-- Translated document name {0} to language {1}.", file, language)); documentcount++; } catch (Exception ex) { this.Logger.WriteLine( LogLevel.Error, string.Format( "Error while processing file: {0} to language {1} with error: {2}", model.TargetPath, language, ex.Message)); throw; } } } } catch (Exception ex) { this.Logger.WriteException(ex); Console.ReadLine(); return(false); } this.Logger.WriteLine(LogLevel.Msg, string.Format("Documents translated successfully: {0}.", documentcount)); return(true); }
/// <summary> /// Translates a document and provides links to the original as well as the translated document /// </summary> /// <param name="storageContainerName">Name of the storage container</param> /// <param name="storageFileName">Name of the storage file (original document for translation)</param> /// <param name="originalLanguage">The language of the original file</param> /// <param name="translationLanguage">The language for translating the document</param> /// <returns></returns> public DocumentLinks TranslateFile(string storageContainerName, string storageFileName, string originalLanguage, string translationLanguage) { var localFileName = storageFileName; try { TranslationServiceFacade.Initialize(ConfigurationManager.AppSettings["ApiKey"]); DocumentTranslationManager.DoTranslation(localFileName, false, originalLanguage, translationLanguage); } catch (Exception ex) { _loggingService.Error("Error in TranslationServiceFacade.Initialize or DocumentTranslationManager.DoTranslation", ex); throw; } string originalFileUrl; string translatedFileUrl; string translatedDocumentName; try { var languageCode = TranslationServiceFacade.AvailableLanguages.Where(p => p.Value == translationLanguage).Select(p => p.Key).FirstOrDefault(); var extension = Helper.GetExtension(storageFileName); translatedDocumentName = localFileName.Replace($".{extension}", $".{languageCode}.{extension}"); // Move original file to SharePoint originalFileUrl = _sharePointManagementService.CopyFileToSharePoint(localFileName); // Move translated file to SharePoint translatedFileUrl = _sharePointManagementService.CopyFileToSharePoint(translatedDocumentName); } catch (Exception ex) { _loggingService.Error("Error in TranslationServiceFacade.AvailableLanguages.Wher or Helper.GetExtension or _sharePointManagementService.CopyFileToSharePoint", ex); throw; } try { // Delete original file if (System.IO.File.Exists(localFileName)) { System.IO.File.Delete(localFileName); } // Delete translated file if (System.IO.File.Exists(translatedDocumentName)) { System.IO.File.Delete(translatedDocumentName); } } catch (Exception ex) { _loggingService.Error("Error in System.IO.File.Exists or System.IO.File.Delete", ex); throw; } return(new DocumentLinks { OriginalDocument = originalFileUrl, TranslatedDocument = translatedFileUrl }); }