Example #1
0
        public PartialViewResult DisplayFinishHistogram(SimpleFilterViewModel model)
        {
            var filter    = new RaceFilterViewModel(model);
            var viewModel = GetEstimatedTime(filter);

            return(PartialView("_FinishHistogram", viewModel));
        }
        public ActionResult Compare(SimpleFilterViewModel model)
        {
            RaceFilterViewModel filter;

            //the following is a workaround for some flawed javascript that doesn't always pass the params we need
            if (String.IsNullOrEmpty(model.Races))
            {
                var simple = SimpleFilterViewModel.Create(Request.UrlReferrer.Query);
                if (!String.IsNullOrEmpty(model.selectedAthletes))
                {
                    simple.selectedAthletes = model.selectedAthletes;
                    return(RedirectToAction("Compare", simple));
                }

                //this is to keep from a null exception
                filter = new RaceFilterViewModel(simple);
            }
            else
            {
                filter = new RaceFilterViewModel(model);
            }
            var viewmodel = new TriathletesCompareViewModel();

            viewmodel.Filter = filter;

            //order them from fastest to slowest so the view can know who was first,second, last, etc.
            viewmodel.Triathletes = _DBContext.Triathletes.Include("RequestContext.Race").OrderBy(t => t.Finish)
                                    .Where(t => filter.SelectedAthleteIds.Contains(t.TriathleteId));

            viewmodel.Stats = GetStats(viewmodel.Triathletes.ToList());

            return(View("~/Views/Triathletes/Compare.cshtml", viewmodel));
        }
Example #3
0
        //called from one controller to another
        public ActionResult ViewResults(SimpleFilterViewModel model)
        {
            CurrentFilter = model; //save for race sort

            var filter = new RaceFilterViewModel(model);

            return(DisplayResultsView(filter));
        }
Example #4
0
        public PartialViewResult DisplaySwimTime(SimpleFilterViewModel model)
        {
            model.ClearDuration(); //we do this just in case they have values from the duration filters on the page
            var filter    = new RaceFilterViewModel(model);
            var modelView = GetEstimatedTime(filter);

            modelView.Filter = filter;
            return(PartialView("_EstSwim", modelView));
        }
        /// <summary>
        /// Called while paging through athletes. We need to return just the partial view of athletes
        /// </summary>
        /// <param name="page"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        //
        public PartialViewResult DisplayPagedRaces(int page, string sortOrder, SimpleFilterViewModel model)
        {
            var filter = new RaceFilterViewModel(model, sortOrder);

            page = page > 0 ? page : 1;
            filter.AvailableRaces = filter.AvailableRaces.ToPagedList(page, _PageSize); //max xx per page

            return(PartialView("~/Views/Shared/_OnePageOfRaces.cshtml", filter));
        }
        //search all athletes we have by name and return details of all their races
        public PartialViewResult AthleteSearchAllByName(string athletes)
        {
            if (athletes == "0")
            {
                var simple = SimpleFilterViewModel.Create(Request.UrlReferrer.Query);
                return(DisplayPagedAthletes(1, simple));
            }

            return(PartialView("_SearchResults-All", DoSearchAllByName(athletes)));
        }
        //search athletes by id
        public PartialViewResult AthleteSearch(string SelectedAthleteId)
        {
            if (SelectedAthleteId == "0")
            {
                var simple = SimpleFilterViewModel.Create(Request.UrlReferrer.Query);
                return(DisplayPagedAthletes(1, simple));
            }

            return(PartialView("_SearchResults-Race", DoSearchById(SelectedAthleteId)));
        }
Example #8
0
        public ActionResult GetAthlete(string raceId)
        {
            if (String.IsNullOrEmpty(raceId))
            {
                return(new HttpNotFoundResult());
            }

            var simpleModel = SimpleFilterViewModel.Create();

            simpleModel.Races = raceId;
            return(RedirectToAction("ViewResults", "TriStatsSummary", simpleModel));
        }
Example #9
0
        //called from actions links in the Action Bar using the GET verb
        public ActionResult Display(SimpleFilterViewModel simpleFilter)
        {
            CurrentFilter = simpleFilter;//save for sort

            //the following is a workaround for some flawed javascript that doesn't always pass the params we need
            if (String.IsNullOrEmpty(simpleFilter.Races))
            {
                var parms = HttpUtility.ParseQueryString(Request.UrlReferrer.Query);
                simpleFilter.Races = parms["RaceId"];
            }

            var viewModel = new RaceFilterViewModel(simpleFilter);

            return(DisplayResultsView(viewModel));
        }
Example #10
0
        /// <summary>
        /// Given the bike range, provide estimates for run
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public PartialViewResult DisplayBikeRun(SimpleFilterViewModel model)
        {
            model.runhightimevalue  = null; //clear the values that we want to ignore in this hypothetical (everything but bike)
            model.runlowtimevalue   = null;
            model.swimhightimevalue = null;
            model.swimlowtimevalue  = null;

            var filter = new RaceFilterViewModel(model);

            var modelView = GetEstimatedTime(filter);

            modelView.SelectedSplit = "BikeRun"; //this value gets used by the generic _finishHistogram
            modelView.Filter        = filter;

            return(PartialView("_GivenBikeRangeRun", modelView));
        }
Example #11
0
        // <summary>
        /// Given the run range, provide estimates.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public PartialViewResult DisplayRunFinish(SimpleFilterViewModel model)
        {
            model.bikehightimevalue = null; //clear the values that we want to ignore in this hypothetical (everything but run)
            model.bikelowtimevalue  = null;
            model.swimhightimevalue = null;
            model.swimlowtimevalue  = null;

            var filter = new RaceFilterViewModel(model);

            var modelView = GetEstimatedTime(filter);

            modelView.Filter        = filter;
            modelView.SelectedSplit = "RunFinish";//this value gets used by the generic _finishHistogram and also Hypotheth/Index to distinguish the Divs

            return(PartialView("_GivenRunRangeFinish", modelView));
        }
Example #12
0
        public ActionResult DisplayStats(FilterViewModel filterModel)
        {
            if (filterModel.selectedRaceIds == null)
            {
                return(new HttpNotFoundResult());
            }

            var simpleModel = SimpleFilterViewModel.Create(filterModel);

            if (filterModel.selectedRaceIds.Count() > 1)
            {
                return(RedirectToAction("ViewResults", "CompareRaces", simpleModel));
            }
            else
            {
                return(RedirectToAction("ViewResults", "TriStatsSummary", simpleModel));
            }
        }
        /// <summary>
        /// Called while paging through athletes. We need to return just the partial view of athletes
        /// </summary>
        /// <param name="page"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        //
        public PartialViewResult DisplayPagedAthletes(int page, SimpleFilterViewModel model)
        {
            var filter = new RaceFilterViewModel(model);

            page = page > 0 ? page : 1;
            int pageSize = 20;

            var athletes          = GetFilteredAthletes(GetAllAthletesForRaces(filter), filter);
            var onePageOfAthletes = athletes.ToPagedList(page, pageSize); //max xx per page


            var viewmodel = new TriathletesViewModel();

            viewmodel.TotalCount  = athletes.Count;
            viewmodel.Triathletes = onePageOfAthletes;
            viewmodel.Filter      = filter;

            return(PartialView("~/Views/Shared/_OnePageOfAthletesImproved.cshtml", viewmodel));
        }
        /// <summary>The setup tree view options.</summary>
        /// <param name="vm">The SimpleFilterViewModel.</param>
        /// <param name="model">The model.</param>
        public void SetupTreeViewOptions(SimpleFilterViewModel vm, ProcessEdit model)
        {
            if (model == null || vm == null || vm.SelectedMember == null)
            {
                return;
            }

            var propertyDefinition = (FieldPathPropertyDefinition)vm.SelectedMember.ItemPropertyDefinition;
            var columnType = propertyDefinition.ColumnType;

            if (columnType != ColumnTypes.TreeView || string.IsNullOrEmpty(propertyDefinition.ReferencedProcessSystemName))
            {
                return;
            }

            IsPublished = false;
            IsRefCrossRef = true;
            CrossRefDisplayFieldsList = propertyDefinition.ReferencedFieldSystemName;
            CrossRefFieldName = propertyDefinition.SystemName;
            RefCrossRefFieldName = propertyDefinition.LinkFieldSystemName;
            CrossRefAllowMultiple = propertyDefinition.AllowMultiple;
            CrossRefProcessName = propertyDefinition.ReferencedProcessSystemName;
        }
        /// <summary>The setup cross ref options. Called from Process Builder.</summary>
        /// <param name="vm">The SimpleFilterViewModel.</param>
        /// <param name="model">The model.</param>
        public void SetupCrossRefOptions(SimpleFilterViewModel vm, ProcessEdit model)
        {
            if (vm == null || model == null || vm.SelectedMember == null)
            {
                return;
            }

            var propertyDefinition = (FieldPathPropertyDefinition)vm.SelectedMember.ItemPropertyDefinition;
            if (propertyDefinition.ColumnType != ColumnTypes.Reference && propertyDefinition.ColumnType != ColumnTypes.MultiReference)
            {
                return;
            }

            IsPublished = false;

            if (propertyDefinition.PropertyName == Constants.CurrentStateGuidColumnName)
            {
                var states = new CustomInfoList();
                states.AddRange(
                    model.StateList.OrderBy(s => s.Name).Select(state => new StateInfoClass { Id = state.Id, Name = state.Name, Guid = state.Guid }));

                FilteringProcessSystemName = null;
                CrossRefDisplayFieldsList = Constants.Name;
                CrossRefItems = states;
                CrossRefProcessName = Constants.StateProcessName;
                CrossRefAllowMultiple = false;

                return;
            }

            CrossRefFieldName = propertyDefinition.SystemName;
            CrossRefDisplayFieldsList = propertyDefinition.ReferencedFieldSystemName;
            CrossRefAllowMultiple = propertyDefinition.AllowMultiple;
            CrossRefProcessName = propertyDefinition.ReferencedProcessSystemName;
        }
        /// <summary>The setup cross ref options. Called from Search List.</summary>
        /// <param name="vm">The SimpleFilterViewModel.</param>
        /// <param name="processSystemName">The process system name.</param>
        public void SetupCrossRefOptions(SimpleFilterViewModel vm, string processSystemName)
        {
            if (vm == null || vm.SelectedMember == null)
            {
                return;
            }

            var propertyDefinition = (FieldPathPropertyDefinition)vm.SelectedMember.ItemPropertyDefinition;
            if (propertyDefinition.ColumnType != ColumnTypes.Reference && propertyDefinition.ColumnType != ColumnTypes.MultiReference)
            {
                return;
            }

            IsPublished = true;
            CrossRefFieldName = propertyDefinition.SystemName;
            CrossRefDisplayFieldsList = propertyDefinition.ReferencedFieldSystemName;
            CrossRefAllowMultiple = propertyDefinition.AllowMultiple;
            CrossRefProcessName = propertyDefinition.ReferencedProcessSystemName;
        }
        /// <summary>
        /// The clean up.
        /// </summary>
        public void CleanUp()
        {
            filter = null;
            IsStaticValue = true;
            this.IsUdp = false;
            IsSystemVariable = false;
            IsProcessField = false;

            UserDefinedCaption = null;
            DefaultValue = null;
            Value.ProvidedValue = DefaultValue;
            SelectedProcessField = null;
            SelectedSystemVariable = null;
            SelectedSystemParameters = null;

            CrossRefProcessName = null;
            CrossRefFieldName = null;
            CrossRefDisplayFieldsList = null;
            CrossRefAllowMultiple = false;
            CrossRefItems = null;
            RefCrossRefFieldName = null;
            IsRefCrossRef = false;

            FilteringProcessSystemName = null;

            ShowProcessFields = false;
            ShowUdPs = false;
            ShowSystemParameters = true;
        }
        //called from actions links in the Action Bar
        public ActionResult DisplayPacing(SimpleFilterViewModel model)
        {
            var filter = new RaceFilterViewModel(model);

            return(DisplayResultsView(filter, "Pacing"));
        }
        //called from actions links in the Action Bar
        public ActionResult DisplayQuartiles(SimpleFilterViewModel model)
        {
            var filter = new RaceFilterViewModel(model);

            return(DisplayResultsView(filter, "Quartiles"));
        }
Example #20
0
        /// <summary>
        /// Executes the filter options.
        /// </summary>
        /// <param name="o">The o.</param>
        private void ExecuteFilterOptions(SimpleFilterViewModel o)
        {
            if (o.SelectedMember == null)
            {
                return;
            }

            var propertyDefinition = (FieldPathPropertyDefinition)o.SelectedMember.ItemPropertyDefinition;
            var filteringProcessSystemName = propertyDefinition.DeclaringProcessSystemName;

            FilterOptionsVM.Value.CleanUp();
            FilterOptionsVM.Value.ShowUdPs = true;
            FilterOptionsVM.Value.ShowSystemParameters = o.MemberType != typeof(ApprovalStates)
                                                         && (propertyDefinition.SystemName != Constants.CurrentStateColumnName);
            FilterOptionsVM.Value.Filter = o;
            FilterOptionsVM.Value.FilteringProcessSystemName = filteringProcessSystemName;
            FilterOptionsVM.Value.SetupCrossRefOptions(o, ProcessSystemName);
            FilterOptionsVM.Value.SetupReverseCrossRefOptions(o, ProcessSystemName);
            FilterOptionsVM.Value.SetupTreeViewOptions(o, ProcessSystemName);

            ThePopupFactory.Value.Popup()
                .SetCustomViewModel(FilterOptionsVM.Value)
                .SetIsModal(true)
                .SetIsChild(true)
                .SetCaption("Filter Options")
                .SetPosition(PopupPosition.Center)
                .Show(() =>
                {
                    if (FilterOptionsVM.Value.IsStaticValue)
                    {
                        DynamicDataFilterBehavior.SetSystemValue(o.Descriptor, null);
                        o.TriggerChange();
                    }
                    else if (FilterOptionsVM.Value.IsUdp)
                    {
                        var val = FilterValue.CreateUdp(FilterOptionsVM.Value.UserDefinedCaption, o.Member, FilterOptionsVM.Value.DefaultValue);
                        DynamicDataFilterBehavior.SetSystemValue(o.Descriptor, val);
                        o.TriggerChange();
                    }
                    else if (FilterOptionsVM.Value.IsSystemVariable)
                    {
                        var val = FilterValue.CreateSystemVariable(FilterOptionsVM.Value.SelectedSystemVariable.Caption, FilterOptionsVM.Value.SelectedSystemVariable.Value);
                        DynamicDataFilterBehavior.SetSystemValue(o.Descriptor, val);
                        o.TriggerChange();
                        
                        //o.Value = val.ToString();
                        //if (!(o.MemberType == typeof(IInfoClass) && !(val is IInfoClass)))
                        //{
                        //    o.Value = val.ToString();
                        //}
                    }
                });
        }