public void ShowNormal() => Device.BeginInvokeOnMainThread(() =>
 {
     Content = null;
     contentView.Children.Clear();
     foreach (var child in normalView)
     {
         contentView.Children.Add(child);
     }
     CalendarViewType          = DateTypeEnum.Normal;
     TitleLeftArrow.IsVisible  = true;
     TitleRightArrow.IsVisible = true;
     Content = mainView;
 });
示例#2
0
        public IActionResult GetOnDates(string dateType, DateTime?FROM_DATE = null, DateTime?TO_DATE = null)
        {
            DateTypeEnum dateTypeEnum = DateTypeEnum.INPUT_DATE; // default

            if (dateType == "ACCOUNT_DATE")
            {
                dateTypeEnum = DateTypeEnum.ACCOUNT_DATE;
            }
            else if (dateType == "DUE_DATE")
            {
                dateTypeEnum = DateTypeEnum.DUE_DATE;
            }

            var data = repo.GetOnDates(dateTypeEnum, FROM_DATE, TO_DATE);

            return(Json(data));
        }
示例#3
0
        public SumsOnDayWrap GetOnDates(DateTypeEnum dateType, DateTime?FROM_DATE = null, DateTime?TO_DATE = null)
        {
            // Set default dates
            DateTime start = DateTime.Now.AddDays(-60);

            if (FROM_DATE != null)
            {
                start = FROM_DATE.Value;
            }

            DateTime end = DateTime.Now.AddDays(60);

            if (TO_DATE != null)
            {
                end = TO_DATE.Value;
            }
            else if (TO_DATE == null && FROM_DATE != null)
            {
                end = FROM_DATE.Value.AddDays(60);
            }

            // Get dates
            List <DateTime> dates = Global.GetDatesInRange(start, end);

            // Get sums
            List <SumModel> sums = new List <SumModel>();

            if (dateType == DateTypeEnum.INPUT_DATE)
            {
                sums = this.GetWithTags(start, end).OrderBy(x => x.InputDate).ToList();
            }
            else if (dateType == DateTypeEnum.ACCOUNT_DATE)
            {
                sums = this.GetWithTags(start, end).OrderBy(x => x.AccountDate).ToList();
            }
            else if (dateType == DateTypeEnum.DUE_DATE)
            {
                sums = this.GetWithTags(start, end).OrderBy(x => x.DueDate).ToList();
            }

            return(this.AssableSumsWithDates(sums, dates, dateType));
        }
示例#4
0
        /// <summary>
        /// 获取日期段: 返回今天、本周(周一到周日)、本月、本年日期段
        /// </summary>
        /// <param name="today"></param>
        /// <param name="dateType">类型:1今天;2本周;3本月</param>
        /// <param name="beginDate"></param>
        /// <param name="endDate"></param>
        public static void GetDateRange(DateTime today, DateTypeEnum dateType, out DateTime beginDate, out DateTime endDate)
        {
            //今天
            if (dateType == DateTypeEnum.Today)
            {
                beginDate = today.Date;
                endDate   = today.Date.AddDays(1).AddSeconds(-1);
                return;
            }

            //本周
            if (dateType == DateTypeEnum.ThisWeek)
            {
                var wk = (int)today.DayOfWeek;
                beginDate = today.AddDays(-wk + 1);
                endDate   = today.AddDays(7 - wk + 1).AddSeconds(-1);
                return;
            }

            //本月
            if (dateType == DateTypeEnum.ThisMonth)
            {
                beginDate = Convert.ToDateTime(today.ToString("yyyy-MM-01"));
                endDate   = beginDate.AddMonths(1).AddSeconds(-1);
                return;
            }

            //今年
            if (dateType == DateTypeEnum.ThisYear)
            {
                beginDate = Convert.ToDateTime(today.ToString("yyyy-01-01"));
                endDate   = beginDate.AddYears(1).AddSeconds(-1);
                return;
            }

            beginDate = DateTime.MinValue;
            endDate   = DateTime.MaxValue;
            return;
        }
示例#5
0
        public void ShowMonths()
        {
            Device.BeginInvokeOnMainThread(() =>
            {
                Content = null;
                ContentView.Children.Clear();
                var columDef = new ColumnDefinition {
                    Width = new GridLength(1, GridUnitType.Star)
                };
                var rowDef = new RowDefinition {
                    Height = new GridLength(1, GridUnitType.Star)
                };
                var details = new Grid {
                    VerticalOptions = LayoutOptions.CenterAndExpand, RowSpacing = 0, ColumnSpacing = 0, Padding = 1, BackgroundColor = BorderColor
                };
                details.ColumnDefinitions = new ColumnDefinitionCollection {
                    columDef, columDef, columDef
                };
                details.RowDefinitions = new RowDefinitionCollection {
                    rowDef, rowDef, rowDef, rowDef
                };
                for (int r = 0; r < 4; r++)
                {
                    for (int c = 0; c < 3; c++)
                    {
                        var b = new CalendarButton
                        {
                            HorizontalOptions = LayoutOptions.CenterAndExpand,
                            VerticalOptions   = LayoutOptions.CenterAndExpand,
                            Text            = DateTimeFormatInfo.CurrentInfo.MonthNames[(r * 3) + c],
                            Date            = new DateTime(StartDate.Year, (r * 3) + c + 1, 1).Date,
                            BackgroundColor = DatesBackgroundColor,
                            TextColor       = DatesTextColor,
                            FontSize        = DatesFontSize,
                            BorderWidth     = BorderWidth,
                            BorderColor     = BorderColor,
                            FontAttributes  = DatesFontAttributes,
                            WidthRequest    = ContentView.Width / 3 - BorderWidth,
                            HeightRequest   = ContentView.Height / 4 - BorderWidth
                        };

                        b.Clicked += (sender, e) =>
                        {
                            MonthYearButtonCommand?.Execute((sender as CalendarButton).Date.Value);
                            MonthYearButtonClicked?.Invoke(sender, new DateTimeEventArgs {
                                DateTime = (sender as CalendarButton).Date.Value
                            });
                            if (EnableTitleMonthYearView)
                            {
                                StartDate = (sender as CalendarButton).Date.Value;
                                PrevMonthYearView();
                            }
                        };

                        details.Children.Add(b, c, r);
                    }
                }
                details.WidthRequest  = w;
                details.HeightRequest = h;
                ContentView.Children.Add(details);
                CalendarViewType          = DateTypeEnum.Month;
                TitleLeftArrow.IsVisible  = false;
                TitleRightArrow.IsVisible = false;
                Content = MainView;
            });
        }
示例#6
0
 public ObjectProperty(string name, DateTypeEnum type, bool required)
 {
     Name       = name;
     Type       = type;
     IsRequired = required;
 }
 public void ShowYears() => Device.BeginInvokeOnMainThread(() =>
 {
     Content = null;
     contentView.Children.Clear();
     yearButtons.Clear();
     var columDef = new ColumnDefinition {
         Width = new GridLength(1, GridUnitType.Star)
     };
     var rowDef = new RowDefinition {
         Height = new GridLength(1, GridUnitType.Star)
     };
     var details = new Grid {
         VerticalOptions = LayoutOptions.CenterAndExpand, RowSpacing = 0, ColumnSpacing = 0, Padding = 1, BackgroundColor = BorderColor
     };
     details.ColumnDefinitions = new ColumnDefinitionCollection {
         columDef, columDef, columDef, columDef
     };
     details.RowDefinitions = new RowDefinitionCollection {
         rowDef, rowDef, rowDef, rowDef
     };
     for (var r = 0; r < YearsRow; r++)
     {
         for (var c = 0; c < YearsColumn; c++)
         {
             var t = (r * YearsColumn) + c + 1;
             var b = new CalendarButton
             {
                 HorizontalOptions = LayoutOptions.CenterAndExpand,
                 VerticalOptions   = LayoutOptions.CenterAndExpand,
                 Text            = string.Format("{0}", StartDate.Year + (t - (YearsColumn * YearsRow / 2))),
                 Date            = new DateTime(StartDate.Year + (t - (YearsColumn * YearsRow / 2)), StartDate.Month, 1).Date,
                 BackgroundColor = DatesBackgroundColor,
                 TextColor       = DatesTextColor,
                 FontSize        = DatesFontSize,
                 FontAttributes  = DatesFontAttributes,
                 BorderWidth     = BorderWidth,
                 BorderColor     = BorderColor,
                 WidthRequest    = (contentView.Width / YearsRow) - BorderWidth,
                 HeightRequest   = contentView.Height / YearsColumn - BorderWidth
             };
             b.Clicked += (sender, e) =>
             {
                 MonthYearButtonCommand?.Execute((sender as CalendarButton).Date.Value);
                 MonthYearButtonClicked?.Invoke(sender, new DateTimeEventArgs {
                     DateTime = (sender as CalendarButton).Date.Value
                 });
                 if (EnableTitleMonthYearView)
                 {
                     StartDate = (sender as CalendarButton).Date.Value;
                     PrevMonthYearView();
                 }
             };
             yearButtons.Add(b);
             details.Children.Add(b, c, r);
         }
     }
     details.WidthRequest  = w;
     details.HeightRequest = h;
     contentView.Children.Add(details);
     CalendarViewType          = DateTypeEnum.Year;
     TitleLeftArrow.IsVisible  = true;
     TitleRightArrow.IsVisible = true;
     Content = mainView;
 });
示例#8
0
        /// <summary>
        /// Gets the api returnable, dates wrapped sums
        /// </summary>
        /// <param name="sums">Requires: <i>dateType</i>-ordered ASC!</param>
        /// <param name="dates">Requires: ordered ASC!</param>
        /// <param name="dateType"></param>
        /// <returns></returns>
        private SumsOnDayWrap AssableSumsWithDates(List <SumModel> sums, List <DateTime> dates, DateTypeEnum dateType)
        {
            SumsOnDayWrap ret = new SumsOnDayWrap();

            if (dateType == DateTypeEnum.INPUT_DATE)
            {
                ret.DateType = "INPUT_DATE";
            }
            else if (dateType == DateTypeEnum.ACCOUNT_DATE)
            {
                ret.DateType = "ACCOUNT_DATE";
            }
            else if (dateType == DateTypeEnum.DUE_DATE)
            {
                ret.DateType = "DUE_DATE";
            }

            int i = 0;
            int j = 0;

            while (i < dates.Count && j < sums.Count)
            {
                SumsOnDay dayData = new SumsOnDay();
                dayData.Date = dates[i].Date;

                DateTime sumDate = sums[j].InputDate.Value; // default set
                if (dateType == DateTypeEnum.ACCOUNT_DATE)
                {
                    sumDate = sums[j].AccountDate.Value;
                }
                else if (dateType == DateTypeEnum.DUE_DATE)
                {
                    sumDate = sums[j].DueDate.Value;
                }

                if (dayData.Date == sumDate.Date)
                {
                    while (j < sums.Count && dayData.Date == sumDate.Date)
                    {
                        dayData.Data.Add(sums[j]);
                        j++;

                        if (j < sums.Count)
                        {
                            sumDate = sums[j].InputDate.Value; // default set
                            if (dateType == DateTypeEnum.ACCOUNT_DATE)
                            {
                                sumDate = sums[j].AccountDate.Value;
                            }
                            else if (dateType == DateTypeEnum.DUE_DATE)
                            {
                                sumDate = sums[j].DueDate.Value;
                            }
                        }
                    }
                }
                i++;
                ret.Data.Add(dayData);
            }

            while (i < dates.Count)
            {
                SumsOnDay dayData = new SumsOnDay();
                dayData.Date = dates[i].Date;
                ret.Data.Add(dayData);
                i++;
            }

            return(ret);
        }
示例#9
0
 /// <summary>
 /// 获取日期段: 返回今天、本周(周一到周日)、本月、本年日期段
 /// </summary>
 /// <param name="today"></param>
 /// <param name="dateType">类型:1今天;2本周;3本月</param>
 /// <param name="beginDate"></param>
 /// <param name="endDate"></param>
 public static void GetDateRange(this DateTime today, DateTypeEnum dateType, out DateTime beginDate,
                                 out DateTime endDate)
 {
     DateHelper.GetDateRange(today, dateType, out beginDate, out endDate);
 }
示例#10
0
 public ObjectProperty( string name, DateTypeEnum type, bool required )
 {
   Name = name;
   Type = type;
   IsRequired = required;
 }
示例#11
0
 public DataTypeValidator(DateTypeEnum dateType)
 {
     _dateType = dateType;
 }