private VacationData VacationDataMapper(VacationDataViewModel vacationView)
 {
     return(new VacationData()
     {
         VacationDate = vacationView.CalendarDate,
         UserID = vacationView.UserID,
         VacationTypeID = vacationView.VacationTypeID,
         RowVersion = vacationView.RowVersion
     });
 }
        private List <VacationDataViewModel> GetVacationForUser(int year, int month, int?vacationType, int userId)
        {
            List <VacationData>          vacationDB = new List <VacationData>();
            List <VacationDataViewModel> vacation   = new List <VacationDataViewModel>();

            if (vacationType != default(int) && vacationType != null)
            {
                vacationDB = _context.VacationData.Where(x => x.UserID == userId && x.VacationDate.Year == year && x.VacationDate.Month == month && x.VacationTypeID == vacationType).Select(row => row).ToList();
                if (vacationDB.Count <= 0)
                {
                    return(vacation);
                }
            }
            else
            {
                vacationDB = _context.VacationData.Where(x => x.UserID == userId && x.VacationDate.Year == year && x.VacationDate.Month == month).Select(row => row).ToList();
            }

            int monthDays = DateTime.DaysInMonth(year, month);

            for (int day = 1; day <= monthDays; day++)
            {
                var data = new VacationDataViewModel();
                data.Day            = day;
                data.CalendarDate   = new DateTime(year, month, day);
                data.Id             = vacationDB.FirstOrDefault(x => x.VacationDate == data.CalendarDate)?.ID ?? default(int);
                data.IsOnVacation   = vacationDB.Any(x => x.ID == data.Id);
                data.DayName        = data.CalendarDate.DayOfWeek.ToString().Substring(0, 3);
                data.VacationTypeID = vacationDB.FirstOrDefault(x => x.ID == data.Id)?.VacationTypeID ?? default(int);
                data.UserID         = userId;
                data.RowVersion     = vacationDB.FirstOrDefault(x => x.ID == data.Id)?.RowVersion;
                if ((data.CalendarDate.DayOfWeek == DayOfWeek.Saturday) || (data.CalendarDate.DayOfWeek == DayOfWeek.Sunday))
                {
                    data.IsNonWorkingDay = true;
                }
                else
                {
                    data.IsNonWorkingDay = false;
                }

                if (data.CalendarDate.Date == DateTime.Today)
                {
                    data.IsToday = true;
                }
                else
                {
                    data.IsToday = false;
                }

                vacation.Add(data);
            }

            return(vacation);
        }