protected void UpdateMonthCollection <T>() where T : CalendarMonth
 {
     if (ParentScheduleSettings.FlightDateStart.HasValue && ParentScheduleSettings.FlightDateEnd.HasValue)
     {
         var months    = new List <CalendarMonth>();
         var startDate = new DateTime(ParentScheduleSettings.FlightDateStart.Value.Year, ParentScheduleSettings.FlightDateStart.Value.Month, 1);
         while (startDate <= ParentScheduleSettings.FlightDateEnd.Value)
         {
             var month = Months.FirstOrDefault(x => x.Date.Equals(startDate));
             if (month == null)
             {
                 month      = (T)Activator.CreateInstance(typeof(T), this);
                 month.Date = startDate;
             }
             month.Days.Clear();
             month.Days.AddRange(Days.Where(x => x.Date >= month.DaysRangeBegin && x.Date <= month.DaysRangeEnd));
             months.Add(month);
             startDate = startDate.AddMonths(1);
         }
         Months.Clear();
         Months.AddRange(months);
     }
     else
     {
         Months.Clear();
     }
 }
Esempio n. 2
0
        private async void ExecuteFilterCommand(object parameter)
        {
            IsBusy = true;

            await Task.Run(() =>
            {
                int i         = 0;
                _ProjectQuery = (from item in _projects

                                 .Where(pr => Developers.FirstOrDefault(p => pr.Developer == p.Item && p.IsChecked == true) != null)
                                 .Where(pr => Status.FirstOrDefault(p => pr.Status == p.Item && p.IsChecked == true) != null)
                                 .Where(pr => Business.FirstOrDefault(p => pr.Business == p.Item && p.IsChecked == true) != null)
                                 .Where(pr => Months.FirstOrDefault(p => pr.Date.ToString("MMMM") == p.Item && p.IsChecked == true) != null)
                                 .Where(pr => Years.FirstOrDefault(p => pr.Date.Year.ToString() == p.Item && p.IsChecked == true) != null)



                                 select new Project
                {
                    Id = item.Id,
                    Row = i++,
                    Name = item.Name,
                    Developer = item.Developer,
                    Status = item.Status,
                }

                                 ).ToList();
            });


            _total            = _ProjectQuery.Count();
            _ViewList         = new CollectionViewSource();
            _ViewList.Source  = _ProjectQuery;
            _ViewList.Filter += new FilterEventHandler(view_Filter);



            CurrentPageIndex = 0;
            itemcount        = _ProjectQuery.Count;
            CalculateTotalPages();



            OnPropertyChanged("ViewList");
            OnPropertyChanged("Total");
            OnPropertyChanged("TotalPages");
            OnPropertyChanged("CurrentPageIndex");
            OnPropertyChanged("CurrentPageIndex");
            OnPropertyChanged("CurrentPage");


            OnPropertyChanged("Users");
            ViewList.View.Refresh();



            IsBusy = false;
        }
        private void RefreshMonthDaysForToDo(ToDoViewModel model)
        {
            DateTime date = model.WhenHappens;

            var monthToChange = Months.FirstOrDefault(
                m => m.Days.Any(x => x.CurrentDate.Year == date.Year &&
                                x.CurrentDate.Month == date.Month &&
                                x.CurrentDate.Day == date.Day));

            monthToChange?.RefreshDaysForActiveAndCompletedToDo(
                GetDaysWithToDoByDateAndStatus(monthToChange.CurrentDate, ConstantsHelper.Active),
                GetDaysWithToDoByDateAndStatus(monthToChange.CurrentDate, ConstantsHelper.Completed));
        }
Esempio n. 4
0
        protected async Task LoadMonthsAsync(MonthModel selected = null)
        {
            Months = await Queries.QueryAsync(new ListMonthWithOutcome());

            if (selected != null)
            {
                OnMonthSelected(selected);
            }
            else if (SelectedMonth == null)
            {
                OnMonthSelected(Months.FirstOrDefault());
            }
        }
Esempio n. 5
0
        public override void UpdateMonthCollection()
        {
            if (!MediaScheduleSettings.FlightDateStart.HasValue || !MediaScheduleSettings.FlightDateEnd.HasValue)
            {
                Months.Clear();
                return;
            }
            var months         = new List <CalendarMonth>();
            var startDate      = MediaScheduleSettings.FlightDateStart.Value;
            var monthTemplates = MediaScheduleSettings.MondayBased ?
                                 MediaMetaData.Instance.ListManager.MonthTemplatesMondayBased :
                                 MediaMetaData.Instance.ListManager.MonthTemplatesSundayBased;

            while (startDate <= MediaScheduleSettings.FlightDateEnd.Value)
            {
                var monthTemplate = monthTemplates.FirstOrDefault(mt => startDate >= mt.StartDate && startDate <= mt.EndDate);
                if (monthTemplate == null)
                {
                    continue;
                }

                startDate = monthTemplate.Month.Value;
                var month = Months.FirstOrDefault(x => x.Date == startDate);
                if (month == null)
                {
                    if (MediaScheduleSettings.MondayBased)
                    {
                        month = new CalendarMonthMediaMondayBased(this);
                    }
                    else
                    {
                        month = new CalendarMonthMediaSundayBased(this);
                    }
                    ApplyDefaultMonthSettings(month);
                }
                month.Date           = monthTemplate.Month.Value;
                month.DaysRangeBegin = monthTemplate.StartDate.Value;
                month.DaysRangeEnd   = monthTemplate.EndDate.Value;
                month.Days.Clear();
                month.Days.AddRange(Days.Where(x => x.Date >= month.DaysRangeBegin && x.Date <= month.DaysRangeEnd));
                months.Add(month);
                startDate = startDate.AddMonths(1);
            }
            Months.Clear();
            Months.AddRange(months);
        }
Esempio n. 6
0
        protected async Task LoadMonthsAsync(bool isReload = true)
        {
            if (isReload || Months == null)
            {
                using (Loading.Start())
                    Months = await Queries.QueryAsync(new ListMonthWithOutcome());
            }

            if (SelectedMonth != null && !Months.Contains(SelectedMonth))
            {
                Navigator.OpenSummary();
                return;
            }

            if (SelectedMonth == null)
            {
                SelectedMonth = Months.FirstOrDefault();
            }

            await LoadMonthSummaryAsync();
        }
Esempio n. 7
0
        public override Task Initialize(MonthItem parameter)
        {
            FillData();
            if (parameter != null)
            {
                _isEditing          = true;
                MonthItem           = parameter;
                var(_, budgetItems) = DbService.LoadMonth(parameter.Month, parameter.Year);

                foreach (var group in BudgetItems)
                {
                    foreach (var item in budgetItems.Where(s => s.Type == group.Type))
                    {
                        group.Add(item);
                    }
                }
            }
            else
            {
                _isEditing = false;
                var now = DateTime.Now;
                MonthItem = new MonthItem
                {
                    Month = now.Month,
                    Year  = now.Year
                };
            }

            SelectedMonth              = Months.FirstOrDefault(s => s.Number == MonthItem.Month);
            PropertyChanged           += MonthEditViewModel_PropertyChanged;
            MonthItem.PropertyChanged += MonthItem_PropertyChanged;
            foreach (var group in BudgetItems)
            {
                foreach (var item in group)
                {
                    item.PropertyChanged += BudgetItem_PropertyChanged;
                }
            }
            return(Task.FromResult(true));
        }
        void Init(MonthItem month)
        {
            FillData();
            if (month is MonthItem monthItem)
            {
                _isEditing          = true;
                MonthItem           = monthItem;
                var(_, budgetItems) = _dbService.LoadMonth(monthItem.Month, monthItem.Year);

                foreach (var group in BudgetItems)
                {
                    foreach (var item in budgetItems.Where(s => s.Type == group.Type))
                    {
                        group.Add(item);
                    }
                }
            }
            else
            {
                _isEditing = false;
                var now = DateTime.Now;
                MonthItem = new MonthItem
                {
                    Month = now.Month,
                    Year  = now.Year
                };
            }

            SelectedMonth              = Months.FirstOrDefault(s => s.Number == MonthItem.Month);
            PropertyChanged           += MonthEditViewModel_PropertyChanged;
            MonthItem.PropertyChanged += MonthItem_PropertyChanged;
            foreach (var group in BudgetItems)
            {
                foreach (var item in group)
                {
                    item.PropertyChanged += BudgetItem_PropertyChanged;
                }
            }
        }
Esempio n. 9
0
        private void DesignCalendar(DateTime?targetDateTime = null)
        {
            CalendarDays.Children.Clear();

            targetDateTime ??= NowDateTime;
            var persianCalendar = PersianDateTime.GetFromDateTime(targetDateTime.Value);

            var persianYear  = persianCalendar.Year;
            var persianMonth = persianCalendar.Month;

            var monthDays = Database.GetMonthDays(persianMonth);

            var sync = SynchronizationContext.Current;

            Months = Database.DeserializeJson(persianYear, persianMonth);

            for (var dayIndex = 0; dayIndex < monthDays; dayIndex++)
            {
                var day      = dayIndex + 1;
                var dayModel = Months.FirstOrDefault(x => x.Key == persianMonth).Value.Find(x => x.DayOfMonth == day);

                var currentDate      = PersianDateTime.GetFromDateTime(new DateTime(targetDateTime.Value.Year, targetDateTime.Value.Month, day));
                var persianDayOfWeek = (DayOfWeekConverter.PersianDayOfWeek)currentDate.DayOfWeek;

                DesignDayButton(CalendarDays, persianYear, persianMonth, day, persianDayOfWeek, dayModel);
            }

            SetTodayDate();

            var firstDayOfGregorianMonth = new PersianDateTime(persianYear, persianMonth, 1).ToDateTime();
            var lastDayOfGregorianMonth  = new PersianDateTime(persianYear, persianMonth, monthDays).ToDateTime();

            // var lastDayOfGregorianMonth = Calendar.ConvertToGregorian(persianYear, monthDays, 1, DateType.Persian);

            PersianTitle.Text   = $"{MonthsName.Persian(persianMonth)} {persianYear}";
            GregorianTitle.Text = MonthsName.Gregorian((DateTime)targetDateTime, firstDayOfGregorianMonth, lastDayOfGregorianMonth);
            HijriTitle.Text     = MonthsName.Hijri(firstDayOfGregorianMonth, lastDayOfGregorianMonth);
        }
 public MonthViewModel GetMonthByDate(DateTime dateTime) =>
 Months.FirstOrDefault(x => x.CurrentDate.Year == dateTime.Year &&
                       x.CurrentDate.Month == dateTime.Month);