// Token: 0x0600112F RID: 4399 RVA: 0x00063E70 File Offset: 0x00062070 private GrammarGeneratorTaskContext InitializeTask(RecipientType recipientType, DirectoryProcessorBaseTaskContext context) { base.Logger.TraceDebug(this, "Entering GrammarGenerator.InitializeTask recipientType='{0}'", new object[] { recipientType }); UmGlobals.ExEvent.LogEvent(UMEventLogConstants.Tuple_GrammarGenerationStarted, null, new object[] { base.TenantId, base.RunId, recipientType.ToString() }); GrammarFileDistributionShare.CreateDirectoryProcessorFolder(); IGrammarGeneratorInterface grammarGeneratorInstance = null; if (recipientType != RecipientType.User) { if (recipientType != RecipientType.Group) { ExAssert.RetailAssert(false, "Unsupported recipient type"); } else { grammarGeneratorInstance = new DLGrammarGenerator(base.Logger); } } else { grammarGeneratorInstance = new UserGrammarGenerator(base.Logger, base.OrgId); } CultureInfo[] grammarCultures = UMGrammarTenantCache.Instance.GetGrammarCultures(); return(new GrammarGeneratorTaskContext(context.MailboxData, context.Job, context.TaskQueue, context.Step, context.TaskStatus, grammarGeneratorInstance, grammarCultures, base.Logger, context.RunData, context.DeferredFinalizeTasks)); }
// Token: 0x06001147 RID: 4423 RVA: 0x00064DBC File Offset: 0x00062FBC public GrammarGeneratorTaskContext(MailboxData mailboxData, TimeBasedDatabaseJob job, Queue <TaskQueueItem> taskQueue, AssistantStep step, TaskStatus taskStatus, IGrammarGeneratorInterface grammarGeneratorInstance, CultureInfo[] grammarCultures, Logger logger, RunData runData, IList <DirectoryProcessorBaseTask> deferredFinalizeTasks) : base(mailboxData, job, taskQueue, step, taskStatus, runData, deferredFinalizeTasks) { ValidateArgument.NotNull(grammarGeneratorInstance, "grammarGeneratorInstance"); ValidateArgument.NotNull(grammarCultures, "grammarCultures"); ValidateArgument.NotNull(logger, "logger"); this.GrammarCultures = grammarCultures; this.CultureIdx = 0; this.Logger = logger; this.GrammarGeneratorInstance = grammarGeneratorInstance; }
// Token: 0x06001130 RID: 4400 RVA: 0x00063F64 File Offset: 0x00062164 private List <string> GenerateGrammar(CultureInfo c, IGrammarGeneratorInterface generatorInstance) { base.Logger.TraceDebug(this, "Entering GrammarGenerator.GenerateGrammar culture='{0}'", new object[] { c }); string runFolderPath = base.RunData.RunFolderPath; string adentriesFileName = generatorInstance.ADEntriesFileName; List <string> list = null; try { string entriesFilePath = ADCrawler.GetEntriesFilePath(runFolderPath, adentriesFileName); List <DirectoryGrammar> grammarList = generatorInstance.GetGrammarList(); list = new List <string>(grammarList.Count); UmGlobals.ExEvent.LogEvent(UMEventLogConstants.Tuple_GrammarGenerationWritingGrammarEntriesStarted, null, new object[] { adentriesFileName, c.Name, base.TenantId, base.RunId }); string grammarFileFolderPath = GrammarFileDistributionShare.GetGrammarFileFolderPath(base.OrgId, base.MailboxGuid, base.RunId, c); Directory.CreateDirectory(grammarFileFolderPath); string recognizerId = SpeechRecognizerInfo.GetRecognizerId(c); if (recognizerId != null) { string grammarFolderPath = GrammarFileDistributionShare.GetGrammarFolderPath(base.OrgId, base.MailboxGuid); INormalizationCacheFileStore cacheFileStore = NormalizationCacheMailboxFileStore.FromMailboxGuid(base.OrgId, base.MailboxGuid); using (SpeechRecognitionEngine speechRecognitionEngine = new SpeechRecognitionEngine(recognizerId)) { using (XmlReader xmlReader = XmlReader.Create(entriesFilePath)) { using (GrammarGenerationLog grammarGenerationLog = new GrammarGenerationLog(grammarFileFolderPath, base.Logger)) { NameNormalizer nameNormalizer = new NameNormalizer(c, speechRecognitionEngine, adentriesFileName, grammarFolderPath, base.Logger, cacheFileStore); this.InitializeGrammars(grammarFileFolderPath, c, grammarList); if (xmlReader.ReadToFollowing("ADEntry")) { for (;;) { ADEntry adentry = this.LoadADEntry(xmlReader, nameNormalizer, grammarGenerationLog); if (adentry != null && !this.WriteADEntryToGrammars(adentry, grammarList)) { break; } base.RunData.ThrowIfShuttingDown(); if (!xmlReader.ReadToFollowing("ADEntry")) { goto IL_18A; } } base.Logger.TraceError(this, "GrammarGenerator.Run - Cannot accept more entries in any of the grammar files", new object[0]); } IL_18A: list.AddRange(this.CompleteGrammars(grammarList)); this.UploadResults(list, nameNormalizer, c); } } goto IL_204; } } UmGlobals.ExEvent.LogEvent(UMEventLogConstants.Tuple_GrammarGenerationMissingCulture, null, new object[] { base.TenantId, c.Name, Utils.GetLocalHostFqdn() }); IL_204: UmGlobals.ExEvent.LogEvent(UMEventLogConstants.Tuple_GrammarGenerationWritingGrammarEntriesCompleted, null, new object[] { adentriesFileName, c.Name, base.TenantId, base.RunId }); } catch (Exception ex) { base.Logger.TraceError(this, "GrammarGenerator.Run - Exception='{0}'", new object[] { ex }); this.exception = ex; throw; } return(list); }