Esempio n. 1
0
        /// <summary>
        /// If date is on the weekend, gets the Friday starting that weekend.
        /// Otherwise gets the NEXT Friday.
        /// </summary>
        /// <param name="date">Selected Date.</param>
        /// <returns></returns>
        public static DateTime FridayOf(DateTime date)
        {
            if (date.DayOfWeek != DayOfWeek.Friday && WeekendDays.Contains(date.DayOfWeek))
            {
                for (DateTime day = date; day.DayOfWeek != DayOfWeek.Thursday; day = day.AddDays(-1))
                {
                    if (day.DayOfWeek == DayOfWeek.Friday)
                    {
                        return(day);
                    }
                }
            }
            else if (date.DayOfWeek != DayOfWeek.Friday)
            {
                for (DateTime day = date; day.DayOfWeek != DayOfWeek.Saturday; day = day.AddDays(1))
                {
                    if (day.DayOfWeek == DayOfWeek.Friday)
                    {
                        return(day);
                    }
                }
            }

            return(date);
        }
Esempio n. 2
0
        protected void DrawNonWorkHours(PaintEventArgs e, Rectangle rect, DateTime time)
        {
            if (m_Renderer.Theme.HasAppColor(UITheme.AppColor.Weekends) && WeekendDays.Contains(time.DayOfWeek))
            {
                var weekendColor = m_Renderer.Theme.GetAppDrawingColor(UITheme.AppColor.Weekends, 128);

                // If this is also 'today' then convert to gray so it doesn't
                // impose too much when the today colour is laid on top
                if (WantDrawToday(time))
                {
                    weekendColor = DrawingColor.ToGray(weekendColor);
                }

                using (var brush = new SolidBrush(weekendColor))
                    e.Graphics.FillRectangle(brush, rect);
            }
            else if (m_Renderer.Theme.HasAppColor(UITheme.AppColor.NonWorkingHours))
            {
                var nonWorkColor = m_Renderer.Theme.GetAppDrawingColor(UITheme.AppColor.NonWorkingHours, 128);

                // If this is also 'today' then convert to gray so it doesn't
                // impose too much when the today colour is laid on top
                if (WantDrawToday(time))
                {
                    nonWorkColor = DrawingColor.ToGray(nonWorkColor);
                }

                using (SolidBrush brush = new SolidBrush(nonWorkColor))
                {
                    DrawNonWorkHours(e, new HourMin(0, 0), WorkStart, rect, brush);
                    DrawNonWorkHours(e, LunchStart, LunchEnd, rect, brush);
                    DrawNonWorkHours(e, WorkEnd, new HourMin(24, 0), rect, brush);
                }
            }
        }
Esempio n. 3
0
        static void basics()
        {
            //********** Basic Features :

            //formattingOutput();
            //onenote : Fundamental Data Types of C#
            //typeVariablesAndStrings();
            //checkedKeywordOverflowException();
            //implicitlyTypedLocalVar();
            //loops();
            //onenote : Parameter modifiers
            //array();
            WeekendDays weekEndDays = WeekendDays.Sun;
            //enumDemo(weekEndDays);
            //structDemo();
        }
Esempio n. 4
0
        public WeekendProvider(params DayOfWeek[] weekendDays)
        {
            WeekendDays = weekendDays;

            var min = WeekendDays.Min();
            var max = WeekendDays.Max();

            if (max - min > (min + 7) - max)
            {
                FirstWeekendDay = min;
                LastWeekendDay  = max;
            }
            else
            {
                FirstWeekendDay = max;
                LastWeekendDay  = min;
            }
        }
Esempio n. 5
0
        enum WeekendDays : short { Sat = 3, Sun };      //Sun is 4

        //functions can take and return instances of enum types !
        static void enumDemo(WeekendDays weekEndDays)
        {
            Console.WriteLine("\n**** enumDemo() ***");

            //ToString() method of enum return name of constant
            Console.WriteLine($"value of weekEndDays is {weekEndDays}");
            //Return numerical value represented by named constant
            Console.WriteLine($"numeric value is {(short)(weekEndDays)}");     // cast to underlying to get numeric value
            // Print underlying storage for the enum.
            Console.WriteLine("WeekendDays uses a {0} for storage", Enum.GetUnderlyingType(weekEndDays.GetType()));

            // Get all name/value pairs for incoming parameter.
            Array enumData = Enum.GetValues(weekEndDays.GetType());

            for (int i = 0; i < enumData.Length; i++)
            {
                Console.WriteLine("Name: {0}, Value: {0:D}", enumData.GetValue(i));
            }
        }
Esempio n. 6
0
        protected override void ExecuteWorkflowLogic()
        {
            var result    = DateTimeValue.Get(Context.ExecutionContext);
            var daysToAdd = DaystoAdd.Get(Context.ExecutionContext);

            var weekendDays = WeekendDays.Get(Context.ExecutionContext).Split('|').Select(t => (DayOfWeek)int.Parse(t)).ToList();
            var holidays    = new List <DateTime>();

            var holidaysQuery = HolidaysQuery.Get(Context.ExecutionContext);

            if (!string.IsNullOrEmpty(holidaysQuery))
            {
                holidays = QueryWithPaging(new FetchExpression(holidaysQuery))
                           .Where(t => t.Contains("holiday"))
                           .Select(t => t.GetAttributeValue <DateTime>("holiday").Date)
                           .ToList();
            }

            while (daysToAdd > 0)
            {
                result = result.AddDays(1);

                if (weekendDays.Contains(result.DayOfWeek))
                {
                    continue;
                }

                if (holidays.Contains(result.Date))
                {
                    continue;
                }

                daysToAdd--;
            }

            Result.Set(Context.ExecutionContext, result);
        }
Esempio n. 7
0
 public static bool IsWeekendDay(this EDaysOfWeekExt dayOfWeek)
 {
     return(WeekendDays.Contains(dayOfWeek));
 }
Esempio n. 8
0
        public void LoadPreferences(Preferences prefs, String key, bool appOnly)
        {
            if (!appOnly)
            {
                // private settings
                m_PrefsDlg.LoadPreferences(prefs, key);
                UpdateDayViewPreferences();
            }

            bool taskColorIsBkgnd = prefs.GetProfileBool("Preferences", "ColorTaskBackground", false);

            m_DayView.TaskColorIsBackground = taskColorIsBkgnd;

            bool showParentsAsFolder = prefs.GetProfileBool("Preferences", "ShowParentsAsFolders", false);

            m_DayView.ShowParentsAsFolder = showParentsAsFolder;

            // Remove for 7.3 *********************************
            String fontName = FontName;
            int    fontSize = 8;

            if (prefs.GetProfileBool("Preferences", "SpecifyTreeFont", false))
            {
                fontName = prefs.GetProfileString("Preferences", "TreeFont", fontName);
                fontSize = prefs.GetProfileInt("Preferences", "FontSize", fontSize);
            }
            SetTaskFont(fontName, fontSize);
            // ************************************************

            // Weekends
            WeekendDays dwWeekends = (WeekendDays)prefs.GetProfileInt("Preferences", "Weekends", 0);

            List <System.DayOfWeek> weekendDays = new List <System.DayOfWeek>();

            if ((dwWeekends & WeekendDays.SUNDAY) == WeekendDays.SUNDAY)
            {
                weekendDays.Add(System.DayOfWeek.Sunday);
            }

            if ((dwWeekends & WeekendDays.SATURDAY) == WeekendDays.SATURDAY)
            {
                weekendDays.Add(System.DayOfWeek.Saturday);
            }

            if ((dwWeekends & WeekendDays.MONDAY) == WeekendDays.MONDAY)
            {
                weekendDays.Add(System.DayOfWeek.Monday);
            }

            if ((dwWeekends & WeekendDays.TUESDAY) == WeekendDays.TUESDAY)
            {
                weekendDays.Add(System.DayOfWeek.Tuesday);
            }

            if ((dwWeekends & WeekendDays.WEDNESDAY) == WeekendDays.WEDNESDAY)
            {
                weekendDays.Add(System.DayOfWeek.Wednesday);
            }

            if ((dwWeekends & WeekendDays.THURSDAY) == WeekendDays.THURSDAY)
            {
                weekendDays.Add(System.DayOfWeek.Thursday);
            }

            if ((dwWeekends & WeekendDays.FRIDAY) == WeekendDays.FRIDAY)
            {
                weekendDays.Add(System.DayOfWeek.Friday);
            }

            m_DayView.WeekendDays = weekendDays;

            // Working hours
            double hoursInDay = prefs.GetProfileDouble("Preferences", "HoursInDay", 8.0);

            // assume working days pivot about 1.30pm
            // eg. a standard working day of 8 hours (+1 for lunch)
            // starts at 9am (13.50 - 4.5) and
            // ends at 6pm (13.30 + 4.5)
            const double MIDDAY         = 13.5;
            const double LUNCHSTARTTIME = (MIDDAY - 0.5);
            const double LUNCHENDTIME   = (MIDDAY + 0.5);

            double StartOfDay = Math.Max(LUNCHSTARTTIME - (hoursInDay / 2), 0);
            double EndOfDay   = Math.Min(LUNCHENDTIME + (hoursInDay / 2), 24);

            m_DayView.WorkingHourStart   = (int)StartOfDay;
            m_DayView.WorkingMinuteStart = (int)((StartOfDay - m_DayView.WorkingHourStart) * 60);

            m_DayView.WorkingHourEnd   = (int)EndOfDay;
            m_DayView.WorkingMinuteEnd = (int)((EndOfDay - m_DayView.WorkingHourEnd) * 60);
        }
        public void LoadPreferences(Preferences prefs, String key, bool appOnly)
        {
            HoursInWorkingDay   = prefs.GetProfileDouble("Preferences", "HoursInDay", 8.0);
            StartOfDayInHours   = prefs.GetProfileDouble("Preferences", "StartOfWorkdayInHours", 9.0);
            StartOfLunchInHours = prefs.GetProfileDouble("Preferences", "StartOfLunchInHours", 13.0);

            if (prefs.GetProfileBool("Preferences", "HasLunchBreak", true))
            {
                EndOfLunchInHours = prefs.GetProfileDouble("Preferences", "EndOfLunchInHours", 14.0);
            }
            else
            {
                EndOfLunchInHours = StartOfLunchInHours;
            }

            bool taskColorIsBkgnd = prefs.GetProfileBool("Preferences", "ColorTaskBackground", false);

            m_DayView.TaskColorIsBackground = taskColorIsBkgnd;

            bool showParentsAsFolder = prefs.GetProfileBool("Preferences", "ShowParentsAsFolders", false);

            m_DayView.ShowParentsAsFolder = showParentsAsFolder;

            // Weekends
            WeekendDays dwWeekends = (WeekendDays)prefs.GetProfileInt("Preferences", "Weekends", 0);

            List <System.DayOfWeek> weekendDays = new List <System.DayOfWeek>();

            if ((dwWeekends & WeekendDays.SUNDAY) == WeekendDays.SUNDAY)
            {
                weekendDays.Add(System.DayOfWeek.Sunday);
            }

            if ((dwWeekends & WeekendDays.SATURDAY) == WeekendDays.SATURDAY)
            {
                weekendDays.Add(System.DayOfWeek.Saturday);
            }

            if ((dwWeekends & WeekendDays.MONDAY) == WeekendDays.MONDAY)
            {
                weekendDays.Add(System.DayOfWeek.Monday);
            }

            if ((dwWeekends & WeekendDays.TUESDAY) == WeekendDays.TUESDAY)
            {
                weekendDays.Add(System.DayOfWeek.Tuesday);
            }

            if ((dwWeekends & WeekendDays.WEDNESDAY) == WeekendDays.WEDNESDAY)
            {
                weekendDays.Add(System.DayOfWeek.Wednesday);
            }

            if ((dwWeekends & WeekendDays.THURSDAY) == WeekendDays.THURSDAY)
            {
                weekendDays.Add(System.DayOfWeek.Thursday);
            }

            if ((dwWeekends & WeekendDays.FRIDAY) == WeekendDays.FRIDAY)
            {
                weekendDays.Add(System.DayOfWeek.Friday);
            }

            m_DayView.WeekendDays = weekendDays;

            if (!appOnly)
            {
                // private settings
                m_PrefsDlg.LoadPreferences(prefs, key);
                UpdateDayViewPreferences();
            }
            else
            {
                UpdateWorkingHourDisplay();
            }
        }