Exemplo n.º 1
0
        /// <inheritdoc />
        public async Task <CityAdministrationDTO> EditAdministratorAsync(CityAdministrationDTO adminDTO)
        {
            var user = await _userManager.FindByIdAsync(adminDTO.UserId);

            var adminType = await _adminTypeService.GetAdminTypeByIdAsync(adminDTO.AdminTypeId);

            var role = adminType.AdminTypeName == "Голова Станиці" ? "Голова Станиці" : "Діловод Станиці";

            if (adminType.AdminTypeName != adminDTO.AdminType.AdminTypeName)
            {
                await _userManager.RemoveFromRoleAsync(user, role);
            }

            adminType = await _adminTypeService.GetAdminTypeByNameAsync(adminDTO.AdminType.AdminTypeName);

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

            var admin = await _repositoryWrapper.CityAdministration.GetFirstOrDefaultAsync(a => a.ID == adminDTO.ID);

            admin.StartDate   = adminDTO.StartDate ?? DateTime.Now;
            admin.EndDate     = adminDTO.EndDate;
            admin.AdminTypeId = adminType.ID;
            admin.AdminType   = _mapper.Map <AdminTypeDTO, AdminType>(adminType);

            _repositoryWrapper.CityAdministration.Attach(admin);
            _repositoryWrapper.CityAdministration.Update(admin);
            await _repositoryWrapper.SaveAsync();

            return(adminDTO);
        }
Exemplo n.º 2
0
        public async Task AddRegionAdministrator(RegionAdministrationDTO regionAdministrationDTO)
        {
            var adminType = await _adminTypeService.GetAdminTypeByIdAsync(regionAdministrationDTO.AdminTypeId);

            var newRegionAdmin = new RegionAdministration()
            {
                StartDate   = regionAdministrationDTO.StartDate ?? DateTime.Now,
                EndDate     = regionAdministrationDTO.EndDate,
                AdminTypeId = adminType.ID,
                RegionId    = regionAdministrationDTO.RegionId,
                UserId      = regionAdministrationDTO.UserId
            };

            var oldAdmin = await _repoWrapper.RegionAdministration.
                           GetFirstOrDefaultAsync(d => d.AdminTypeId == newRegionAdmin.AdminTypeId &&
                                                  d.RegionId == newRegionAdmin.RegionId && d.Status);

            var newUser = await _userManager.FindByIdAsync(newRegionAdmin.UserId);

            var role = adminType.AdminTypeName == "Голова Округу" ? "Голова Округу" : "Діловод Округу";
            await _userManager.AddToRoleAsync(newUser, role);

            if (oldAdmin != null)
            {
                if (DateTime.Now < newRegionAdmin.EndDate || newRegionAdmin.EndDate == null)
                {
                    newRegionAdmin.Status = true;
                    oldAdmin.Status       = false;
                    oldAdmin.EndDate      = DateTime.Now;
                }
                else
                {
                    newRegionAdmin.Status = false;
                }
                var oldUser = await _userManager.FindByIdAsync(oldAdmin.UserId);

                await _userManager.RemoveFromRoleAsync(oldUser, role);

                _repoWrapper.RegionAdministration.Update(oldAdmin);
                await _repoWrapper.SaveAsync();

                await _repoWrapper.RegionAdministration.CreateAsync(newRegionAdmin);

                await _repoWrapper.SaveAsync();
            }
            else
            {
                newRegionAdmin.Status = true;
                await _repoWrapper.SaveAsync();

                await _repoWrapper.RegionAdministration.CreateAsync(newRegionAdmin);

                await _repoWrapper.SaveAsync();
            }
        }
        /// <inheritdoc />
        public async Task RemoveAdministratorAsync(int adminId)
        {
            var admin = await _repositoryWrapper.CityAdministration.GetFirstOrDefaultAsync(u => u.ID == adminId);

            admin.EndDate = DateTime.Now;
            admin.Status  = false;

            var adminType = await _adminTypeService.GetAdminTypeByIdAsync(admin.AdminTypeId);

            var user = await _userManager.FindByIdAsync(admin.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.RemoveFromRoleAsync(user, role);

            _repositoryWrapper.CityAdministration.Update(admin);
            await _repositoryWrapper.SaveAsync();
        }
Exemplo n.º 4
0
        /// <inheritdoc />
        public async Task RemoveAdministratorAsync(int adminId)
        {
            var admin = await _repositoryWrapper.ClubAdministration.GetFirstOrDefaultAsync(u => u.ID == adminId);

            admin.EndDate = DateTime.Now;

            var adminType = await _adminTypeService.GetAdminTypeByIdAsync(admin.AdminTypeId);

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

            var role = adminType.AdminTypeName == "Голова Куреня" ? "Голова Куреня" : "Діловод Куреня";
            await _userManager.RemoveFromRoleAsync(user, role);

            _repositoryWrapper.ClubAdministration.Update(admin);
            await _repositoryWrapper.SaveAsync();
        }
        /// <inheritdoc />
        public async Task RemoveAdministratorAsync(int adminId)
        {
            var admin = await _repositoryWrapper.GoverningBodyAdministration.GetFirstOrDefaultAsync(u => u.Id == adminId);

            admin.EndDate = DateTime.Now;
            admin.Status  = false;

            var adminType = await _adminTypeService.GetAdminTypeByIdAsync(admin.AdminTypeId);

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

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

            _repositoryWrapper.GoverningBodyAdministration.Update(admin);
            await _repositoryWrapper.SaveAsync();
        }
Exemplo n.º 6
0
        public async Task AddRegionAdministrator(RegionAdministrationDTO regionAdministrationDTO)
        {
            var adminType = await _adminTypeService.GetAdminTypeByIdAsync(regionAdministrationDTO.AdminTypeId);

            var newRegionAdmin = new RegionAdministration()
            {
                StartDate   = regionAdministrationDTO.StartDate ?? DateTime.Now,
                EndDate     = regionAdministrationDTO.EndDate,
                AdminTypeId = adminType.ID,
                RegionId    = regionAdministrationDTO.RegionId,
                UserId      = regionAdministrationDTO.UserId
            };

            var oldAdmin = await _repoWrapper.RegionAdministration.
                           GetFirstOrDefaultAsync(d => d.AdminTypeId == newRegionAdmin.AdminTypeId &&
                                                  d.RegionId == newRegionAdmin.RegionId && d.Status);

            var newUser = await _userManager.FindByIdAsync(newRegionAdmin.UserId);

            string role;

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

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

            default:
                role = Roles.OkrugaSecretary;
                break;
            }
            await _userManager.AddToRoleAsync(newUser, role);

            if (oldAdmin != null)
            {
                if (DateTime.Now < newRegionAdmin.EndDate || newRegionAdmin.EndDate == null)
                {
                    newRegionAdmin.Status = true;
                    oldAdmin.Status       = false;
                    oldAdmin.EndDate      = DateTime.Now;
                }
                else
                {
                    newRegionAdmin.Status = false;
                }
                var oldUser = await _userManager.FindByIdAsync(oldAdmin.UserId);

                await _userManager.RemoveFromRoleAsync(oldUser, role);

                _repoWrapper.RegionAdministration.Update(oldAdmin);
                await _repoWrapper.SaveAsync();

                await _repoWrapper.RegionAdministration.CreateAsync(newRegionAdmin);

                await _repoWrapper.SaveAsync();
            }
            else
            {
                newRegionAdmin.Status = DateTime.Now < newRegionAdmin.EndDate || newRegionAdmin.EndDate == null;
                await _repoWrapper.SaveAsync();

                await _repoWrapper.RegionAdministration.CreateAsync(newRegionAdmin);

                await _repoWrapper.SaveAsync();
            }
        }