public async Task <IActionResult> Registration([FromBody] Registration regInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            User user = new User(regInfo.Email, regInfo.FullName);

            var result = await _userManager.CreateAsync(user, regInfo.Password);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("Error", "Создание пользователя не удалось. Обратитесь в техподдержку.");
                return(BadRequest(ModelState));
            }
            string role = StandartIdentityDataConstants.USER_ROLE;
            await _userManager.AddToRoleAsync(user, role);

            var userFromDB = _userManager.Users.Single(u => u.UserName == regInfo.Email);
            var userToken  = AccountControllerHelper.GenerateJwtToken(userFromDB, role);

            //отбор роутов для данной роли
            var allRoutes = await AccountControllerHelper.GetRoutesForRole(role, _routeRepository);

            //получение пунктов меню для пользователя
            var menuElemsForRole = _menuRepository.GetMenuElementsForRole(role);

            var expireTime = Math.Round(DateTime.Now.ToUniversalTime().AddHours(AuthOptions.LIFETIME).Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds);

            return(Ok(
                       new
            {
                name = userFromDB.UserName,
                token = userToken.token,
                expireTimeToken = expireTime,
                role = new
                {
                    name = StandartIdentityDataConstants.USER_ROLE,
                    headerMenuElements = menuElemsForRole,
                    routes = allRoutes
                }
            }));
        }
        public async Task EnsureUserRoleMenuElements()
        {
            var MenuForRoles = StandartIdentityDataConstants.MenuForRoles;

            foreach (var menu in MenuForRoles)
            {
                var role = await _roleManager.FindByNameAsync(menu.Role);

                var countElemsForRole = _menuElementRepository.GetMenuElementsForRole(role.Name).Count;
                if (countElemsForRole == 0 || countElemsForRole < menu.MenuElements.Count)
                {
                    _menuElementRepository.ClearRelationsBetweenRoleAndMenuElems(role.Id);
                    await _menuElementRepository.SetMenuElementsForRole(role.Id, menu.MenuElements);
                }
            }
        }