public async Task <IActionResult> EditAdmin(GoverningBodyAdministrationDTO adminDto) { await _governingBodyAdministrationService.EditGoverningBodyAdministratorAsync(adminDto); _logger.LogInformation($"Admin with User-ID {{{adminDto.UserId}}} was edited."); return(Ok(adminDto)); }
public async Task <IActionResult> AddAdmin(GoverningBodyAdministrationDTO newAdmin) { await _governingBodyAdministrationService.AddGoverningBodyAdministratorAsync(newAdmin); _logger.LogInformation($"User {{{newAdmin.UserId}}} became Admin for Governing Body {{{newAdmin.GoverningBodyId}}}" + $" with role {{{newAdmin.AdminType.AdminTypeName}}}."); return(Ok(newAdmin)); }
/// <inheritdoc /> public async Task <GoverningBodyAdministrationDTO> EditGoverningBodyAdministratorAsync(GoverningBodyAdministrationDTO governingBodyAdministrationDto) { var admin = await _repositoryWrapper.GoverningBodyAdministration.GetFirstOrDefaultAsync(a => a.Id == governingBodyAdministrationDto.ID); var adminType = await _adminTypeService.GetAdminTypeByNameAsync(governingBodyAdministrationDto.AdminType.AdminTypeName); if (adminType.ID == admin.AdminTypeId) { admin.StartDate = governingBodyAdministrationDto.StartDate ?? DateTime.Now; admin.EndDate = governingBodyAdministrationDto.EndDate; _repositoryWrapper.GoverningBodyAdministration.Update(admin); await _repositoryWrapper.SaveAsync(); } else { await RemoveAdministratorAsync(governingBodyAdministrationDto.ID); governingBodyAdministrationDto = await AddGoverningBodyAdministratorAsync(governingBodyAdministrationDto); } return(governingBodyAdministrationDto); }
/// <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); }