public void Write(ExchangeAdminAuditRecord record) { Stopwatch stopwatch = Stopwatch.StartNew(); using (AdminAuditOpticsLogData adminAuditOpticsLogData = new AdminAuditOpticsLogData()) { try { adminAuditOpticsLogData.Tenant = (string.IsNullOrEmpty(record.OrganizationName) ? "First Org" : record.OrganizationName); adminAuditOpticsLogData.CmdletName = record.Operation; adminAuditOpticsLogData.ExternalAccess = record.ExternalAccess; adminAuditOpticsLogData.OperationSucceeded = (record.Succeeded ?? false); adminAuditOpticsLogData.RecordId = record.Id; adminAuditOpticsLogData.Asynchronous = true; IAuditLog auditLog = this.GetAuditLog(record.OrganizationId ?? string.Empty, record); IAuditLogRecord auditRecord = this.ConvertAuditRecord(record); adminAuditOpticsLogData.RecordSize = auditLog.WriteAuditRecord(auditRecord); adminAuditOpticsLogData.LoggingError = null; adminAuditOpticsLogData.AuditSucceeded = true; } catch (Exception loggingError) { adminAuditOpticsLogData.LoggingError = loggingError; adminAuditOpticsLogData.AuditSucceeded = false; throw; } finally { adminAuditOpticsLogData.LoggingTime = stopwatch.ElapsedMilliseconds; } } }
public IEnumerable <KeyValuePair <string, string> > GetDetails() { AuditLogRecord.RecordVisitor recordVisitor = new AuditLogRecord.RecordVisitor(this.trace); this.record.Visit(recordVisitor); IAuditLogRecord result = recordVisitor.Result; return(result.GetDetails()); }
public int WriteAuditRecord(IAuditLogRecord auditRecord) { this.ewsClient.RefreshUrl(false); int result = 0; CreateItemType createItemType = EwsAuditLog.GetCreateItemType(auditRecord, this.auditFolderId, out result); this.ewsClient.CreateItem(createItemType); return(result); }
public static string GetAsString(IAuditLogRecord auditRecord) { StringBuilder stringBuilder = new StringBuilder(1024); foreach (KeyValuePair <string, string> keyValuePair in auditRecord.GetDetails()) { stringBuilder.AppendFormat("{0}{1} {2}\r\n", keyValuePair.Key, ":", keyValuePair.Value); } return(stringBuilder.ToString()); }
public int WriteAuditRecord(IAuditLogRecord auditRecord) { if (this.recordFormatter == null) { throw new InvalidOperationException("Audit log is not configured properly."); } int result; using (MessageItem messageItem = MessageItem.Create(this.Session, this.LogFolderId)) { result = this.recordFormatter(auditRecord, messageItem); messageItem.Save(SaveMode.NoConflictResolutionForceSave); } return(result); }
public static int SerializeMailboxAuditRecord(IAuditLogRecord auditRecord, MessageItem auditMessage) { int result = 0; BodyWriteConfiguration configuration = new BodyWriteConfiguration(BodyFormat.TextPlain); using (TextWriter textWriter = auditMessage.Body.OpenTextWriter(configuration)) { string asString = AuditLogParseSerialize.GetAsString(auditRecord); textWriter.Write(asString); result = Encoding.Unicode.GetByteCount(asString); } ExTraceGlobals.FaultInjectionTracer.TraceTest(2219191613U); auditMessage.ClassName = "IPM.AuditLog"; return(result); }
private static CreateItemType GetCreateItemType(IAuditLogRecord auditRecord, BaseFolderIdType targetFolderId, out int recordSize) { string asString = AuditLogParseSerialize.GetAsString(auditRecord); string text = string.Format("{0} : {1}", auditRecord.UserId, auditRecord.Operation); string text2 = string.Format("{0}{1}", auditRecord.UserId, "audit"); string text3 = string.Format("{0}{1}", auditRecord.ObjectId, "audit"); recordSize = Encoding.Unicode.GetByteCount(text) + Encoding.Unicode.GetByteCount(asString) + Encoding.Unicode.GetByteCount(text2) + Encoding.Unicode.GetByteCount(text3); return(new CreateItemType { MessageDisposition = MessageDispositionType.SaveOnly, MessageDispositionSpecified = true, SavedItemFolderId = new TargetFolderIdType { Item = targetFolderId }, Items = new NonEmptyArrayOfAllItemsType { Items = new ItemType[] { new MessageType { ItemClass = "IPM.AuditLog", Subject = text, Body = new BodyType { Value = asString, BodyType1 = BodyTypeType.Text }, From = new SingleRecipientType { Item = new EmailAddressType { Name = text2 } }, ToRecipients = new EmailAddressType[] { new EmailAddressType { Name = text3 } } } } } }); }
public static int SerializeAdminAuditRecord(IAuditLogRecord auditRecord, MessageItem auditMessage) { int result = 0; auditMessage.Subject = string.Format("{0} : {1}", auditRecord.UserId, auditRecord.Operation); BodyWriteConfiguration configuration = new BodyWriteConfiguration(BodyFormat.TextPlain); using (TextWriter textWriter = auditMessage.Body.OpenTextWriter(configuration)) { string asString = AuditLogParseSerialize.GetAsString(auditRecord); textWriter.Write(asString); result = Encoding.Unicode.GetByteCount(asString); } auditMessage.From = new Participant(string.Format("{0}{1}", auditRecord.UserId, "audit"), string.Empty, string.Empty); auditMessage.Recipients.Add(new Participant(string.Format("{0}{1}", auditRecord.ObjectId, "audit"), string.Empty, string.Empty)); auditMessage.ClassName = "IPM.AuditLog"; return(result); }
public void Visit(ExchangeMailboxAuditGroupRecord record) { this.Result = AuditLogRecord.FillMailboxAuditGroupRecordDetails(record, this.trace); }
public void Visit(ExchangeAdminAuditRecord record) { this.Result = AuditLogRecord.FillAdminRecordDetails(record, this.trace); }