Example #1
0
        public IActionResult MonthView(MonthViewPagerViewModel model, int Year, int Month)
        {
            try
            {
                if (Request.Method.Equals("GET") && Year == 0)
                {
                    model.Month = DateTime.Today.Month - 1;

                    ModelState.Clear();
                }
                else if (Year != 0)
                {
                    model.Year  = Year;
                    model.Month = Month;
                }

                var monthDicItem = MonthGenerator.GetAllMonthsForYear(model.Year).FirstOrDefault(x => (int)x["MonthNum"] == model.Month + 1);
                if (monthDicItem != null)
                {
                    model.SelectedMonth = new MonthViewModel()
                    {
                        MonthStartTs = (DateTime)monthDicItem["MonthStart"], MonthEndTs = (DateTime)monthDicItem["MonthEnd"], MonthNum = model.Month + 1
                    };
                }

                if (ModelState.IsValid)
                {
                    return(View(model));
                }
                else
                {
                    return(View(model));
                }
            }
            catch (Exception ex)
            {
                model.Month = DateTime.Today.Month - 1;

                ViewData["WarningMessage"] = ex.Message;

                return(View(model));
            }
        }
Example #2
0
        public DateTime NextDate()
        {
            var d = DateTime.Now;

            if (Start >= End)
            {
                return(d);
            }


            var yearGenerator = YearGenerator;

            if (yearGenerator == null && Start.HasValue && End.HasValue)
            {
                yearGenerator = new LinearGenerator(DateToYearFraction(Start.Value), DateToYearFraction(End.Value));
            }

            d = GetInRange(() =>
            {
                if (yearGenerator != null)
                {
                    d = YearFractionToDate(yearGenerator.Next());
                }


                if (PartOfYearGenerator != null)
                {
                    //if (YearGenerator == null || Randomness.Random.NextDouble() < 1 - YearWeight)
                    {
                        //                        d = YearFractionToDate(_uniform.Next());
                        var val  = PartOfYearGenerator.Next();
                        var days = val * (DateTime.IsLeapYear(d.Year) ? 366 : 365);

                        var dnew = new DateTime(d.Year, 1, 1).AddDays(days);
                        if (YearGenerator != null && Distance(d, dnew) > 1d)
                        {
                            return(DateTime.MinValue);
                        }
                        d = dnew;
                    }
                }

                if (MonthGenerator != null)
                {
                    //if (YearGenerator == null || Randomness.Random.NextDouble() < 1 - YearWeight)
                    {
                        var val = MonthGenerator.Next();

                        if (YearGenerator != null || PartOfYearGenerator != null)
                        {
                            if (d.Month != (int)val)
                            {
                                return(DateTime.MinValue);
                                //var daysInMonth = DateTime.DaysInMonth(d.Year, (int)val);
                                //var mid = new DateTime(d.Year, (int) val, daysInMonth/2);
                                //var p = Distance(d, mid)/(double)daysInMonth;
                                //if (Randomness.Random.NextDouble() < p) return DateTime.MinValue;
                            }
                        }
                        else
                        {
                            var days = (d.Day - 1) / (double)(DateTime.DaysInMonth(d.Year, d.Month));
                            d        = new DateTime(d.Year, (int)val, 1 + (int)(days * DateTime.DaysInMonth(d.Year, (int)val)));
                        }
                    }
                }

                if (DayOfWeekGenerator != null)
                {
                    var val = (int)DayOfWeekGenerator.Next();
                    d       = d.AddDays(-(int)d.DayOfWeek + val);
                }

                if (HourGenerator != null)
                {
                    d = d.Date.AddHours(HourGenerator.Next());
                }

                return(d);
            });

            return(d);
        }