public static void WorkWithWorkWeek()
        {
            // ExStart
            // ExFor: WorkWeek
            // ExFor: WorkWeek.#ctor
            // ExFor: WorkWeek.Name
            // ExFor: WorkWeek.ParentCalendar
            // ExFor: WorkWeek.FromDate
            // ExFor: WorkWeek.ToDate
            // ExFor: WorkWeek.WeekDays
            // ExSummary: Shows how to read work week information from the project.
            var project  = new Project();
            var calendar = project.Calendars.Add("Standard");

            Calendar.MakeStandardCalendar(calendar);

            var item = new WorkWeek(calendar);

            item.Name     = "My Work Week";
            item.FromDate = new DateTime(2020, 4, 13, 8, 0, 0);
            item.ToDate   = new DateTime(2020, 4, 17, 17, 0, 0);
            item.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
            item.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
            item.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
            item.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Thursday));
            item.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Friday));
            item.WeekDays.Add(new WeekDay(DayType.Saturday));
            item.WeekDays.Add(new WeekDay(DayType.Sunday));
            calendar.WorkWeeks.Add(item);

            Console.WriteLine("Work Week Number: " + calendar.WeekDays.Count);
            foreach (var workWeek in calendar.WorkWeeks)
            {
                // Display work week name, parent calendar name, from, and to dates
                Console.WriteLine("Name: " + workWeek.Name);
                Console.WriteLine("Parent calendar name: " + workWeek.ParentCalendar.Name);
                Console.WriteLine("From Date: " + workWeek.FromDate);
                Console.WriteLine("To Date: " + workWeek.ToDate);
                Console.WriteLine();

                // This data is all about "Details." button you can set special working times for special WeekDay or even make it nonworking
                List <WeekDay> weekDays = workWeek.WeekDays.ToList();
                foreach (var day in weekDays)
                {
                    Console.WriteLine(day.DayType.ToString());

                    // You can further traverse through working times and display these
                    foreach (var workingTime in day.WorkingTimes)
                    {
                        Console.WriteLine(workingTime.FromTime);
                        Console.WriteLine(workingTime.ToTime);
                    }
                }

                Console.WriteLine();
            }

            // ExEnd
        }
        public static void Run()
        {
            // ExStart:DefineWeekdaysForCalendar
            // This example shows how Aspose.Tasks API can be used to define a new Calendar, add week days to it and define working times for days
            // Create a project instance
            Project project = new Project();

            // Define Calendar
            Aspose.Tasks.Calendar cal = project.Calendars.Add("Calendar1");

            // Add working days monday through thursday with default timings
            cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
            cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
            cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
            cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Thursday));
            cal.WeekDays.Add(new WeekDay(DayType.Saturday));
            cal.WeekDays.Add(new WeekDay(DayType.Sunday));

            // Set friday as short working day
            WeekDay myWeekDay = new WeekDay(DayType.Friday);

            // Sets working time. Only time part of DateTime is important
            WorkingTime wt1 = new WorkingTime();

            wt1.FromTime = new DateTime(1, 1, 1, 9, 0, 0, 0);
            wt1.ToTime   = new DateTime(1, 1, 1, 12, 0, 0, 0);
            WorkingTime wt2 = new WorkingTime();

            wt2.FromTime = new DateTime(1, 1, 1, 13, 0, 0, 0);
            wt2.ToTime   = new DateTime(1, 1, 1, 16, 0, 0, 0);
            myWeekDay.WorkingTimes.Add(wt1);
            myWeekDay.WorkingTimes.Add(wt2);
            myWeekDay.DayWorking = true;
            cal.WeekDays.Add(myWeekDay);


            // Save the Project
            string dataDir = RunExamples.GetDataDir_Projects();

            project.Save("Project.xml", Aspose.Tasks.Saving.SaveFileFormat.XML);
            // ExEnd:DefineWeekdaysForCalendar
        }
        public void DefineWeekdaysForCalendar()
        {
            // ExStart:DefineWeekdaysForCalendar
            // ExFor: Calendar
            // ExFor: Calendar.WeekDays
            // ExFor: Aspose.Tasks.DayType
            // ExSummary: Shows how to define a new calendar, add week days to it and define working times for days.
            var project = new Project();

            // Define a calendar
            var calendar = project.Calendars.Add("Calendar1");

            // Add working days monday through thursday with default timings
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Thursday));
            calendar.WeekDays.Add(new WeekDay(DayType.Saturday));
            calendar.WeekDays.Add(new WeekDay(DayType.Sunday));

            // Set friday as short working day
            var weekDay = new WeekDay(DayType.Friday);

            // Sets working time. Only time part of DateTime is important
            var workingTime = new WorkingTime();

            workingTime.FromTime = new DateTime(1, 1, 1, 9, 0, 0, 0);
            workingTime.ToTime   = new DateTime(1, 1, 1, 12, 0, 0, 0);
            var workingTime2 = new WorkingTime();

            workingTime2.FromTime = new DateTime(1, 1, 1, 13, 0, 0, 0);
            workingTime2.ToTime   = new DateTime(1, 1, 1, 16, 0, 0, 0);
            weekDay.WorkingTimes.Add(workingTime);
            weekDay.WorkingTimes.Add(workingTime2);
            weekDay.DayWorking = true;
            calendar.WeekDays.Add(weekDay);

            // working with the project...
            // ExEnd:DefineWeekdaysForCalendar
        }
Example #4
0
        public void CreateCustomizedWeekDayCollection()
        {
            // ExStart
            // ExFor: WeekDayCollection
            // ExFor: WeekDayCollection.Add(WeekDay)
            // ExFor: WeekDayCollection.Clear
            // ExFor: WeekDayCollection.Contains(WeekDay)
            // ExFor: WeekDayCollection.Insert(Int32,WeekDay)
            // ExFor: WeekDayCollection.Item(Int32)
            // ExFor: WeekDayCollection.Count
            // ExFor: WeekDayCollection.GetEnumerator
            // ExFor: WeekDayCollection.ParentCalendar
            // ExFor: WeekDayCollection.Remove(WeekDay)
            // ExFor: WeekDayCollection.RemoveAt(Int32)
            // ExFor: WeekDayCollection.ToList
            // ExFor: WeekDayCollection.IndexOf(WeekDay)
            // ExFor: WeekDayCollection.CopyTo(WeekDay[],Int32)
            // ExSummary: Shows how to work week day collections.
            var project  = new Project();
            var calendar = project.Calendars.GetByName("Standard");

            // clear week days
            calendar.WeekDays.Clear();

            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Thursday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Friday));
            var saturday = WeekDay.CreateDefaultWorkingDay(DayType.Saturday);
            var sunday   = WeekDay.CreateDefaultWorkingDay(DayType.Sunday);

            calendar.WeekDays.Add(saturday);
            calendar.WeekDays.Add(sunday);

            var fridayWorkingTimes = new List <WorkingTime> {
                new WorkingTime(new DateTime(2020, 4, 13, 8, 0, 0), new DateTime(2020, 4, 13, 12, 0, 0))
            };

            var friday = new WeekDay(DayType.Friday, fridayWorkingTimes);

            if (calendar.WeekDays.Contains(friday))
            {
                calendar.WeekDays.Insert(4, friday);
            }

            Console.WriteLine("Calendar: " + calendar.WeekDays.ParentCalendar.Name);
            Console.WriteLine("Week days count: " + calendar.WeekDays.Count);
            foreach (var day in calendar.WeekDays)
            {
                Console.WriteLine(day.DayType);
                foreach (var workingTime in day.WorkingTimes)
                {
                    Console.WriteLine("From: " + workingTime.FromTime);
                    Console.WriteLine("To: " + workingTime.ToTime);
                    Console.WriteLine();
                }
            }

            // remove saturday week day
            calendar.WeekDays.RemoveAt(5);

            // remove sunday week day
            if (calendar.WeekDays.IndexOf(saturday) > 0)
            {
                calendar.WeekDays.Remove(sunday);
            }

            Console.WriteLine("Working times after weekend was removed: ");
            List <WeekDay> weekDays = calendar.WeekDays.ToList();

            foreach (var day in weekDays)
            {
                Console.WriteLine(day.DayType);
                foreach (var workingTime in day.WorkingTimes)
                {
                    Console.WriteLine("From: " + workingTime.FromTime);
                    Console.WriteLine("To: " + workingTime.ToTime);
                    Console.WriteLine();
                }
            }

            var hour24Calendar = project.Calendars.Add("24 Hours");

            Calendar.Make24HourCalendar(hour24Calendar);

            // copy week days
            var weekDaysArray = new WeekDay[calendar.WeekDays.Count];

            calendar.WeekDays.CopyTo(weekDaysArray, 0);

            foreach (var weekDay in weekDaysArray)
            {
                hour24Calendar.WeekDays.Add(weekDay);
            }

            // ExEnd
        }
Example #5
0
        public void CreateCustomizedWorkingTimeCollection()
        {
            // ExStart
            // ExFor: WorkingTimeCollection
            // ExFor: WorkingTimeCollection.Add(WorkingTime)
            // ExFor: WorkingTimeCollection.Count
            // ExFor: WorkingTimeCollection.GetEnumerator
            // ExFor: WorkingTimeCollection.Remove(WorkingTime)
            // ExFor: WorkingTimeCollection.ToList
            // ExSummary: Shows how to work with working time collection.
            var project  = new Project();
            var calendar = project.Calendars.Add("Custom Calendar");

            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Thursday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Friday));

            var saturdayWorkingTimes = new List <WorkingTime>
            {
                new WorkingTime(new DateTime(2020, 4, 13, 8, 0, 0), new DateTime(2020, 4, 13, 12, 0, 0)),
                new WorkingTime(new DateTime(2020, 4, 13, 13, 0, 0), new DateTime(2020, 4, 13, 15, 0, 0))
            };
            var saturday = new WeekDay(DayType.Saturday);

            foreach (var time in saturdayWorkingTimes)
            {
                saturday.WorkingTimes.Add(time);
            }

            // print working times of Saturday
            Console.WriteLine("Saturday working period number: " + saturday.WorkingTimes.Count);
            foreach (var time in saturday.WorkingTimes)
            {
                Console.WriteLine("From Time: " + time.FromTime);
                Console.WriteLine("To Time: " + time.ToTime);
            }

            Console.WriteLine();

            var sundayWorkingTimes = new List <WorkingTime>
            {
                new WorkingTime(new DateTime(2020, 4, 13, 10, 0, 0), new DateTime(2020, 4, 13, 15, 0, 0))
            };
            var sunday = new WeekDay(DayType.Sunday, sundayWorkingTimes);

            // print working times of sunday
            List <WorkingTime> workingTimes = sunday.WorkingTimes.ToList();

            Console.WriteLine("Sunday working period number: " + workingTimes.Count);
            for (var index = 0; index < workingTimes.Count; index++)
            {
                var time = workingTimes[index];
                Console.WriteLine("From Time: " + time.FromTime);
                Console.WriteLine("To Time: " + time.ToTime);
            }

            Console.WriteLine();

            calendar.WeekDays.Add(saturday);
            calendar.WeekDays.Add(sunday);

            foreach (var day in calendar.WeekDays)
            {
                Console.WriteLine(day.DayType + ": ");

                // You can further traverse through working times and display these
                foreach (var workingTime in day.WorkingTimes)
                {
                    Console.WriteLine(workingTime.FromTime);
                    Console.WriteLine(workingTime.ToTime);
                }

                Console.WriteLine();
            }

            // ExEnd
        }
Example #6
0
        public void WorkWithWeekDay()
        {
            // ExStart
            // ExFor: WeekDay
            // ExFor: WeekDay.#ctor
            // ExFor: WeekDay.#ctor(DayType)
            // ExFor: WeekDay.#ctor(DayType,IEnumerable{Aspose.Tasks.WorkingTime})
            // ExFor: WeekDay.CreateDefaultWorkingDay(DayType)
            // ExFor: WeekDay.WorkingTimes
            // ExFor: WeekDay.GetWorkingTime()
            // ExFor: WeekDay.DayWorking
            // ExFor: WeekDay.CastToDayType(DayOfWeek)
            // ExFor: WeekDay.DayType
            // ExFor: WeekDay.FromDate
            // ExFor: WeekDay.ToDate
            // ExSummary: Shows how to create a new calendar by defining of week days.
            var project = new Project();

            // Define a calendar
            var calendar = project.Calendars.Add("Calendar1");

            // Add working days monday through thursday with default timings
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
            calendar.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Thursday));

            var exceptionDay = WeekDay.CreateDefaultWorkingDay(DayType.Exception);

            exceptionDay.FromDate   = new DateTime(2020, 4, 27, 0, 0, 0);
            exceptionDay.ToDate     = new DateTime(2020, 4, 30, 0, 0, 0);
            exceptionDay.DayWorking = false;
            calendar.WeekDays.Add(exceptionDay);

            // check from and to dates of the exception day
            Console.WriteLine("The from date is: " + exceptionDay.FromDate);
            Console.WriteLine("The to date is: " + exceptionDay.ToDate);
            Console.WriteLine();

            calendar.WeekDays.Add(new WeekDay(DayType.Saturday));
            calendar.WeekDays.Add(new WeekDay(DayType.Sunday));

            // Set friday as short working day

            // Sets working time. Only time part of DateTime is important
            var workingTime = new WorkingTime();

            workingTime.FromTime = new DateTime(1, 1, 1, 9, 0, 0, 0);
            workingTime.ToTime   = new DateTime(1, 1, 1, 12, 0, 0, 0);
            var workingTime2 = new WorkingTime();

            workingTime2.FromTime = new DateTime(1, 1, 1, 13, 0, 0, 0);
            workingTime2.ToTime   = new DateTime(1, 1, 1, 16, 0, 0, 0);
            var workingTimes = new List <WorkingTime> {
                workingTime, workingTime2
            };

            // there is a way to convert <see cref="DayOfWeek" /> to <see cref="Aspose.Tasks.DayType" />.
            var dayType = WeekDay.CastToDayType(DayOfWeek.Friday);

            var weekDay = new WeekDay(dayType, workingTimes);

            weekDay.DayWorking = true;
            Console.WriteLine("The day type is: " + weekDay.DayType);
            Console.WriteLine("The from date is: " + weekDay.FromDate);
            Console.WriteLine("The to date is: " + weekDay.ToDate);

            calendar.WeekDays.Add(weekDay);

            // lets print all working times
            foreach (var day in calendar.WeekDays)
            {
                Console.WriteLine("Day Type: " + day.DayType);
                Console.WriteLine("Is working day: " + day.DayWorking);
                Console.WriteLine("Working Time (Hours): " + day.GetWorkingTime().TotalHours);
                Console.WriteLine();
            }

            // ExEnd
        }