Ejemplo n.º 1
0
        public TestsBookedListModel Create(IEnumerable <OrderedPair <long, long> > eventCustomerTestOrderedPairs, IEnumerable <EventCustomer> eventCustomers, IEnumerable <Event> events, IEnumerable <Customer> customers,
                                           IEnumerable <Pod> pods, IEnumerable <Test> tests)
        {
            var model = new TestsBookedListModel();
            var appointmentsBookedModels = new List <TestsBookedModel>();
            var eventIds = eventCustomers.Select(ec => ec.EventId).Distinct().ToArray();
            var hosts    = _hostRepository.GetEventHosts(eventIds);

            eventCustomerTestOrderedPairs.ToList().ForEach(ect =>
            {
                var ec = eventCustomers.FirstOrDefault(o => o.Id == ect.FirstValue);


                var theEvent = events.FirstOrDefault(o => o.Id == ec.EventId);

                var customer = customers.FirstOrDefault(c => c.CustomerId == ec.CustomerId);

                var testNames = tests.Where(x => x.Id == ect.SecondValue).First().Name;


                var podNames = (theEvent.PodIds != null && theEvent.PodIds.Count() > 0) ? string.Join(", ", pods.Where(p => theEvent.PodIds.Contains(p.Id)).Select(p => p.Name)) : string.Empty;

                var host = hosts.First(h => h.Id == theEvent.HostId);

                var testModel = new TestsBookedModel
                {
                    CustomerId   = ec.CustomerId,
                    CustomerName = customer.NameAsString,
                    EventName    = host.OrganizationName,
                    EventDate    = theEvent.EventDate,
                    EventId      = ec.EventId,
                    TestName     = testNames,
                    PodName      = podNames
                };


                appointmentsBookedModels.Add(testModel);
            });


            model.Collection = appointmentsBookedModels;
            return(model);
        }
Ejemplo n.º 2
0
        public ActionResult TestsBooked(TestsBookedListModelFilter filter = null, int pageNumber = 1)
        {
            int totalRecords;

            if (filter == null)
            {
                filter = new TestsBookedListModelFilter {
                    FromDate = DateTime.Now.Date
                };
            }
            filter.FromDate = filter.FromDate.HasValue ? filter.FromDate.Value : DateTime.Now.Date;

            if (filter != null && filter.FromDate < DateTime.Today)
            {
                return(View(new TestsBookedListModel {
                    Filter = filter, FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("From date can not be past date.")
                }));
            }

            var model = _eventCustomerReportingService.GetTestsBooked(pageNumber, _pageSize, filter, out totalRecords);

            if (model == null)
            {
                model = new TestsBookedListModel();
            }
            model.Filter = filter;

            var currentAction          = ControllerContext.RouteData.Values["action"].ToString();
            Func <int, string> urlFunc =
                pn => Url.Action(currentAction, new
            {
                pageNumber = pn,
                filter.FromDate,
                filter.ToDate,
                filter.EventId
            });

            model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc);

            return(View(model));
        }