private static MailboxReplicationServiceFault Create(Exception ex) { if (ex == null) { return(null); } MailboxReplicationServiceFault mailboxReplicationServiceFault = new MailboxReplicationServiceFault(); if (ex is LocalizedException) { mailboxReplicationServiceFault.MessageData = CommonUtils.ByteSerialize(((LocalizedException)ex).LocalizedString); } else { mailboxReplicationServiceFault.MessageData = CommonUtils.ByteSerialize(new LocalizedString(ex.Message)); } mailboxReplicationServiceFault.Side = (ExecutionContext.GetExceptionSide(ex) ?? ExceptionSide.None); mailboxReplicationServiceFault.ExceptionType = CommonUtils.GetFailureType(ex); mailboxReplicationServiceFault.StackTrace = ex.StackTrace; mailboxReplicationServiceFault.DataContextData = CommonUtils.ByteSerialize(new LocalizedString(ExecutionContext.GetDataContext(ex))); mailboxReplicationServiceFault.ErrorCode = CommonUtils.HrFromException(ex); mailboxReplicationServiceFault.MapiLowLevelError = CommonUtils.GetMapiLowLevelError(ex); mailboxReplicationServiceFault.MrsErrorType = MailboxReplicationServiceFault.ClassifyException(ex); WellKnownException[] array = CommonUtils.ClassifyException(ex); mailboxReplicationServiceFault.WKEClasses = new int[array.Length]; for (int i = 0; i < array.Length; i++) { mailboxReplicationServiceFault.WKEClasses[i] = (int)array[i]; } StaticCapacityExceededReservationException ex2 = ex as StaticCapacityExceededReservationException; if (ex2 != null) { mailboxReplicationServiceFault.ResourceName = ex2.ResourceName; mailboxReplicationServiceFault.ResourceType = ex2.ResourceType; mailboxReplicationServiceFault.Capacity = ex2.Capacity; } WlmCapacityExceededReservationException ex3 = ex as WlmCapacityExceededReservationException; if (ex3 != null) { mailboxReplicationServiceFault.ResourceName = ex3.ResourceName; mailboxReplicationServiceFault.ResourceType = ex3.ResourceType; mailboxReplicationServiceFault.WlmResourceKey = ex3.WlmResourceKey; mailboxReplicationServiceFault.WlmResourceMetricType = ex3.WlmResourceMetricType; mailboxReplicationServiceFault.Capacity = ex3.Capacity; } WlmResourceUnhealthyException ex4 = ex as WlmResourceUnhealthyException; if (ex4 != null) { mailboxReplicationServiceFault.ResourceName = ex4.ResourceName; mailboxReplicationServiceFault.ResourceType = ex4.ResourceType; mailboxReplicationServiceFault.WlmResourceKey = ex4.WlmResourceKey; mailboxReplicationServiceFault.WlmResourceMetricType = ex4.WlmResourceMetricType; mailboxReplicationServiceFault.LoadRatio = ex4.ReportedLoadRatio; mailboxReplicationServiceFault.LoadState = ex4.ReportedLoadState; mailboxReplicationServiceFault.LoadMetric = ex4.Metric; } mailboxReplicationServiceFault.InnerException = MailboxReplicationServiceFault.Create(ex.InnerException); return(mailboxReplicationServiceFault); }
public static void Throw(Exception ex) { MailboxReplicationServiceFault mailboxReplicationServiceFault = MailboxReplicationServiceFault.Create(ex); throw new FaultException <MailboxReplicationServiceFault>(mailboxReplicationServiceFault, mailboxReplicationServiceFault.Message); }