< Summary

Information
Class: MRA.DTO.ViewModels.Art.FilterResults
Assembly: MRA.DTO
File(s): D:\a\MiguelRomerART\MiguelRomerART\MRA.DTO\ViewModels\Art\FilterResults.cs
Line coverage
64%
Covered lines: 27
Uncovered lines: 15
Coverable lines: 42
Total lines: 61
Line coverage: 64.2%
Branch coverage
25%
Covered branches: 2
Total branches: 8
Branch coverage: 25%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

D:\a\MiguelRomerART\MiguelRomerART\MRA.DTO\ViewModels\Art\FilterResults.cs

#LineLine coverage
 1using Microsoft.Azure.Cosmos.Serialization.HybridRow;
 2using MRA.DTO.Models;
 3using System.Text.Json.Serialization;
 4
 5namespace MRA.DTO.ViewModels.Art
 6{
 7    public class FilterResults
 8    {
 9        [JsonIgnore]
 3110        public IEnumerable<DrawingModel> TotalDrawings { get; set; }
 6211        public IEnumerable<DrawingModel> FilteredDrawings { get; set; }
 012        public int FetchedCount { get { return (FilteredDrawings != null ? FilteredDrawings.Count() : 0); } }
 013        public int TotalCount { get { return TotalDrawings.Count(); } }
 014        public int TotalTime { get { return TotalDrawings.Sum(x => x.Time); } }
 015        public bool MoreToFetch { get { return FetchedCount < TotalCount; } }
 16
 3117        public IEnumerable<string> FilteredDrawingCharacters { get; set; }
 018        public int NDrawingCharacters { get { return FilteredDrawingCharacters.Count(); } }
 3119        public IEnumerable<string> FilteredDrawingModels { get; set; }
 020        public int NDrawingModels { get { return FilteredDrawingModels.Count(); } }
 3121        public IEnumerable<int> FilteredDrawingStyles { get; set; }
 022        public int NDrawingTypes { get { return FilteredDrawingStyles.Count(); } }
 3123        public IEnumerable<int> FilteredDrawingProductTypes { get; set; }
 024        public int NDrawingProductTypes { get { return FilteredDrawingProductTypes.Count(); } }
 3125        public IEnumerable<string> FilteredDrawingProducts { get; set; }
 026        public int NDrawingProducts { get { return FilteredDrawingProducts.Count(); } }
 3127        public IEnumerable<int> FilteredDrawingSoftwares { get; set; }
 028        public int NDrawingSoftwares { get { return FilteredDrawingSoftwares.Count(); } }
 3129        public IEnumerable<int> FilteredDrawingPapers { get; set; }
 030        public int NDrawingPapers { get { return FilteredDrawingPapers.Count(); } }
 3131        public int NDrawingFavorites { get; set; }
 3132        public IEnumerable<string> FilteredCollections { get; set; }
 033        public int NDrawingCollections { get { return FilteredCollections.Count(); } }
 34
 35
 3136        public FilterResults(IEnumerable<DrawingModel> drawings, IEnumerable<CollectionModel> collections, DrawingFilter
 37        {
 3138            TotalDrawings = drawings;
 3139            FilteredDrawingCharacters = drawings.Select(x => x.Name).Distinct().Where(x => !string.IsNullOrEmpty(x));
 3140            FilteredDrawingModels = drawings.Select(x => x.ModelName).Distinct().Where(x => !string.IsNullOrEmpty(x));
 3141            FilteredDrawingStyles = drawings.Select(x => (int) x.Type).Distinct();
 3142            FilteredDrawingProductTypes = drawings.Select(x => (int) x.ProductType).Distinct();
 3143            FilteredDrawingProducts = drawings.Select(x => x.ProductName).Distinct().Where(x => !string.IsNullOrEmpty(x)
 3144            FilteredDrawingSoftwares = drawings.Select(x => (int) x.Software).Distinct().Where(x => x > 0);
 3145            FilteredDrawingPapers = drawings.Select(x => (int) x.Paper).Distinct().Where(x => x > 0);
 9646            NDrawingFavorites = drawings.Count(x => x.Favorite);
 47
 9648            var ids = drawings.Select(x => x.Id).ToList();
 3149            FilteredCollections = collections
 050                .Where(c => c.Drawings.Any(d => ids.Contains(d.Id)))
 3151                .Select(x => x.Id);
 52
 3153            FilteredDrawings = drawings;
 3154            if (filter.PageSize > 0 && filter.PageNumber > 0)
 55            {
 056                FilteredDrawings = drawings.Skip((filter.PageNumber - 1) * filter.PageSize)
 057                    .Take(filter.PageSize);
 58            }
 3159        }
 60    }
 61}