Example #1
0
        public async Task OnGetAsync()
        {
            FeatureCategories = new List <FeatureCategoryViewModel>();

            Users = await DataContext.AppUsers.ToListAsync();

            BaseScoreModifiers = await DataContext.HomeReviewBaseScoreModifiers.ToListAsync();

            foreach (var category in DataContext.HomeReviewFeatureCategories.Include(r => r.Features).OrderBy(r => r.SortOrder))
            {
                var categoryViewModel = new FeatureCategoryViewModel {
                    Id       = category.Id,
                    Title    = category.Title,
                    Features = new List <FeatureViewModel>()
                };

                FeatureCategories.Add(categoryViewModel);

                foreach (var detail in category.Features.OrderBy(r => r.SortOrder))
                {
                    var detailViewModel = new FeatureViewModel {
                        Id      = detail.Id,
                        Title   = detail.Title,
                        Weights = new List <FeatureWeightViewModel>()
                    };

                    categoryViewModel.Features.Add(detailViewModel);
                }
            }
        }
Example #2
0
        public async Task <IActionResult> OnGetAsync(string id)
        {
            if (id?.Length > 0)
            {
                AppUser = await DataContext.AppUsers.FindAsync(id);

                if (AppUser is null)
                {
                    return(NotFound());
                }
            }
            else
            {
                AppUser = await AppUsers.Get(User);
            }

            FeatureCategories = new List <FeatureCategoryViewModel>();

            foreach (var featureCategory in DataContext.HomeReviewFeatureCategories.Include(r => r.Features).ThenInclude(r => r.FeatureChoices).OrderBy(r => r.SortOrder))
            {
                var featureCategoryViewModel = new FeatureCategoryViewModel {
                    Title    = featureCategory.Title,
                    Features = new List <FeatureViewModel>()
                };

                FeatureCategories.Add(featureCategoryViewModel);

                foreach (var feature in featureCategory.Features.OrderBy(r => r.SortOrder))
                {
                    var featureUserWeight = await DataContext.HomeReviewUserWeights.FirstOrDefaultAsync(r => r.UserId == AppUser.Id && r.FeatureId == feature.Id);

                    var featureViewModel = new FeatureViewModel {
                        Title          = feature.Title,
                        FeatureId      = feature.Id,
                        Value          = featureUserWeight?.Weight,
                        FeatureChoices = new List <FeatureChoiceViewModel>()
                    };

                    featureCategoryViewModel.Features.Add(featureViewModel);

                    var choices = await DataContext.HomeReviewFeatureChoices.Where(r => r.FeatureId == feature.Id).OrderBy(o => o.SortOrder).ToListAsync();

                    foreach (var choice in choices)
                    {
                        var featureChoiceUserWeight = await DataContext.HomeReviewUserWeights.FirstOrDefaultAsync(r => r.UserId == AppUser.Id && r.FeatureChoiceId == choice.Id);

                        var featureChoiceViewModel = new FeatureChoiceViewModel {
                            Title           = choice.Title,
                            FeatureChoiceId = choice.Id,
                            Value           = featureChoiceUserWeight?.Weight
                        };

                        featureViewModel.FeatureChoices.Add(featureChoiceViewModel);
                    }
                }
            }

            return(Page());
        }