Beispiel #1
0
        // Token: 0x06001E25 RID: 7717 RVA: 0x000AED6C File Offset: 0x000ACF6C
        public static FreeBusyQueryResult[] BatchLoadData(UserContext userContext, string[] smtpAddresses, StoreObjectId[] folderStoreIds, DateRange[] dateRanges)
        {
            if (smtpAddresses == null || smtpAddresses.Length == 0)
            {
                throw new ArgumentNullException("smtpAddresses");
            }
            if (dateRanges == null || dateRanges.Length == 0)
            {
                throw new ArgumentNullException("dateRanges");
            }
            ExTraceGlobals.CalendarCallTracer.TraceDebug(0L, "GSCalendarDataSource.Load");
            AvailabilityQuery availabilityQuery = new AvailabilityQuery();

            availabilityQuery.MailboxArray  = new MailboxData[smtpAddresses.Length];
            availabilityQuery.ClientContext = ClientContext.Create(userContext.LogonIdentity.ClientSecurityContext, userContext.ExchangePrincipal.MailboxInfo.OrganizationId, OwaContext.TryGetCurrentBudget(), userContext.TimeZone, userContext.UserCulture, AvailabilityQuery.CreateNewMessageId());
            for (int i = 0; i < smtpAddresses.Length; i++)
            {
                availabilityQuery.MailboxArray[i]                    = new MailboxData();
                availabilityQuery.MailboxArray[i].Email              = new EmailAddress();
                availabilityQuery.MailboxArray[i].Email.Address      = smtpAddresses[i];
                availabilityQuery.MailboxArray[i].AssociatedFolderId = folderStoreIds[i];
            }
            availabilityQuery.DesiredFreeBusyView = new FreeBusyViewOptions
            {
                TimeWindow = new Duration(),
                TimeWindow =
                {
                    StartTime = (DateTime)DateRange.GetMinStartTimeInRangeArray(dateRanges),
                    EndTime   = (DateTime)DateRange.GetMaxEndTimeInRangeArray(dateRanges)
                },
                MergedFreeBusyIntervalInMinutes = userContext.UserOptions.HourIncrement,
                RequestedView = FreeBusyViewType.Detailed
            };
            AvailabilityQueryResult availabilityQueryResult = Utilities.ExecuteAvailabilityQuery(availabilityQuery);

            if (availabilityQueryResult == null)
            {
                return(null);
            }
            return(availabilityQueryResult.FreeBusyResults);
        }
Beispiel #2
0
        protected void RenderOOF(TextWriter writer)
        {
            if (writer == null)
            {
                throw new ArgumentNullException("writer");
            }
            AvailabilityQuery availabilityQuery = new AvailabilityQuery();

            if (HttpContext.Current != null)
            {
                availabilityQuery.HttpResponse = HttpContext.Current.Response;
            }
            availabilityQuery.MailboxArray                  = new MailboxData[1];
            availabilityQuery.MailboxArray[0]               = new MailboxData();
            availabilityQuery.MailboxArray[0].Email         = new EmailAddress();
            availabilityQuery.MailboxArray[0].Email.Address = base.ADRecipient.PrimarySmtpAddress.ToString();
            availabilityQuery.ClientContext                 = ClientContext.Create(base.UserContext.LogonIdentity.ClientSecurityContext, base.UserContext.ExchangePrincipal.MailboxInfo.OrganizationId, OwaContext.TryGetCurrentBudget(), base.UserContext.TimeZone, base.UserContext.UserCulture, AvailabilityQuery.CreateNewMessageId());
            ExDateTime date       = DateTimeUtilities.GetLocalTime().Date;
            ExDateTime exDateTime = date.IncrementDays(1);

            availabilityQuery.DesiredFreeBusyView = new FreeBusyViewOptions
            {
                RequestedView = FreeBusyViewType.Detailed,
                MergedFreeBusyIntervalInMinutes = 1440,
                TimeWindow = new Duration((DateTime)date, (DateTime)exDateTime.IncrementDays(1))
            };
            AvailabilityQueryResult availabilityQueryResult;

            if (Utilities.ExecuteAvailabilityQuery(base.OwaContext, availabilityQuery, true, out availabilityQueryResult))
            {
                FreeBusyQueryResult freeBusyQueryResult = availabilityQueryResult.FreeBusyResults[0];
                if (freeBusyQueryResult != null)
                {
                    string currentOofMessage = freeBusyQueryResult.CurrentOofMessage;
                    if (!string.IsNullOrEmpty(currentOofMessage))
                    {
                        writer.Write("<tr><td class=\"spcOP\"></td></tr>");
                        writer.Write("<tr><td class=\"oof oofF\">");
                        writer.Write(LocalizedStrings.GetHtmlEncoded(77678270));
                        writer.Write("</td></tr>");
                        writer.Write("<tr><td class=\"oof\">");
                        writer.Write("<textarea name=\"off\" rows=3 cols=100 readonly>");
                        writer.Write(currentOofMessage);
                        writer.Write("</textarea>");
                    }
                }
            }
        }