Example #1
0
        public ActionResult PhysicianTestReview(PhysicianTestReviewListModelFilter filter = null, int pageNumber = 1)
        {
            var filterValidator = IoC.Resolve <PhysicianTestReviewListModelFilterValidator>();
            var result          = filterValidator.Validate(filter);

            if (result.IsValid)
            {
                int totalRecords = 0;

                var model = _physicianEvaluationService.GetPhysicianTestReview(pageNumber, _pageSize, filter, out totalRecords);
                if (model == null)
                {
                    model = new PhysicianTestReviewListModel();
                }
                model.Filter = filter;

                var currentAction = ControllerContext.RouteData.Values["action"].ToString();

                Func <int, string> urlFunc =
                    pn => Url.Action(currentAction, new
                {
                    pageNumber = pn,
                    filter.EventId,
                    filter.FromDate,
                    filter.ToDate,
                    filter.DateType,
                    filter.PhysicianId,
                    filter.PodId,
                    filter.IsRetailEvent,
                    filter.IsCorporateEvent,
                    filter.IsPublicEvent,
                    filter.IsPrivateEvent
                });
                model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc);
                return(View(model));
            }

            var propertyNames = result.Errors.Select(e => e.PropertyName).Distinct();
            var htmlString    = propertyNames.Aggregate("", (current, property) => current + (result.Errors.Where(e => e.PropertyName == property).FirstOrDefault().ErrorMessage + "<br />"));

            return(View(new PhysicianTestReviewListModel {
                Filter = filter, FeedbackMessage = FeedbackMessageModel.CreateFailureMessage(htmlString)
            }));
        }
        public PhysicianTestReviewListModel Create(IEnumerable <long> physicianIds, IEnumerable <OrderedPair <long, string> > physiciansIdNamePair, IEnumerable <PhysicianTestReviewStats> physicianTestReviewStatses)
        {
            var model = new PhysicianTestReviewListModel();

            var physicianTestReviews = new List <PhysicianTestReviewViewModel>();

            physicianIds.ToList().ForEach(pid =>
            {
                var physicianName  = physiciansIdNamePair.Where(p => p.FirstValue == pid).First().SecondValue;
                var testCountPairs = physicianTestReviewStatses.Where(ptrs => ptrs.PhysicianId == pid).First().TestCountPairs;

                physicianTestReviews.Add(new PhysicianTestReviewViewModel
                {
                    PhysicianId      = pid,
                    PhysicianName    = physicianName,
                    TestIdCountPairs = testCountPairs
                });
            });

            model.Collection = physicianTestReviews;

            return(model);
        }