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); }
public void GenerateCarReport(int month, int year) { var monthDate = new MonthDate(month, year); var carUsages = this.GenerateRandomizedCarUsage(monthDate); PdfHelper.GeneratePdfToFile(carUsages); }
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"); }
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); }
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()); }
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()); }