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(); } }
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)); }
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()); } }
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); }
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(); }
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; } } }
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);