/// <inheritdoc />
        public async Task <GoverningBodyAdministrationDTO> AddGoverningBodyAdministratorAsync(GoverningBodyAdministrationDTO governingBodyAdministrationDto)
        {
            var adminType = await _adminTypeService.GetAdminTypeByNameAsync(governingBodyAdministrationDto.AdminType.AdminTypeName);

            governingBodyAdministrationDto.Status = DateTime.Now < governingBodyAdministrationDto.EndDate || governingBodyAdministrationDto.EndDate == null;
            var governingBodyAdministration = new GoverningBodyAdministration
            {
                StartDate       = governingBodyAdministrationDto.StartDate ?? DateTime.Now,
                EndDate         = governingBodyAdministrationDto.EndDate,
                AdminTypeId     = adminType.ID,
                GoverningBodyId = governingBodyAdministrationDto.GoverningBodyId,
                UserId          = governingBodyAdministrationDto.UserId,
                Status          = governingBodyAdministrationDto.Status
            };

            var user = await _userManager.FindByIdAsync(governingBodyAdministrationDto.UserId);

            var role = adminType.AdminTypeName == Roles.GoverningBodyHead ? Roles.GoverningBodyHead : Roles.GoverningBodySecretary;
            await _userManager.AddToRoleAsync(user, role);

            await CheckGoverningBodyHasAdmin(governingBodyAdministrationDto.GoverningBodyId, adminType.AdminTypeName);

            await _repositoryWrapper.GoverningBodyAdministration.CreateAsync(governingBodyAdministration);

            await _repositoryWrapper.SaveAsync();

            governingBodyAdministrationDto.ID = governingBodyAdministration.Id;

            return(governingBodyAdministrationDto);
        }
Exemplo n.º 2
0
        /// <inheritdoc />
        public async Task <CityAdministrationDTO> AddAdministratorAsync(CityAdministrationDTO adminDTO)
        {
            var adminType = await _adminTypeService.GetAdminTypeByNameAsync(adminDTO.AdminType.AdminTypeName);

            var admin = new CityAdministration()
            {
                StartDate   = adminDTO.StartDate ?? DateTime.Now,
                EndDate     = adminDTO.EndDate,
                AdminTypeId = adminType.ID,
                CityId      = adminDTO.CityId,
                UserId      = adminDTO.UserId
            };

            var user = await _userManager.FindByIdAsync(adminDTO.UserId);

            var role = adminType.AdminTypeName == "Голова Станиці" ? "Голова Станиці" : "Діловод Станиці";
            await _userManager.AddToRoleAsync(user, role);

            _repositoryWrapper.CityAdministration.Attach(admin);
            await _repositoryWrapper.CityAdministration.CreateAsync(admin);

            await _repositoryWrapper.SaveAsync();

            return(adminDTO);
        }
        /// <inheritdoc />
        public async Task <ClubAdministrationDTO> AddAdministratorAsync(ClubAdministrationDTO adminDTO)
        {
            var adminType = await _adminTypeService.GetAdminTypeByNameAsync(adminDTO.AdminType.AdminTypeName);

            adminDTO.Status = DateTime.Now < adminDTO.EndDate || adminDTO.EndDate == null;
            var admin = new ClubAdministration()
            {
                StartDate   = adminDTO.StartDate ?? DateTime.Now,
                EndDate     = adminDTO.EndDate,
                AdminTypeId = adminType.ID,
                ClubId      = adminDTO.ClubId,
                UserId      = adminDTO.UserId,
                Status      = adminDTO.Status
            };

            var user = await _userManager.FindByIdAsync(adminDTO.UserId);

            string role;

            switch (adminType.AdminTypeName)
            {
            case Roles.KurinHead:
                role = Roles.KurinHead;
                break;

            case Roles.KurinHeadDeputy:
                role = Roles.KurinHeadDeputy;
                break;

            default:
                role = Roles.KurinSecretary;
                break;
            }
            try
            {
                await _userManager.AddToRoleAsync(user, role);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                ExceptionDispatchInfo.Capture(e).Throw();
            }

            await CheckClubHasAdmin(adminDTO.ClubId, adminType.AdminTypeName);

            await _repositoryWrapper.ClubAdministration.CreateAsync(admin);

            await _repositoryWrapper.SaveAsync();

            adminDTO.ID = admin.ID;

            return(adminDTO);
        }
Exemplo n.º 4
0
        public async Task<RegionAdministrationDTO> AddAdministratorAsync(RegionAdministrationDTO adminDTO)
        {
            var adminType = await _adminTypeService.GetAdminTypeByNameAsync(adminDTO.AdminType.AdminTypeName);
            adminDTO.AdminTypeId = adminType.ID;

            var admin = _mapper.Map<RegionAdministrationDTO, RegionAdministration>(adminDTO);
            
            await _repositoryWrapper.RegionAdministration.CreateAsync(admin);
            await _repositoryWrapper.SaveAsync();

            return adminDTO;
        }
        /// <inheritdoc />
        public async Task <CityAdministrationDTO> AddAdministratorAsync(CityAdministrationDTO adminDTO)
        {
            var adminType = await _adminTypeService.GetAdminTypeByNameAsync(adminDTO.AdminType.AdminTypeName);

            adminDTO.Status = DateTime.Now < adminDTO.EndDate || adminDTO.EndDate == null;
            var admin = new CityAdministration()
            {
                StartDate   = adminDTO.StartDate ?? DateTime.Now,
                EndDate     = adminDTO.EndDate,
                AdminTypeId = adminType.ID,
                CityId      = adminDTO.CityId,
                UserId      = adminDTO.UserId,
                Status      = adminDTO.Status
            };

            var user = await _userManager.FindByIdAsync(adminDTO.UserId);

            string role;

            switch (adminType.AdminTypeName)
            {
            case Roles.CityHead:
                role = Roles.CityHead;
                break;

            case Roles.CityHeadDeputy:
                role = Roles.CityHeadDeputy;
                break;

            default:
                role = Roles.CitySecretary;
                break;
            }
            await _userManager.AddToRoleAsync(user, role);

            await CheckCityHasAdmin(adminDTO.CityId, adminType.AdminTypeName);

            await _repositoryWrapper.CityAdministration.CreateAsync(admin);

            await _repositoryWrapper.SaveAsync();

            adminDTO.ID = admin.ID;

            return(adminDTO);
        }
        /// <inheritdoc />
        public async Task <ClubAdministrationDTO> AddAdministratorAsync(ClubAdministrationDTO adminDTO)
        {
            var adminType = await _adminTypeService.GetAdminTypeByNameAsync(adminDTO.AdminType.AdminTypeName);

            var admin = new ClubAdministration()
            {
                StartDate   = adminDTO.StartDate ?? DateTime.Now,
                EndDate     = adminDTO.EndDate,
                AdminTypeId = adminType.ID,
                ClubId      = adminDTO.ClubId,
                UserId      = adminDTO.UserId
            };

            var user = await _userManager.FindByIdAsync(adminDTO.UserId);

            var role = adminType.AdminTypeName == "Голова Куреня" ? "Голова Куреня" : "Діловод Куреня";

            try
            {
                await _userManager.AddToRoleAsync(user, role);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw e;
            }

            if (role == "Голова Куреня")
            {
                await CheckClubHasHead(adminDTO.ClubId);
            }

            await _repositoryWrapper.ClubAdministration.CreateAsync(admin);

            await _repositoryWrapper.SaveAsync();

            adminDTO.ID = admin.ID;

            return(adminDTO);
        }
Exemplo n.º 7
0
        /// <inheritdoc />
        public async Task <ClubAdministrationDTO> AddClubAdminAsync(ClubAdministrationDTO createdAdmin)
        {
            var adminType = await _adminTypeService.GetAdminTypeByNameAsync(createdAdmin.AdminTypeName);

            createdAdmin.AdminTypeId = adminType.ID;

            ClubAdministration newClubAdmin = _mapper.Map <ClubAdministrationDTO, ClubAdministration>(createdAdmin);
            await _repoWrapper.ClubAdministration.CreateAsync(newClubAdmin);

            await _repoWrapper.SaveAsync();

            return(_mapper.Map <ClubAdministration, ClubAdministrationDTO>(newClubAdmin));
        }
Exemplo n.º 8
0
        public async Task GetAdminTypeByNameAsyncTest()
        {
            //Arrange
            _repoWrapper.Setup(s => s.AdminType.GetFirstOrDefaultAsync(It.IsAny <Expression <Func <AdminType, bool> > >(),
                                                                       It.IsAny <Func <IQueryable <AdminType>, IIncludableQueryable <AdminType, object> > >()))
            .ReturnsAsync(new AdminType());
            _mapper
            .Setup(s => s.Map <AdminType, AdminTypeDTO>(It.IsAny <AdminType>()))
            .Returns(new AdminTypeDTO());

            //Act
            var result = await _adminTypeService.GetAdminTypeByNameAsync(It.IsAny <string>());

            //Assert
            Assert.NotNull(result);
            Assert.IsType <AdminTypeDTO>(result);
        }