Esempio n. 1
0
        public ActionResult Index(string sortOrder, string currentFilter, string searchString, int?page, string startDate = null, string eventId = null, string state = "all")
        {
            ViewBag.CurrentSort       = sortOrder;
            ViewBag.TimeRangeSortParm = String.IsNullOrEmpty(sortOrder) ? "timerange" : "";

            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewBag.CurrentFilter = searchString;

            int pageSize   = 25;
            int pageNumber = (page ?? 1);

            DateTime start, end;

            if (String.IsNullOrEmpty(startDate))
            {
                var currentDate = DateTime.Now;
                start = new DateTime(currentDate.Year, currentDate.Month, currentDate.Day);
                end   = start.AddHours(24);
            }
            else
            {
                var currentDate = Convert.ToDateTime(startDate);
                start = new DateTime(currentDate.Year, currentDate.Month, currentDate.Day);
                end   = start.AddHours(24);
            }

            ViewBag.StartDate = start.ToString("yyyy-MM-dd");

            var items = _registrationRepository.List(sortOrder, searchString, start, end, eventId, state);

            var registrations = new List <RegistrationViewModel>();

            foreach (var registration in items)
            {
                var visitor   = _visitorRepository.GetById(registration.Visitor.Id);
                var eventItem = _eventRepository.GetById(registration.Event.Id);
                var date      = eventItem.TimeRange.Start.ToString("yyyy-MM-dd");
                var timeFrom  = eventItem.TimeRange.Start.ToShortTimeString();
                var timeTill  = eventItem.TimeRange.End.ToShortTimeString();
                registrations.Add(new RegistrationViewModel()
                {
                    Id               = registration.Id,
                    Name             = visitor.Name,
                    Email            = visitor.Email,
                    City             = visitor.City,
                    Postcode         = visitor.Postcode,
                    EventId          = eventItem.Id,
                    Visited          = registration.Visited,
                    Confirmed        = registration.Confirmed,
                    Title            = date + " " + timeFrom + "-" + timeTill,
                    NumberOfVisitors = registration.NumberOfVisitors
                });
            }

            ViewBag.TotalRegistrations = _registrationRepository.GetRegistrationTotal(start, end);
            ViewBag.TotalVisitors      = _registrationRepository.GetVisitorTotal(start, end);
            ViewBag.State = state;

            return(View(registrations.ToPagedList(pageNumber, pageSize)));
        }