public async Task <IActionResult> AddFollower(int cityId)
        {
            var follower = await _cityParticipantsService.AddFollowerAsync(cityId, await _userManager.GetUserAsync(User));

            _logger.LogInformation($"User {{{follower.UserId}}} became a follower of city {{{cityId}}}.");

            return(Ok(follower));
        }
        public async Task AddFollowerAsync_ReturnsCityMembersDTO()
        {
            //Arrange
            _repoWrapper
            .Setup(x => x.CityMembers.GetFirstOrDefaultAsync(It.IsAny <Expression <Func <DataAccess.Entities.CityMembers, bool> > >(),
                                                             It.IsAny <Func <IQueryable <DataAccess.Entities.CityMembers>, IIncludableQueryable <DataAccess.Entities.CityMembers, object> > >()))
            .ReturnsAsync(new CityMembers());
            _repoWrapper
            .Setup(x => x.CityMembers.Delete(It.IsAny <CityMembers>()));
            _repoWrapper
            .Setup(x => x.SaveAsync());
            _repoWrapper
            .Setup(x => x.CityAdministration.GetAllAsync(It.IsAny <Expression <Func <CityAdministration, bool> > >(),
                                                         It.IsAny <Func <IQueryable <CityAdministration>, IIncludableQueryable <CityAdministration, object> > >()))
            .ReturnsAsync(GetCityAdministration());
            _repoWrapper
            .Setup(x => x.CityAdministration.GetFirstOrDefaultAsync(It.IsAny <Expression <Func <CityAdministration, bool> > >(),
                                                                    It.IsAny <Func <IQueryable <CityAdministration>, IIncludableQueryable <CityAdministration, object> > >()))
            .ReturnsAsync(new CityAdministration()
            {
                AdminTypeId = 2
            });
            _repoWrapper
            .Setup(x => x.CityAdministration.GetFirstOrDefaultAsync(It.IsAny <Expression <Func <CityAdministration, bool> > >(),
                                                                    It.IsAny <Func <IQueryable <CityAdministration>, IIncludableQueryable <CityAdministration, object> > >()))
            .ReturnsAsync(new CityAdministration()
            {
                AdminTypeId = 76
            });
            _adminTypeService
            .Setup(x => x.GetAdminTypeByIdAsync(It.IsAny <int>())).ReturnsAsync(new AdminTypeDTO()
            {
                AdminTypeName = Roles.CityHead
            });
            _repoWrapper
            .Setup(x => x.CityAdministration.Update(new CityAdministration()));
            _userManager
            .Setup(x => x.FindByIdAsync(It.IsAny <string>())).ReturnsAsync(new User());
            _repoWrapper
            .Setup(x => x.CityMembers.CreateAsync(It.IsAny <CityMembers>()));
            _repoWrapper
            .Setup(x => x.SaveAsync());
            _mapper
            .Setup(x => x.Map <CityMembers, CityMembersDTO>(It.IsAny <CityMembers>())).Returns(new CityMembersDTO());
            _userManager
            .Setup(x => x.IsInRoleAsync(It.IsAny <User>(), It.IsAny <string>()))
            .ReturnsAsync(true);
            _emailContentService
            .Setup(x => x.GetCityAdminAboutNewFollowerEmailAsync(It.IsAny <string>(), It.IsAny <string>(),
                                                                 It.IsAny <string>(), It.IsAny <bool>()))
            .ReturnsAsync(new EmailModel());

            // Act
            var result = await _cityParticipantsService.AddFollowerAsync(It.IsAny <int>(), It.IsAny <string>());

            // Assert
            Assert.IsInstanceOf <CityMembersDTO>(result);
        }