예제 #1
0
        public void BuildCalendar(DateTime targetDate)
        {
            Days.Clear();

            //Calculate first day of the month and work out
            //offset so we can fill in any boxes before that.
            DateTime startDate  = new DateTime(targetDate.Year, targetDate.Month, 1);
            int      dateNumber = DayOfWeekNumber(startDate.DayOfWeek);

            if (dateNumber != 1)
            {
                startDate = startDate.AddDays(-dateNumber);
            }
            //Show 6 weeks each with 7 days
            for (int box = 1; box <= 42; box++)
            {
                Day day = new Day {
                    Date = startDate, Enabled = true, IsTargetMonth = targetDate.Month == startDate.Month
                };
                day.PropertyChanged += Day_Changed;
                day.IsToday          = startDate == DateTime.Today;
                Days.Add(day);
                startDate = startDate.AddDays(1);
                day.Plans = new Button();
            }
        }
예제 #2
0
        /// <summary>
        /// 设置显示日期
        /// </summary>
        /// <param name="date"></param>
        public void SetDate(DateTime date)
        {
            var day = Days.Find(x => x.Day.Date == date.Date);

            if (day != null && day.Status != DayStatuses.NotCurrentMonth)
            {
                return;
            }

            Days.Clear();
            var startMonth   = new DateTime(date.Year, date.Month, 1);
            var startDay     = startMonth.AddDays(-(int)startMonth.DayOfWeek);
            var endMonth     = startMonth.AddMonths(1).AddDays(-1);
            var endDay       = endMonth.AddDays(6 - (int)endMonth.DayOfWeek);
            var currentMonth = startMonth.Month;

            for (DateTime i = startDay; i <= endDay; i = i.AddDays(1))
            {
                //是否选择月
                var status = i.Month == currentMonth ? DayStatuses.Normal : DayStatuses.NotCurrentMonth;
                //是否选择日期
                status |= (CheckedDate ?? DateTime.MinValue).Date == i.Date ? DayStatuses.Marked : 0;
                //是否周末
                status |= ((int)i.DayOfWeek == 0 || (int)i.DayOfWeek == 6) ? DayStatuses.WeekEnd : 0;
                //是否今天
                status |= i.Date == DateTime.Now.Date ? DayStatuses.Today : 0;
                Days.Add(new DayView {
                    Day = i, Status = status
                });
            }
        }
예제 #3
0
 /// <summary>
 /// ######### ######### ## ######### # ##.
 /// </summary>
 /// <param name="userConnection">########### ############</param>
 public void SaveChanges(UserConnection userConnection)
 {
     Days.ForEach(d => d.Save(userConnection));
     Intervals.ForEach(d => d.Save(userConnection));
     Days.Clear();
     Intervals.Clear();
 }
예제 #4
0
        private void UpdateDays()
        {
            int interimDay = SelectedDay;

            Days.Clear();
            if (SelectedYear == Convert.ToInt32(DateTime.Now.ToString("yyyy")) && SelectedMonth == day.GetMonthNow())
            {
                ClippingDays(Convert.ToInt32(DateTime.Now.ToString("dd")));
                if (interimDay < Convert.ToInt32(DateTime.Now.ToString("dd")) || interimDay > day.GetNumberOfDaysInThisMonth(SelectedMonth, SelectedYear))
                {
                    SelectedDay = Convert.ToInt32(DateTime.Now.ToString("dd"));
                }
                else
                {
                    UpdateDay(interimDay);
                }
            }
            else
            {
                ClippingDays();
                if (interimDay > Days.Count)
                {
                    SelectedDay = 1;
                }
                else
                {
                    UpdateDay(interimDay);
                }
            }
        }
예제 #5
0
        /// <summary>
        /// Populates the calendar with days.
        /// </summary>
        public void BuildCalendar(DateTime targetDate)
        {
            Days.Clear();

            DateTime d      = new DateTime(targetDate.Year, targetDate.Month, 1);
            int      offset = DayOfWeekNumber(d.DayOfWeek);

            //using (offset != 1) will break October 2018
            if (offset != 0)
            {
                d = d.AddDays(-offset);
            }
            //Show 6 weeks each with 7 days = 42
            for (int box = 1; box <= 42; box++)
            {
                Day day = new Day {
                    Date = d, IsTargetMonth = targetDate.Month == d.Month
                };
                day.IsToday = d == DateTime.Today;
                if (CheckEvents(d) == 1)
                {
                    day.IsMarked = true;
                }
                else
                {
                    day.IsMarked = false;
                }
                Days.Add(day);
                d = d.AddDays(1);
            }
            DaysContainer.ItemsSource = Days;
        }
 public void Reset()
 {
     Days.Clear();
     Months.Clear();
     Notes.Clear();
     AfterConstraction();
 }
예제 #7
0
 private async Task NextExecuteAsync()
 {
     try
     {
         IsBusy = true;
         Days.Clear();
         var newMonth = DateTime.Today.AddMonths(++MonthOffset);
         cts          = new CancellationTokenSource();
         Days         = new ObservableCollection <DayModel>(await GetDataAsync(newMonth, progress, cts.Token));
         CurrentMonth = newMonth;
     }
     catch (OperationCanceledException ex)
     {
         Console.WriteLine("Canceled: " + ex.Message);
         //Do stuff to handle cancellation
     }
     catch (Exception ex)
     {
         Console.WriteLine("Error: " + ex.Message);
     }
     finally
     {
         IsBusy = false;
     }
 }
예제 #8
0
        public void BuildCalendar(DateTime targetDate)
        {
            Days.Clear();

            //Calculate when the first day of the month is and work out an
            //offset so we can fill in any boxes before that.
            DateTime d      = new DateTime(targetDate.Year, targetDate.Month, 1);
            int      offset = DayOfWeekNumber(d.DayOfWeek);

            if (offset != 0)
            {
                d = d.AddDays(-offset);
            }

            //Show 6 weeks each with 7 days = 42
            for (int box = 1; box <= 42; box++)
            {
                Day day = new Day {
                    Date = d, Enabled = true, IsTargetMonth = targetDate.Month == d.Month
                };
                using var _nat02Context = new NAT02Context();
                if (_nat02Context.EoiCalendar.Any(c => c.Year == (short)d.Year && c.Month == (byte)d.Month && c.Day == (byte)d.Day))
                {
                    day.Notes = _nat02Context.EoiCalendar.First(c => c.Year == (short)d.Year && c.Month == (byte)d.Month && c.Day == (byte)d.Day).Notes;
                }
                _nat02Context.Dispose();
                day.PropertyChanged += Day_Changed;
                day.IsToday          = d == DateTime.Today;
                Days.Add(day);
                d = d.AddDays(1);
            }
        }
        public async Task OnLoadAsync(INavigationParameters parameters, int attempt = 0)
        {
            try
            {
                var days = await ScheduleService.GetAsync();

                Days.Clear();
                foreach (var item in days)
                {
                    Days.Add(new Event
                    {
                        Title           = item.Title,
                        Notes           = item.CardDescription,
                        Description     = item.CardDescription,
                        Avatar          = item.Title.ToScheduleType(),
                        Banner          = (item.BannerTitle, item.BannerHeading, item.BannerImage),
                        ContentSections = item.Sections.Select(x => new ScheduleContent
                        {
                            Title            = x.Title,
                            SubTitle         = x.SubTitle,
                            SubTitleNormal   = x.SubTitleNormal,
                            Heading          = x.Heading,
                            Description      = x.Description,
                            VideoLink        = x.VideoLink,
                            VideoButtonTitle = x.VideoButtonTitle
                        })
                    });
                }
예제 #10
0
        public void BuildCalendar(DateTime targetDate)
        {
            Days.Clear();

            //Calculate when the first day of the month is and work out an
            //offset so we can fill in any boxes before that.
            DateTime d      = new DateTime(targetDate.Year, targetDate.Month, 1);
            int      offset = DayOfWeekNumber(d.DayOfWeek);

            if (offset != 1)
            {
                d = d.AddDays(-offset);
            }

            //Show 6 weeks each with 7 days = 42
            for (int box = 1; box <= 42; box++)
            {
                Day day = new Day {
                    Date = d, Enabled = true, IsTargetMonth = targetDate.Month == d.Month
                };
                day.PropertyChanged += Day_Changed;
                day.IsToday          = d == DateTime.Today;
                Days.Add(day);
                d = d.AddDays(1);
            }
        }
예제 #11
0
        public void BuildCalendar(DateTime targetDate)
        {
            Days.Clear();

            //Calculate when the first day of the month is and work out an
            //offset so we can fill in any boxes before that.
            DateTime d      = new DateTime(targetDate.Year, targetDate.Month, 1);
            int      offset = DayOfWeekNumber(d.DayOfWeek);

            offset = (offset == 0) ? 7 : offset;

            //if (offset != 0)  // BUG: if offset is not 0, beginning date should be modified.
            d = d.AddDays(-offset);

            //Show 6 weeks each with 7 days = 42
            for (int box = 1; box <= 42; box++)
            {
                Day day = new Day {
                    Date = d, Enabled = true, IsTargetMonth = targetDate.Month == d.Month
                };
                day.PropertyChanged += Day_Changed;
                day.IsToday          = d == DateTime.Today;
                Days.Add(day);
                d = d.AddDays(1);
            }

            AddEventsToCalendar(null);
        }
예제 #12
0
 private void Clear_Click(object sender, EventArgs e)
 {
     MonthGet.Clear();
     GetYear.Clear();
     MonthResult.Clear();
     Days.Clear();
     LeapYear.Clear();
 }
예제 #13
0
 public void setDays(params Day[] events)
 {
     Days.Clear();
     foreach (Day e in events)
     {
         Days.Add(e);
     }
 }
예제 #14
0
        public virtual void Dispose()
        {
            Days.Clear();

            OutputData.Dispose();
            OutputData = null;

            Parent = null;
        }
예제 #15
0
 private void InitializeDaysFromPeriod()
 {
     Days.Clear();
     foreach (var day in Period.EachDay)
     {
         var dayType = day.DayOfWeek == DayOfWeek.Saturday || day.DayOfWeek == DayOfWeek.Sunday
             ? WorkableDayType.WeekendDay
             : WorkableDayType.WorkingDay;
         Days.Add(new DayActivity(day, SelectedUser, SelectedUserProject, Period, dayType));
     }
 }
예제 #16
0
        private void Update()
        {
            _days = new ObservableCollection <DayViewModel>();
            int numberOfDays = DateTime.DaysInMonth(_time.Year, _time.Month);

            Days.Clear();
            for (int i = 1; i <= numberOfDays; i++)
            {
                Days.Add(new DayViewModel(new DateTime(_time.Year, _time.Month, i)));
            }
        }
예제 #17
0
        private void SetDays(DateTime baseDate)
        {
            Days.Clear();
            var daysInMonth     = DateTime.DaysInMonth(baseDate.Year, baseDate.Month);
            var startDate       = new DateTime(baseDate.Year, baseDate.Month, 1);
            var lastDateOfMonth = new DateTime(baseDate.Year, baseDate.Month, daysInMonth);

            while (startDate <= lastDateOfMonth)
            {
                this.Days.Add(startDate);
                startDate = startDate.AddDays(1);
            }
        }
        public void Dispose()
        {
            Months.ForEach(m => m.Dispose());
            Months.Clear();

            Days.ForEach(m => m.Dispose());
            Days.Clear();

            Notes.ForEach(m => m.Dispose());
            Notes.Clear();

            Parent = null;
        }
예제 #19
0
        public void Fill(TrainingPlan trainingPlan)
        {
            this.plan = trainingPlan;

            originalPlan = plan.StandardClone();
            Days.Clear();
            foreach (var day in plan.Days)
            {
                Days.Add(new TrainingPlanDayViewModel(this, day));
            }
            UpdateToolbar();
            SetModifiedFlag();
            NotifyOfPropertyChange(null);
        }
예제 #20
0
        private void ShowDays(DateTime firstDate, int _days)
        {
            this.SP_Days.Children.Clear();
            Days.Clear();

            ScheduleDay sd;
            DateTime    curDate = new DateTime(firstDate.Year, firstDate.Month, firstDate.Day);

            for (int i = 0; i < _days; i++)
            {
                sd = new ScheduleDay(curDate);
                Days.Add(sd);
                this.SP_Days.Children.Add(sd);

                curDate = curDate.AddDays(1);
            }
        }
        protected void DeserializeInternal <TMonth, TDay, TNote>(XmlNode node)
            where TMonth : CalendarMonth
            where TDay : CalendarDay
            where TNote : CalendarNote
        {
            foreach (XmlNode childNode in node.ChildNodes)
            {
                switch (childNode.Name)
                {
                case "Days":
                    Days.Clear();
                    foreach (XmlNode dayNode in childNode.ChildNodes)
                    {
                        var day = (TDay)Activator.CreateInstance(typeof(TDay));
                        day.Deserialize(dayNode);
                        Days.Add(day);
                    }
                    break;

                case "Months":
                    Months.Clear();
                    foreach (XmlNode monthNode in childNode.ChildNodes)
                    {
                        var month = (TMonth)Activator.CreateInstance(typeof(TMonth));
                        month.Deserialize(monthNode);
                        Months.Add(month);
                    }
                    break;

                case "CalendarNotes":
                    Notes.Clear();
                    foreach (XmlNode noteNode in childNode.ChildNodes)
                    {
                        var note = (TNote)Activator.CreateInstance(typeof(TNote));
                        note.Deserialize(noteNode);
                        if (note.StartDay != DateTime.MinValue && note.FinishDay != DateTime.MinValue)
                        {
                            Notes.Add(note);
                        }
                    }
                    break;
                }
            }
        }
예제 #22
0
        private void cmbMonth_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                var date = (cmbYear.SelectedItem.ToString()) + "/" +
                           (cmbMonth.SelectedIndex + 1).ToString() + "/" +
                           (cmbDay.SelectedIndex + 1).ToString();

                PersianCalendar pc = new PersianCalendar();
                int             y = 0, m = 0;
                int.TryParse(cmbYear.SelectedValue.ToString(), out y);
                m = cmbMonth.SelectedIndex + 1;
                var days        = pc.GetDaysInMonth(y, m);
                var dayList     = new List <string>();
                int selectedDay = -1;
                if (int.TryParse(cmbDay.SelectedItem?.ToString() ?? "", out selectedDay))
                {
                    selectedDay = Math.Min(selectedDay, days);
                }
                if (pc.GetDaysInMonth(y, m) != Days.Count)
                {
                    Days.Clear();
                    for (int i = 0; i < days; i++)
                    {
                        Days.Add($"{i + 1}");
                    }
                }
                if (year > 0 && month > 0 && selectedDay > pc.GetDaysInMonth(year, month))
                {
                    selectedDay = pc.GetDaysInMonth(year, month);
                }
                cmbDay.SelectedIndex = selectedDay > -1 ? (selectedDay - 1) : 0;



                if (Date == null || (cmbMonth.SelectedIndex + 1).ToString() != Date.Split('/')[1])
                {
                    Date = date;
                }
            }
            catch (Exception ex)
            {
            }
        }
예제 #23
0
        /// <summary>
        /// Displays the days of the given dates.
        /// </summary>
        /// <param name="dates">A collection of dates.</param>
        public void DisplayDays(IEnumerable <Date> dates)
        {
            Days.Clear();

            // For every date, try to get the persisted one or just create an empty one.
            foreach (var day in dates.Select(date => _dayContainer.Days.FirstOrDefault(d => d.Date == date) ?? new Day(date)
            {
                BeginTime = new TimeSpan(8, 0, 0)
            }))
            {
                Days.Add(day);
            }

            var months = new HashSet <Month>();
            var years  = new HashSet <int>();

            // Seperate the months and years.
            foreach (var day in Days)
            {
                months.Add((Month)day.Date.Month);
                years.Add(day.Date.Year);
            }

            // Build a string of the months being displayed.
            var monthsStringBuilder = new StringBuilder();

            foreach (var month in months)
            {
                monthsStringBuilder.Append(month).Append('/');
            }

            // Build a string of the years being dusplayed.
            var yearsStringBuilder = new StringBuilder();

            foreach (var year in years)
            {
                yearsStringBuilder.Append(year).Append('/');
            }

            // Remove trailing '/'.
            Months = monthsStringBuilder.ToString().TrimEnd('/');
            Years  = yearsStringBuilder.ToString().TrimEnd('/');
        }
예제 #24
0
        private void BuildCalendar(DateTime dateTime)
        {
            Days.Clear();
            DateTime date = GetDateWithOffset(dateTime);

            for (int i = 1; i <= 42; i++)
            {
                Day day = new Day {
                    Date = date, DisplayName = date.DayOfWeek.ToString()
                };
                day.IsCurrent      = date.Date == DateTime.Today;
                day.IsCurrentMonth = date.Month == SelectedMonth.MonthNumber;
                day.IsSelected     = day.IsCurrent;//d.Date == DateTime.Today.AddDays(-1);
                Days.Add(day);
                date = date.AddDays(1);
            }

            UploadTimeTracking();
        }
예제 #25
0
        async Task ExecuteLoadDaysCommand(DateTime TargetDay)
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                if (TargetDay == null)
                {
                    TargetDay = DateTime.Now;
                }
                Days.Clear();
                TargetDay = new DateTime(TargetDay.Year, TargetDay.Month, TargetDay.Day);
                Timeframe = new Timeframe(TargetDay);
                for (var i = 0; i < Timeframe.EmptyPadding; i++)
                {
                    Days.Add(new Day());
                }
                var days = await DayStore.GetItemsAsync(true);

                int DaysLeft = Timeframe.DayCount;
                foreach (var day in days)
                {
                    if (day.Date.CompareTo(Timeframe.FirstDay) >= 0 && DaysLeft > 0)
                    {
                        DaysLeft--;
                        Days.Add(day);
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
        protected void UpdateDaysCollection <T>(DayOfWeek startDay, DayOfWeek endDay) where T : CalendarDay
        {
            if (ParentScheduleSettings.FlightDateStart.HasValue && ParentScheduleSettings.FlightDateEnd.HasValue)
            {
                var days = new List <CalendarDay>();

                var startDate = new DateTime(ParentScheduleSettings.FlightDateStart.Value.Year, ParentScheduleSettings.FlightDateStart.Value.Month, 1);
                while (startDate.DayOfWeek != startDay)
                {
                    startDate = startDate.AddDays(-1);
                }

                var endDate = new DateTime(
                    ParentScheduleSettings.FlightDateEnd.Value.Month < 12 ? ParentScheduleSettings.FlightDateEnd.Value.Year : (ParentScheduleSettings.FlightDateEnd.Value.Year + 1),
                    (ParentScheduleSettings.FlightDateEnd.Value.Month < 12 ? ParentScheduleSettings.FlightDateEnd.Value.Month + 1 : 1),
                    1)
                              .AddDays(-1);
                while (endDate.DayOfWeek != endDay)
                {
                    endDate = endDate.AddDays(1);
                }

                while (startDate <= endDate)
                {
                    var day = Days.FirstOrDefault(x => x.Date.Equals(startDate));
                    if (day == null)
                    {
                        day      = (T)Activator.CreateInstance(typeof(T), this);
                        day.Date = startDate;
                    }
                    day.BelongsToSchedules = day.Date >= ParentScheduleSettings.FlightDateStart & day.Date <= ParentScheduleSettings.FlightDateEnd;
                    days.Add(day);
                    startDate = startDate.AddDays(1);
                }
                Days.Clear();
                Days.AddRange(days);
            }
            else
            {
                Days.Clear();
            }
        }
예제 #27
0
        /// <summary>
        /// Gets the information of selected trip called by clickevent.
        /// </summary>
        /// <param name="s">The s.</param>
        public async void GetInfo(string s)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(@"http://localhost:10051/api/");

                var json = await client.GetStringAsync("dayoftrips/" + s);

                DayOfTrip[] days = JsonConvert.DeserializeObject <DayOfTrip[]>(json);

                //Lambda for å sortere listen
                IEnumerable <DayOfTrip> daylist = days.OrderBy(d => d.Day);

                Days.Clear();
                foreach (var day in daylist)
                {
                    Days.Add(day);
                }
            }
        }
예제 #28
0
        public void BuildCalendar(DateTime targetDate)
        {
            if (targetDate == DateTime.MinValue)
            {
                return;
            }
            //目标日期
            if (this.targetDate != targetDate)
            {
                this.targetDate = targetDate;
            }

            Days.Clear();


            //Calculate when the first day of the month is and work out an
            //offset so we can fill in any boxes before that.
            DateTime d      = new DateTime(targetDate.Year, targetDate.Month, 1);
            int      offset = DayOfWeekNumber(d.DayOfWeek);

            if (offset != 1)
            {
                d = d.AddDays(-offset);
            }
            else if (offset == 1 && targetDate.Year != 0)
            {
                d = d.AddDays(-offset);
            }

            //Show 6 weeks each with 7 days = 42
            for (int box = 1; box <= 42; box++)
            {
                Day day = new Day {
                    Date = d, Enabled = true, IsTargetMonth = targetDate.Month == d.Month, Visual = dictDateTimeVisual.FirstOrDefault(v => v.Key.Date == d.Date).Value
                };
                day.PropertyChanged += Day_Changed;
                day.IsToday          = d == DateTime.Today;
                Days.Add(day);
                d = d.AddDays(1);
            }
        }
예제 #29
0
        public void BuildCalendar(DateTime targetDate)
        {
            Days.Clear();

            //Calculate when the first day of the month is and work out an
            //offset so we can fill in any boxes before that.
            DateTime d      = new DateTime(targetDate.Year, targetDate.Month, 1);
            int      offset = DayOfWeekNumber(d.DayOfWeek);

            if (offset != 1)
            {
                d = d.AddDays(-offset);
            }
            GetAppointments();
            //Show 6 weeks each with 7 days = 42
            for (int box = 1; box <= 42; box++)
            {
                Day day = new Day {
                    Date = d, Enabled = true, IsTargetMonth = targetDate.Month == d.Month
                };
                /* Abfrage nach den Terminen wird hier vorher eingebaut und hier auf das Datum geprüft */

                //if (day.Date == DateTime.Today.AddDays(-2))
                //{
                //    day.Notes = "Vorgestern";
                //}
                for (int i = 0; i < appointmentList.Count; i++)
                {
                    if (day.Date.Date == appointmentList[i].Appointment_Date.Date)
                    {
                        day.Notes.Add(appointmentList[i]);
                    }
                }
                day.PropertyChanged += Day_Changed;

                day.IsToday = d == DateTime.Today;
                Days.Add(day);
                d = d.AddDays(1);
            }
        }
예제 #30
0
        public void Initialize(int year, int month)
        {
            Days.Clear();

            var beginOfMonth = new DateTime(year, month, 1);
            var offset       = (int)beginOfMonth.DayOfWeek;
            var daysInMonth  = DateTime.DaysInMonth(year, month);

            Year  = year.ToString();
            Month = GetMonthFullName(month);

            var sum = offset + daysInMonth;

            RowCount = (int)Math.Ceiling(sum / 7.0);

            var nums =
                Enumerable.Repeat <int>(0, offset)
                .Concat(Enumerable.Range(1, daysInMonth))
                .Concat(Enumerable.Repeat <int>(0, (RowCount * 7) - sum));

            nums.ToList().ForEach(num => Days.Add(new Day(year, month, num)));
        }