private bool TryProcessSubscriptionRequest(FblRequestParameters fblRequestParameters) { if (fblRequestParameters == null) { return(false); } ExPerformanceCounter exPerformanceCounter = fblRequestParameters.OptIn ? FBLPerfCounters.NumberOfFblOptInRequestsReceived : FBLPerfCounters.NumberOfFblOptOutRequestsReceived; ExPerformanceCounter successSubscriptionCounter = fblRequestParameters.OptIn ? FBLPerfCounters.NumberOfFblOptInRequestsSuccessfullyProcessed : FBLPerfCounters.NumberOfFblOptOutRequestsSuccessfullyProcessed; ExPerformanceCounter failedSubscriptionCounter = fblRequestParameters.OptIn ? FBLPerfCounters.NumberOfFblOptInRequestsFailed : FBLPerfCounters.NumberOfFblOptOutRequestsFailed; try { FBLPerfCounters.NumberOfFblSubscriptionRequestsReceived.Increment(); exPerformanceCounter.Increment(); ADUser aduser = this.GetADUser(fblRequestParameters.Puid, fblRequestParameters.PrimaryEmail); if (aduser == null || !this.TryUpdateMservEntry(aduser, fblRequestParameters)) { FBLPerfCounters.NumberOfFblSubscriptionRequestsFailed.Increment(); failedSubscriptionCounter.Increment(); return(false); } Task.Factory.StartNew(delegate() { if (this.TryPrepareAndSendXmrMessage(fblRequestParameters, "*****@*****.**")) { FBLPerfCounters.NumberOfFblSubscriptionRequestsSuccessfullyProcessed.Increment(); successSubscriptionCounter.Increment(); return; } FBLPerfCounters.NumberOfFblSubscriptionRequestsFailed.Increment(); failedSubscriptionCounter.Increment(); }).ContinueWith(delegate(Task t) { if (t.Exception != null) { FBLPerfCounters.NumberOfFblSubscriptionRequestsFailed.Increment(); failedSubscriptionCounter.Increment(); Exception innerException = t.Exception.Flatten().InnerException; LoggingUtilities.LogEvent(ClientsEventLogConstants.Tuple_FblUnableToProcessRequest, new object[] { innerException }); } }, TaskContinuationOptions.OnlyOnFaulted); } catch (Exception ex) { FBLPerfCounters.NumberOfFblSubscriptionRequestsFailed.Increment(); failedSubscriptionCounter.Increment(); LoggingUtilities.LogEvent(ClientsEventLogConstants.Tuple_FblUnableToProcessRequest, new object[] { ex.InnerException ?? ex }); return(false); } return(true); }
// Token: 0x06001122 RID: 4386 RVA: 0x000470CC File Offset: 0x000452CC private static TimeZoneOffsets.TimeZoneOffsetTable BuildCache(int startYear, int endYear, ExPerformanceCounter performanceCounter) { if (performanceCounter != null) { performanceCounter.Increment(); } TimeZoneOffsets.TimeZoneOffsetTable timeZoneOffsetTable = new TimeZoneOffsets.TimeZoneOffsetTable(); timeZoneOffsetTable.StartYear = startYear; timeZoneOffsetTable.EndYear = endYear; List <TimeZoneOffset> list = new List <TimeZoneOffset>(); foreach (ExTimeZone exTimeZone in ExTimeZoneEnumerator.Instance) { TimeZoneOffset timeZoneOffset = new TimeZoneOffset(); timeZoneOffset.TimeZoneId = exTimeZone.Id; List <TimeZoneRange> list2 = new List <TimeZoneRange>(); ExDateTime t = new ExDateTime(ExTimeZone.UtcTimeZone, endYear + 1, 1, 1); ExDateTime exDateTime = new ExDateTime(ExTimeZone.UtcTimeZone, startYear, 1, 1); for (;;) { int num = (int)exTimeZone.ConvertDateTime(exDateTime).Bias.TotalMinutes; list2.Add(new TimeZoneRange { UtcTime = exDateTime, Offset = num }); TimeSpan timeSpan = TimeSpan.Zero; TimeSpan timeSpan2 = TimeSpan.Zero; while (exDateTime + timeSpan < t && exTimeZone.ConvertDateTime(exDateTime + timeSpan2).Bias.TotalMinutes == (double)num) { timeSpan = timeSpan2; timeSpan2 = timeSpan2.Add(TimeSpan.FromDays(7.0)); } if (exDateTime + timeSpan >= t) { break; } while ((timeSpan2 - timeSpan).TotalMilliseconds > 1.0) { TimeSpan timeSpan3 = timeSpan.Add(TimeSpan.FromMilliseconds((timeSpan2.TotalMilliseconds - timeSpan.TotalMilliseconds) / 2.0)); if (exTimeZone.ConvertDateTime(exDateTime + timeSpan3).Bias.TotalMinutes == (double)num) { timeSpan = timeSpan3; } else { timeSpan2 = timeSpan3; } } exDateTime += timeSpan2; } timeZoneOffset.OffsetRanges = list2.ToArray(); list.Add(timeZoneOffset); } timeZoneOffsetTable.TimeZoneOffsets = list.ToArray(); return(timeZoneOffsetTable); }
// Token: 0x06000A2C RID: 2604 RVA: 0x000434E8 File Offset: 0x000416E8 private static void SendTextMessage(MailboxSession session, IList <E164Number> recipients, string content, ExPerformanceCounter perfcounter) { StoreObjectId destFolderId = session.GetDefaultFolderId(DefaultFolderType.Drafts) ?? session.GetDefaultFolderId(DefaultFolderType.Outbox); using (MessageItem messageItem = MessageItem.Create(session, destFolderId)) { messageItem.ClassName = "IPM.Note.Mobile.SMS.Alert.Calendar"; messageItem.From = new Participant(session.MailboxOwner); foreach (E164Number e164Number in recipients) { messageItem.Recipients.Add(new Participant(null, e164Number.Number, "MOBILE"), RecipientItemType.To); } using (TextWriter textWriter = messageItem.Body.OpenTextWriter(BodyFormat.TextPlain)) { textWriter.Write(content); } messageItem.Send(); perfcounter.Increment(); CalNotifsCounters.NumberOfNotificationsSent.Increment(); } }