< Summary

Information
Class: Services.FiltersServices.DataFilterManagers.UserFilterManager
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/FiltersServices/DataFilterManagers/UserFilterManager.cs
Line coverage
100%
Covered lines: 18
Uncovered lines: 0
Coverable lines: 18
Total lines: 58
Line coverage: 100%
Branch coverage
100%
Covered branches: 8
Total branches: 8
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
FilterByFilterData()100%66100%
FilterByRadioButton(...)100%11100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/FiltersServices/DataFilterManagers/UserFilterManager.cs

#LineLine coverage
 1using Microsoft.AspNetCore.Identity;
 2using OzonDomains.Models;
 3using OzonRepositories.Context.Identity;
 4using Services.FiltersServices.FilterModels;
 5using System;
 6using System.Collections.Generic;
 7using System.Linq;
 8using System.Text;
 9using System.Threading.Tasks;
 10
 11namespace Services.FiltersServices.DataFilterManagers
 12{
 13    public class UserFilterManager : IFilterManagerAsync<CustomIdentityUser, UserFilterModel>
 14    {
 15        private readonly DataFilter<CustomIdentityUser> _filter;
 16        private readonly UserManager<CustomIdentityUser> _userManager;
 17
 4718        public UserFilterManager(DataFilter<CustomIdentityUser> filter, UserManager<CustomIdentityUser> userManager)
 19        {
 4720            _filter = filter;
 4721            _userManager = userManager;
 4722        }
 23
 24        public async Task<List<CustomIdentityUser>> FilterByFilterData(List<CustomIdentityUser> users, UserFilterModel f
 25        {
 26            // Фильтрация по имени пользователя
 13127            users = _filter.FilterByString(users, u => u.UserName, filterData.UserName).ToList();
 28
 29            // Фильтрация по доступу пользователя
 9630            users = _filter.FilterByString(users, u => u.AccessProfile != null ? u.AccessProfile.Name : "", filterData.A
 31
 32            // Фильтрация по роли пользователя
 4133            if (!string.IsNullOrEmpty(filterData.UserRole))
 34            {
 935                var filteredUsers = new List<CustomIdentityUser>();
 36
 6837                foreach (var user in users)
 38                {
 2539                    var roles = await _userManager.GetRolesAsync(user);
 2540                    if (roles.Contains(filterData.UserRole))
 41                    {
 942                        filteredUsers.Add(user);
 43                    }
 2544                }
 45
 946                users = filteredUsers;
 947            }
 48
 4149            return users;
 4150        }
 51
 52
 53        public Task<List<CustomIdentityUser>> FilterByRadioButton(List<CustomIdentityUser> filterModel, string buttonSta
 54        {
 655            throw new NotImplementedException();
 56        }
 57    }
 58}