// 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: 0x06001138 RID: 4408 RVA: 0x00064A00 File Offset: 0x00062C00 private void WriteGrammarGenerationManifest(List <GrammarFileMetadata> grammarFiles) { GrammarGenerationMetadata metadata = new GrammarGenerationMetadata(1, base.TenantId, base.RunId, Utils.GetLocalHostFqdn(), "15.00.1497.010", base.RunStartTime, grammarFiles); string grammarManifestPath = GrammarFileDistributionShare.GetGrammarManifestPath(base.OrgId, base.MailboxGuid); GrammarGenerationMetadata.Serialize(metadata, grammarManifestPath); }
// Token: 0x0600105D RID: 4189 RVA: 0x0005F918 File Offset: 0x0005DB18 private void LogCompletion(DtmfMapGeneratorTaskContext taskContext, RecipientType recipientType) { base.Logger.TraceDebug(null, "Entering DtmfMapGenerator.LogCompletion recipientType='{0}'", new object[] { recipientType }); UmGlobals.ExEvent.LogEvent(UMEventLogConstants.Tuple_DtmfMapGenerationSuccessful, null, new object[] { base.RunData.TenantId, base.RunData.RunId, recipientType }); DateTime runStartTime = base.RunStartTime; DateTime lastFullUpdateTimeUtc = taskContext.IsFullUpdate ? base.RunStartTime : taskContext.Metadata.LastFullUpdateTimeUtc; DtmfMapGenerationMetadata metadata = new DtmfMapGenerationMetadata(1, base.TenantId, base.RunId, Utils.GetLocalHostFqdn(), "15.00.1497.010", runStartTime, lastFullUpdateTimeUtc); string metadataFileName = this.GetMetadataFileName(recipientType); string dtmfMapFolderPath = GrammarFileDistributionShare.GetDtmfMapFolderPath(base.RunData.OrgId, base.RunData.MailboxGuid); base.Logger.TraceDebug(this, "LogCompletion folderPath='{0}', fileName='{1}'", new object[] { dtmfMapFolderPath, metadataFileName }); string text = DtmfMapGenerationMetadata.Serialize(metadata, metadataFileName, dtmfMapFolderPath); if (text != null) { this.UploadMetadata(text, metadataFileName); } }
// Token: 0x060010EA RID: 4330 RVA: 0x00062FEC File Offset: 0x000611EC public void CreateRunFolder() { string grammarGenerationRunFolderPath = GrammarFileDistributionShare.GetGrammarGenerationRunFolderPath(this.OrgId, this.MailboxGuid, this.RunId); if (!Directory.Exists(grammarGenerationRunFolderPath)) { Directory.CreateDirectory(grammarGenerationRunFolderPath); } this.RunFolderPath = grammarGenerationRunFolderPath; }
// Token: 0x06001137 RID: 4407 RVA: 0x000649C0 File Offset: 0x00062BC0 internal static void CleanUpOldGrammarRuns(RunData runData, Trace Tracer) { Utils.TryDiskOperation(delegate { Guid runId = Guid.Empty; try { string grammarManifestPath = GrammarFileDistributionShare.GetGrammarManifestPath(runData.OrgId, runData.MailboxGuid); GrammarGenerationMetadata grammarGenerationMetadata = GrammarGenerationMetadata.Deserialize(grammarManifestPath); runId = grammarGenerationMetadata.RunId; } catch (Exception obj) { UmGlobals.ExEvent.LogEvent(UMEventLogConstants.Tuple_ReadLastSuccessRunIDFailed, null, new object[] { runData.TenantId, runData.RunId, CommonUtil.ToEventLogString(obj) }); } string grammarGenerationRunFolderPath = GrammarFileDistributionShare.GetGrammarGenerationRunFolderPath(runData.OrgId, runData.MailboxGuid, runId); string grammarFolderPath = GrammarFileDistributionShare.GetGrammarFolderPath(runData.OrgId, runData.MailboxGuid); string[] directories = Directory.GetDirectories(grammarFolderPath); foreach (string text in directories) { string fileName = Path.GetFileName(text); Guid b; if (Guid.TryParse(fileName, out b) && runData.RunId != b && string.Compare(text, grammarGenerationRunFolderPath, StringComparison.OrdinalIgnoreCase) != 0) { Utilities.DebugTrace(Tracer, "Deleting run directory '{0}'", new object[] { text }); Directory.Delete(text, true); } } }, delegate(Exception exception) { UmGlobals.ExEvent.LogEvent(UMEventLogConstants.Tuple_GrammarGenerationCleanupFailed, null, new object[] { runData.TenantId, runData.RunId, CommonUtil.ToEventLogString(exception) }); }); }
// Token: 0x06001063 RID: 4195 RVA: 0x0005FBD8 File Offset: 0x0005DDD8 private string GetMetadataFilePath(RecipientType recipientType) { bool flag = false; DateTime dateTime = DateTime.MinValue; string metadataFileName = this.GetMetadataFileName(recipientType); string dtmfMapFolderPath = GrammarFileDistributionShare.GetDtmfMapFolderPath(base.RunData.OrgId, base.RunData.MailboxGuid); string text = Path.Combine(dtmfMapFolderPath, metadataFileName); if (File.Exists(text)) { flag = true; dateTime = File.GetLastWriteTimeUtc(text); base.Logger.TraceDebug(this, "GetMetadataFilePath filePath='{0}' exists, lastModifiedTimeUtc='{1}'", new object[] { text, dateTime }); } if (DateTime.UtcNow - dateTime > this.MetadataExpiration) { base.Logger.TraceDebug(this, "Downloading metadata to filePath='{0}'", new object[] { text }); DtmfMapMetadataMailboxFileStore dtmfMapMetadataMailboxFileStore = DtmfMapMetadataMailboxFileStore.FromMailboxGuid(base.OrgId, base.MailboxGuid); if (dtmfMapMetadataMailboxFileStore != null && dtmfMapMetadataMailboxFileStore.DownloadMetadata(text, metadataFileName, 1.ToString(), dateTime)) { flag = true; } } if (!flag) { return(null); } return(text); }
// 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); }