/// <summary> /// control the carousel page positions /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void Handle_PositionSelected(object sender, CarouselView.FormsPlugin.Abstractions.PositionSelectedEventArgs e) { try { CurrentCarocelPageIndex = e.NewValue; CurrentlyOpenCarocelPage = dayTasksViewModel.TaskForDayList[e.NewValue]; foreach (var r in CurrentlyOpenCarocelPage.ModelTaskForDayList) { //deslect all item firstly r.IsSelected = false; } isAnyItemSelected = false; //make sure not any task item selected from this page yet. AddNewTaskIcon.IsVisible = false; string dateForCurrentPage = CurrentlyOpenCarocelPage.CurrentDateForCurrentCarocel.ToString("d MMMM yyyy"); currentDate = CurrentlyOpenCarocelPage.CurrentDateForCurrentCarocel.ToString("yyyy-MM-dd"); if (Convert.ToDateTime(Convert.ToDateTime(dateForCurrentPage).ToString("d MMMM yyyy")).CompareTo(Convert.ToDateTime(DateTime.Now.ToString("d MMMM yyyy"))) <= 0) { // if page date is same as current date or previous than the current date then show the add button on toolbar var s = dayTasksViewModel.GetAllDayTasksBaseOnDayMonth(dateForCurrentPage); if (s.Count > 0) { // ToolbarItems.Add(addToolbarItem); AddNewTaskIcon.IsVisible = true; } } } catch (Exception ex) { MessagingCenter.Send((App)Xamarin.Forms.Application.Current, AppConstant.ErrorEvent, ex.ToString()); } }
/// <summary> /// control the carousel page positions /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void Handle_PositionSelected(object sender, CarouselView.FormsPlugin.Abstractions.PositionSelectedEventArgs e) { try { CurrentCarocelPageIndex = e.NewValue; CurrentlyOpenCarocelPage = dayTasksViewModel.TaskForDayList[e.NewValue]; ToolbarItems.Remove(addToolbarItem); // firstly romove the Add toolbar item string dateForCurrentPage = CurrentlyOpenCarocelPage.CurrentDateForCurrentCarocel.ToString("d MMMM yyyy"); currentDate = CurrentlyOpenCarocelPage.CurrentDateForCurrentCarocel.ToString("yyyy-MM-dd"); if (Convert.ToDateTime(Convert.ToDateTime(dateForCurrentPage).ToString("d MMMM yyyy")).CompareTo(Convert.ToDateTime(DateTime.Now.ToString("d MMMM yyyy"))) <= 0) { // if page date is same as current date or previous than the current date then show the add button on toolbar var s = dayTasksViewModel.GetAllDayTasksBaseOnDayMonth(dateForCurrentPage); if (s.Count > 0) { ToolbarItems.Add(addToolbarItem); } } }catch (Exception ex) { MessagingCenter.Send((App)Xamarin.Forms.Application.Current, AppConstant.ErrorEvent, ex.ToString()); } }
/// <summary> /// formalize the models for carocel page list /// find the days in particular month which indicate the count of carocel pages to be in stats page /// </summary> /// <param name="d"></param> public void GetAndSetDayForMonth(string d) { try { CarocelModel PrepareCarocelModel = new CarocelModel(); DateTime FirstDate = new DateTime(CurrentSelectedDate.Year, CurrentSelectedDate.Month, 1); //first date of selected month int daysInMonth = DateTime.DaysInMonth(CurrentSelectedDate.Year, CurrentSelectedDate.Month); // days in selected month ;// count of carocel page for (int i = 1; i <= daysInMonth; i++) { string date = "" + CurrentSelectedDate.Year + "-" + CurrentSelectedDate.Month + "-" + i; // date s of month--->in the following patteren -> year-month-day (day = 1 to end of months) _AllTasksForDay = databaseHelper.GetAllDayTasksBaseOnDayMonth(date); // fetch task for every invidual date of month PrepareCarocelModel.ModelTaskForDayList.Clear(); PrepareCarocelModel.CurrentDateForCurrentCarocel = Convert.ToDateTime(date); string e = DateTime.Now.ToString("yyyy-M-d"); if (Convert.ToDateTime(date).CompareTo(Convert.ToDateTime(e)) == 0) { // if current day date then enable list PrepareCarocelModel.IsEnableCell = true; } else { //disable the list PrepareCarocelModel.IsEnableCell = false; } PrepareCarocelModel.MonthAndDate = Convert.ToDateTime(date).ToString("d MMMM"); for (int j = 0; j < _AllTasksForDay.Count; j++) { // formalize the every task to populate on UI DayActivity dt = _AllTasksForDay[j]; dt.TaskStartedAt = Convert.ToDateTime(dt.TaskStartedAt).ToString("h:mm:ss tt"); // change format of date Time like 10:23:02 AM/PM if (dt.SpentTime != null) { dt.SpentTime = AppUtil.AppUtil.FormatTheSpendedTime(dt.SpentTime); // change the format of spended time like 2h and 20m and 44s } PrepareCarocelModel.ModelTaskForDayList.Add(dt); } //Add the newly formalized model to main Croucel list CarocelModel carocelModel = new CarocelModel(); List <DayActivity> DeepCopyOfAllDayTaskList = PrepareCarocelModel.ModelTaskForDayList.Take(PrepareCarocelModel.ModelTaskForDayList.Count).ToList(); // take() return the deep copy of every invidual items foreach (DayActivity dayTask in DeepCopyOfAllDayTaskList) { carocelModel.ModelTaskForDayList.Add(dayTask); } carocelModel.MonthAndDate = PrepareCarocelModel.MonthAndDate; carocelModel.CurrentDateForCurrentCarocel = Convert.ToDateTime(PrepareCarocelModel.CurrentDateForCurrentCarocel); if (carocelModel.ModelTaskForDayList.Count > 0) { carocelModel.IsShowError = false; carocelModel.IsShowList = true; } else { carocelModel.IsShowError = true; carocelModel.IsShowList = false; } carocelModel.IsEnableCell = PrepareCarocelModel.IsEnableCell; TaskForDayList.Add(carocelModel); } } catch (Exception ex) { MessagingCenter.Send((App)Xamarin.Forms.Application.Current, AppConstant.ErrorEvent, ex.ToString()); } }