Пример #1
0
        private MonthlyCarUsage GenerateRandomizedCarUsage(MonthDate monthDate)
        {
            var monthlyUsage = new MonthlyCarUsage();
            var workDays     = this.GetWorkDays(monthDate);

            for (int i = 0; i < workDays.Count; i++)
            {
                int workDay              = workDays[i];
                var correctDate          = new DateTime(monthDate.Year, monthDate.Month, workDay);
                var chosenTemplateResult = CarUsageRng.GetRandomizedCarUsage();
                monthlyUsage.Month = monthDate.Month;
                monthlyUsage.Year  = monthDate.Year;
                monthlyUsage.CarUsages.Add(new DailyCarUsage()
                {
                    Number                = i + 1,
                    Date                  = correctDate.ToString("dd.MM.yyyy"),
                    KilometersAmount      = chosenTemplateResult.KilometersAmount,
                    RouteDescription      = chosenTemplateResult.RouteDescriptions,
                    TravelPurpose         = chosenTemplateResult.TravelPurposes,
                    OneKilometerRateValue = CarInfoRepository.GetCostRateValue()
                });
            }
            monthlyUsage.RecalculateAll();

            return(monthlyUsage);
        }
Пример #2
0
        public void GenerateCarReport(int month, int year)
        {
            var monthDate = new MonthDate(month, year);
            var carUsages = this.GenerateRandomizedCarUsage(monthDate);

            PdfHelper.GeneratePdfToFile(carUsages);
        }
Пример #3
0
        public virtual List <E> SelectByMonth(DateTime month)
        {
            DateTime nextMonth = month.AddMonths(1);

            return(this.Select(String.Format("date >= '{1}/{0}/{2}' AND date < '{4}/{3}/{5}' ",
                                             //return this.Select(String.Format("date >= '06/01/2018' AND date < '08/01/2018' ",
                                             MonthDate.GetFifthWorkingDay(month), month.Month, month.Year,
                                             MonthDate.GetFifthWorkingDay(nextMonth), nextMonth.Month, nextMonth.Year),
                               "date ASC, description ASC"));

            //return this.Select(String.Format("DATEPART(month, date) = {0} AND DATEPART(year, date) = {1}", month.Month, month.Year), "date ASC, description ASC");
        }
Пример #4
0
        public DateTime Date(DateTime currentDate)
        {
            switch (DayType)
            {
            case eDayType.WorkingDays:
                return(MonthDate.GetWorkingDay(currentDate, this.Day));

            case eDayType.FixedDays:
                return(currentDate.AddDays(-currentDate.Day).AddDays(this.Day));
            }

            return(currentDate);
        }
Пример #5
0
        public void GetWorkDays_ReturnsListOfWorkDays_WhenMonthDateIsValid()
        {
            // Arrange
            var monthDate_test_1       = new MonthDate(6, 2018);
            var correctWorkDays_test_1 = new List <int>()
            {
                1, 4, 5, 6, 7, 8, 11, 12, 13, 14, 15, 18, 19, 20, 21, 22, 25, 26, 27, 28, 29
            };

            var monthDate_test_2       = new MonthDate(2, 2016);
            var correctWorkDays_test_2 = new List <int>()
            {
                1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 29
            };

            // Act
            var workDays_test_1 = CarGeneratorLogic.GetWorkDays(monthDate_test_1);
            var workDays_test_2 = CarGeneratorLogic.GetWorkDays(monthDate_test_2);

            // Assert
            CollectionAssert.AreEqual(workDays_test_1.OrderBy(x => x).ToList(), correctWorkDays_test_1.OrderBy(x => x).ToList());
            CollectionAssert.AreEqual(workDays_test_2.OrderBy(x => x).ToList(), correctWorkDays_test_2.OrderBy(x => x).ToList());
        }
Пример #6
0
 public List <int> GetWorkDays(MonthDate monthDate)
 {
     return(Enumerable.Range(1, DateTime.DaysInMonth(monthDate.Year, monthDate.Month))
            .Select(day => new DateTime(monthDate.Year, monthDate.Month, day))
            .Where(d => d.DayOfWeek != DayOfWeek.Saturday && d.DayOfWeek != DayOfWeek.Sunday).Select(x => x.Day).ToList());
 }