コード例 #1
0
 public MonthlyViewVisualContainer(CalendarViewBase parentView) : base(null)
 {
     if (parentView == null)
     {
         throw new ArgumentNullException("parentView");
     }
     this.mapper = new MonthlyViewVisualMapper(parentView, new MonthlyViewVisualComparer(parentView.DataSource), this);
 }
コード例 #2
0
        protected void RenderEventAreaVisual(int idx, CalendarViewBase view, CalendarVisualContainer eventArea)
        {
            bool flag = true;

            for (int i = 0; i < eventArea.Count; i++)
            {
                EventAreaVisual eventAreaVisual = (EventAreaVisual)eventArea[i];
                if (!view.IsItemRemoved(eventAreaVisual.DataIndex))
                {
                    if (!flag)
                    {
                        this.output.Write(",");
                    }
                    flag = false;
                    int num = 0;
                    if (eventAreaVisual.LeftBreak)
                    {
                        num |= 1;
                    }
                    if (eventAreaVisual.RightBreak)
                    {
                        num |= 2;
                    }
                    this.output.Write("new VisData(");
                    this.Output.Write(idx);
                    this.Output.Write(",");
                    int num2 = (this.itemIndex != null) ? ((int)this.itemIndex[eventAreaVisual.DataIndex]) : eventAreaVisual.DataIndex;
                    this.output.Write(num2);
                    this.output.Write(",");
                    this.output.Write((int)eventAreaVisual.Rect.X);
                    this.output.Write(",");
                    this.output.Write((int)eventAreaVisual.Rect.Y);
                    this.output.Write(",");
                    this.output.Write((int)eventAreaVisual.Rect.Width);
                    this.output.Write(",");
                    this.output.Write("0");
                    this.output.Write(",");
                    this.output.Write(num);
                    this.output.Write(",");
                    this.output.Write(eventAreaVisual.InnerBreaks);
                    this.output.Write(",");
                    if (num2 == this.selectedItemIndex)
                    {
                        this.output.Write("1");
                    }
                    else
                    {
                        this.output.Write("0");
                    }
                    this.output.Write(",-1");
                    this.output.Write(")");
                }
            }
        }
コード例 #3
0
        protected void RenderCalendarProperties(CalendarViewBase view)
        {
            CalendarAdapterBase calendarAdapter = view.CalendarAdapter;

            this.RenderValue(this.Output, "sFId", calendarAdapter.IdentityString);
            this.RenderValue(this.Output, "fHRtL", calendarAdapter.UserCanReadItem);
            this.RenderValue(this.Output, "Title", SanitizedHtmlString.GetSanitizedStringWithoutEncoding(calendarAdapter.CalendarTitle));
            this.RenderValue(this.Output, "sDD", view.FolderDateDescription);
            this.RenderValue(this.Output, "fCC", calendarAdapter.DataSource.UserCanCreateItem);
            CalendarAdapter calendarAdapter2 = calendarAdapter as CalendarAdapter;

            this.RenderValue(this.Output, "iSharedType", (int)calendarAdapter.DataSource.SharedType);
            if (calendarAdapter2 != null)
            {
                if (calendarAdapter2.PromotedFolderId != null)
                {
                    this.RenderValue(this.Output, "sPromotedFolderId", calendarAdapter2.PromotedFolderId.ToBase64String());
                }
                this.RenderValue(this.Output, "sLegacyDN", calendarAdapter2.LegacyDN);
                if (calendarAdapter2.DataSource.SharedType == SharedType.InternalFreeBusy)
                {
                    this.RenderValue(this.Output, "sCalendarOwnerDisplayName", calendarAdapter2.CalendarOwnerDisplayName);
                }
                this.RenderValue(this.Output, "iOlderExchangeCalendarType", (int)calendarAdapter2.OlderExchangeSharedCalendarType);
                this.RenderColor(calendarAdapter2);
                this.RenderValue(this.Output, "fPublishedOut", calendarAdapter2.IsPublishedOut);
                if (calendarAdapter2.IsExternalSharedInFolder)
                {
                    if (calendarAdapter2.LastAttemptTime != ExDateTime.MinValue)
                    {
                        this.RenderValue(this.Output, "dtSyncTime", calendarAdapter2.LastAttemptTime.ToString("g", this.SessionContext.UserCulture));
                    }
                    if (calendarAdapter2.LastSuccessSyncTime != ExDateTime.MinValue)
                    {
                        this.RenderValue(this.Output, "dtSuccessSyncTime", calendarAdapter2.LastSuccessSyncTime.ToString("g", this.SessionContext.UserCulture));
                    }
                }
                this.RenderValue(this.Output, "fArchive", calendarAdapter2.IsInArchiveMailbox);
                if (calendarAdapter2.DataSource.SharedType == SharedType.WebCalendar)
                {
                    this.RenderValue(this.Output, "sWebCalUrl", calendarAdapter2.WebCalendarUrl);
                    return;
                }
            }
            else if (calendarAdapter is PublishedCalendarAdapter)
            {
                PublishedCalendarAdapter publishedCalendarAdapter = (PublishedCalendarAdapter)calendarAdapter;
                this.RenderValue(this.Output, "sPublishRange", SanitizedHtmlString.Format(LocalizedStrings.GetNonEncoded(-1428371010), new object[]
                {
                    publishedCalendarAdapter.PublishedFromDateTime.ToShortDateString(),
                    publishedCalendarAdapter.PublishedToDateTime.ToShortDateString()
                }));
            }
        }
コード例 #4
0
 public MonthlyViewVisualMapper(CalendarViewBase parentView, IComparer <CalendarVisual> comparer, CalendarVisualContainer container) : base(parentView, comparer, container)
 {
 }
コード例 #5
0
        protected void RenderData(CalendarViewBase view, OwaStoreObjectId selectedItemId)
        {
            bool flag = true;
            int  num  = 0;

            if (view.RemovedItemCount > 0)
            {
                this.itemIndex = new Hashtable();
            }
            else
            {
                this.itemIndex = null;
            }
            this.selectedItemIndex = -1;
            TimeSpan       t = TimeSpan.MinValue;
            PositionInTime positionInTime = PositionInTime.None;
            int            num2           = 0;

            for (int i = 0; i < view.DataSource.Count; i++)
            {
                if (!view.IsItemRemoved(i))
                {
                    bool             flag2  = false;
                    OwaStoreObjectId itemId = view.DataSource.GetItemId(i);
                    if (view.DataSource.SharedType != SharedType.None)
                    {
                        flag2 = view.DataSource.IsPrivate(i);
                    }
                    if (!flag)
                    {
                        this.output.Write(",");
                    }
                    flag = false;
                    num2++;
                    if (this.itemIndex != null)
                    {
                        this.itemIndex[i] = num;
                        num++;
                    }
                    ExDateTime startTime = view.DataSource.GetStartTime(i);
                    ExDateTime endTime   = view.DataSource.GetEndTime(i);
                    if (flag2)
                    {
                        this.RenderPrivateAppointmentData(startTime, endTime);
                    }
                    else
                    {
                        this.RenderAppointmentData(view, i, startTime, endTime);
                    }
                    if (!flag2)
                    {
                        if (selectedItemId != null)
                        {
                            if (selectedItemId.Equals(itemId))
                            {
                                this.selectedItemIndex = ((this.itemIndex != null) ? ((int)this.itemIndex[i]) : i);
                            }
                        }
                        else
                        {
                            bool           flag3     = false;
                            TimeSpan       timeSpan  = TimeSpan.MinValue;
                            ExDateTime     localTime = DateTimeUtilities.GetLocalTime();
                            PositionInTime positionInTime2;
                            if (endTime < localTime)
                            {
                                positionInTime2 = PositionInTime.Past;
                            }
                            else if (startTime > localTime)
                            {
                                positionInTime2 = PositionInTime.Future;
                            }
                            else
                            {
                                positionInTime2 = PositionInTime.Present;
                            }
                            if (positionInTime2 == PositionInTime.Past)
                            {
                                timeSpan = localTime - endTime;
                                if (positionInTime == PositionInTime.Past)
                                {
                                    if (timeSpan < t)
                                    {
                                        flag3 = true;
                                    }
                                }
                                else if (positionInTime == PositionInTime.None)
                                {
                                    flag3 = true;
                                }
                            }
                            else if (positionInTime2 == PositionInTime.Present)
                            {
                                timeSpan = endTime - localTime;
                                if (positionInTime == PositionInTime.Present)
                                {
                                    if (timeSpan < t)
                                    {
                                        flag3 = true;
                                    }
                                }
                                else
                                {
                                    flag3 = true;
                                }
                            }
                            else if (positionInTime2 == PositionInTime.Future)
                            {
                                timeSpan = startTime - localTime;
                                if (positionInTime == PositionInTime.Future)
                                {
                                    timeSpan = startTime - localTime;
                                    if (timeSpan < t)
                                    {
                                        flag3 = true;
                                    }
                                }
                                else if (positionInTime == PositionInTime.Past || positionInTime == PositionInTime.None)
                                {
                                    flag3 = true;
                                }
                            }
                            if (flag3)
                            {
                                this.selectedItemIndex = ((this.itemIndex != null) ? ((int)this.itemIndex[i]) : i);
                                t = timeSpan;
                                positionInTime = positionInTime2;
                            }
                        }
                    }
                }
            }
        }
コード例 #6
0
        private void RenderAppointmentData(CalendarViewBase view, int i, ExDateTime itemStart, ExDateTime itemEnd)
        {
            ICalendarDataSource     dataSource      = view.DataSource;
            CalendarItemTypeWrapper wrappedItemType = dataSource.GetWrappedItemType(i);

            this.output.Write("new Item(\"");
            OwaStoreObjectId            itemId    = dataSource.GetItemId(i);
            string                      changeKey = dataSource.GetChangeKey(i);
            PublishedCalendarDataSource publishedCalendarDataSource = dataSource as PublishedCalendarDataSource;

            if (publishedCalendarDataSource != null && publishedCalendarDataSource.DetailLevel != DetailLevelEnumType.AvailabilityOnly)
            {
                StoreObjectId itemStoreObjectId = publishedCalendarDataSource.GetItemStoreObjectId(i);
                Utilities.JavascriptEncode(itemStoreObjectId.ToString(), this.output);
                this.output.Write("\",\"");
                if (this.IsOneOfRecurrence(wrappedItemType))
                {
                    StoreObjectId storeObjectId = StoreObjectId.FromProviderSpecificId(itemStoreObjectId.ProviderLevelItemId);
                    Utilities.JavascriptEncode(storeObjectId.ToString(), this.output);
                }
                else
                {
                    this.output.Write("0");
                }
            }
            else
            {
                if (itemId != null)
                {
                    Utilities.JavascriptEncode(itemId.ToString(), this.output);
                }
                this.output.Write("\",\"");
                if (itemId != null && this.IsOneOfRecurrence(wrappedItemType))
                {
                    OwaStoreObjectId providerLevelItemId = itemId.ProviderLevelItemId;
                    Utilities.JavascriptEncode(providerLevelItemId.ToString(), this.output);
                }
                else
                {
                    this.output.Write("0");
                }
            }
            this.output.Write("\",\"");
            if (changeKey != null)
            {
                Utilities.JavascriptEncode(changeKey, this.output);
            }
            this.output.Write("\",\"");
            this.output.Write(DateTimeUtilities.GetJavascriptDate(itemStart));
            this.output.Write("\",\"");
            this.output.Write(DateTimeUtilities.GetJavascriptDate(itemEnd));
            this.output.Write("\",\"");
            Utilities.JavascriptEncode(dataSource.GetSubject(i), this.output);
            this.output.Write("\",\"");
            Utilities.JavascriptEncode(dataSource.GetLocation(i), this.output);
            BusyTypeWrapper wrappedBusyType = dataSource.GetWrappedBusyType(i);

            this.output.Write("\",");
            this.output.Write((int)wrappedBusyType);
            this.output.Write(",\"");
            if (itemId != null)
            {
                Utilities.JavascriptEncode(ObjectClass.GetContainerMessageClass(itemId.StoreObjectType), this.output);
            }
            this.output.Write("\"");
            bool flag = dataSource.IsMeeting(i);

            this.output.Write(flag ? ",1" : ",0");
            this.output.Write(dataSource.IsCancelled(i) ? ",1" : ",0");
            bool flag2 = dataSource.IsOrganizer(i);

            this.output.Write(flag2 ? ",1" : ",0");
            this.output.Write(",\"");
            if (flag)
            {
                Utilities.JavascriptEncode(dataSource.GetOrganizerDisplayName(i), this.output);
            }
            this.output.Write("\"");
            bool flag3 = dataSource.IsPrivate(i);

            this.output.Write(flag3 ? ",1," : ",0,");
            this.output.Write((int)wrappedItemType);
            this.output.Write(dataSource.HasAttachment(i) ? ",1" : ",0");
            this.output.Write(",\"");
            this.output.Write(dataSource.GetCssClassName(i));
            this.output.Write("\"");
            this.output.Write(")");
        }