Exemplo n.º 1
0
        void LoadContentObject(string selection)
        {
            UIEventView.Children.Clear();
            switch (selection)
            {
            case "month":
                cViewMethods = CalendarViewCore.CalendarViewMethods.month;
                List <DayElement> month = TimeSelectionEvents.GetDayElements(selectedDay, cViewMethods);
                UIEventView.Children.Add(new MonthView(month));
                break;

            case "week":
                cViewMethods = CalendarViewCore.CalendarViewMethods.week;
                List <DayElement> days = TimeSelectionEvents.GetDayElements(selectedDay, cViewMethods);
                UIEventView.Children.Add(new WeekView(days));
                break;


            default:
                cViewMethods = CalendarViewCore.CalendarViewMethods.month;
                List <DayElement> monthSel = TimeSelectionEvents.GetDayElements(selectedDay, cViewMethods);
                UIEventView.Children.Add(new MonthView(monthSel));
                break;
            }
        }
        public WeekCalendarView(DayElement[] elements, CalendarViewCore.CalendarViewMethods week = CalendarViewCore.CalendarViewMethods.month)
        {
            InitializeComponent();

            if (elements.Length == 7)
            {
                for (int i = 0; i < 7; i++)
                {
                    addChildren(elements[i], i);
                }
            }
        }
        public static List <DayElement> GetDayElements(DateTime selectedDate, CalendarViewCore.CalendarViewMethods selectionMethod)
        {
            DateTime          startDate = selectedDate;
            List <DayElement> dElem     = new List <DayElement>();

            if (selectionMethod == CalendarViewCore.CalendarViewMethods.month)
            {
                startDate = startDate.AddDays(1 - startDate.Day);

                while (startDate.DayOfWeek != DayOfWeek.Monday)
                {
                    startDate = startDate.AddDays(-1);
                }

                for (int i = 0; i < 35; i++)
                {
                    DateTime dt = startDate.AddDays(i);

                    DayElement d = new DayElement()
                    {
                        dateTime = dt,
                        name     = dt.DayOfWeek.ToString()
                    };
                    if (d.dateTime.Month == selectedDate.Month)
                    {
                        d.isSameMonth = true;
                    }
                    else
                    {
                        d.isSameMonth = false;
                    }
                    if (d.dateTime.Date == DateTime.Now.Date)
                    {
                        d.isTheSameDay = true;
                    }

                    d.cobjs = new List <calendarObject>();

                    dElem.Add(d);
                }
            }
            else if (selectionMethod == CalendarViewCore.CalendarViewMethods.week)
            {
                int      dayPos   = 0;
                string   dayW     = startDate.DayOfWeek.ToString();
                string[] daysName = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };
                if (daysName.Contains(dayW))
                {
                    for (int i = 0; i < daysName.Length; i++)
                    {
                        if (dayW == daysName[i])
                        {
                            dayPos = i;
                        }
                    }
                }


                for (int i = 0; i < daysName.Length; i++)
                {
                    DayElement day = new DayElement()
                    {
                        name     = daysName[i],
                        dateTime = startDate.AddDays(i - dayPos)
                    };

                    if (day.dateTime.Date == selectedDate.Date)
                    {
                        day.isTheSameDay = true;
                    }


                    day.cobjs = new List <calendarObject>();
                    dElem.Add(day);
                }
            }

            List <calendarObject> cObjs = AppCore.dCore.CalendarObjectManager.ListAllCalendarObjectsBySelection(Core.AppCore.mainProjectTableName, CalendarObjectManager.SelectionType.isDateUsed);

            foreach (calendarObject cObj in cObjs)
            {
                for (int i = 0; i < dElem.Count; i++)
                {
                    if (Date.isDateBetween(cObj, dElem[i].dateTime))
                    {
                        dElem[i].cobjs.Add(cObj);

                        if (cObj.isMoreThanOneDay == true)
                        {
                            dElem[i].cobjsDifferentDays.Add(cObj);
                        }
                        else
                        {
                            dElem[i].cobjOneDay.Add(cObj);
                        }
                    }
                    else
                    {
                        // what is the point of this method ?
                        dElem[i].cobjs.Add(null);
                    }
                }
            }

            return(dElem);
        }