public IEnumerable <CalendarEvent> GetEvents([FromBody] SelectorDateParams selectorParams)
        {
            DateTime today = DateTime.Today;
            int      year  = today.Year;
            int      month = today.Month;

            if (selectorParams != null)
            {
                if ((selectorParams.Month != 0) && (selectorParams.Year != 0))
                {
                    year  = selectorParams.Year;
                    month = selectorParams.Month;
                }
            }

            DateTime requestStart = new DateTime(year, month, 1, 0, 0, 0);
            DateTime requestEnd   = new DateTime(year, month, DateTime.DaysInMonth(year, month), 23, 59, 59);

            IEnumerable <CalendarEvent> events = _db.CalendarEvents.Where(calendarEvent => ((calendarEvent.Start >= requestStart) && (calendarEvent.End <= requestEnd)))
                                                 .OrderBy(calendarEvent => calendarEvent.Start)
                                                 .Include(calendarEvent => calendarEvent.CreatedBy)
                                                 .Include(calendarEvent => calendarEvent.Customer)
                                                 .Include(calendarEvent => calendarEvent.EventType)
                                                 .Include(calendarEvent => calendarEvent.Owner);

            return(events);
        }
        public CalendarInitViewModel GetInitData([FromBody] SelectorDateParams selectorParams)
        {
            DateTime today = DateTime.Today;
            int      year  = today.Year;
            int      month = today.Month;

            if (selectorParams != null)
            {
                if ((selectorParams.Month != 0) && (selectorParams.Year != 0))
                {
                    year  = selectorParams.Year;
                    month = selectorParams.Month;
                }
            }

            SelectorWeek[]  weeks       = GetMonthWeeks(year, month);
            ApplicationRole stylistRole = _db.Roles.FirstOrDefault(r => r.Name.Equals("Stylist", StringComparison.InvariantCultureIgnoreCase));

            CalendarInitViewModel model = new CalendarInitViewModel();

            string user = User.Identity.Name;

            if (string.IsNullOrEmpty(user))
            {
                user = "******";
            }

            model.User      = user;
            model.IsAdmin   = User.IsInRole("Admin");
            model.Year      = year;
            model.Month     = month;
            model.MonthName = GetMonthName(month);
            model.MonthDays = DateTime.DaysInMonth(year, month);
            model.Weeks     = weeks;
            model.Users     = _db.Users.Include(u => u.UserRoles).Where(u => u.UserRoles.Any(r => ((r.User == u) && (r.Role.Name.Equals("Admin", StringComparison.InvariantCultureIgnoreCase))))).Select(u => new UserEntity()
            {
                Id = u.Id.ToString("D"), Name = $"{u.FirstName} {u.LastName}", Email = u.Email
            }).ToArray();
            model.Stylists = _db.Users.Include(u => u.UserRoles).Where(u => u.UserRoles.Any(r => ((r.User == u) && (r.Role.Name.Equals("Stylist", StringComparison.InvariantCultureIgnoreCase))))).Select(u => new UserEntity()
            {
                Id = u.Id.ToString("D"), Name = $"{u.FirstName} {u.LastName}", Email = u.Email
            }).ToArray();
            model.Customers  = _db.Customers.ToArray();
            model.EventTypes = _db.CalendarEventTypes.ToArray();
            model.Statuses   = ((EventStatus[])Enum.GetValues(typeof(EventStatus))).Select(es => new RegisterEntity()
            {
                Id = (int)es, Name = es.ToString()
            }).ToArray();

            return(model);
        }