public async Task <IActionResult> SendEmailPermissionsChanged(string email) { if (string.IsNullOrWhiteSpace(email)) { return(BadRequest("No email entered")); } var user = new User { Name = "Johh", Surname = "Smith", Email = email, Claims = new string[] { ClaimType.isAdmin.ToString() } }; var response = await _sendGridService.SendPermissionsChangedEmailAsync(email, user); return(Ok(response)); }
/// <summary> /// Sets as admin /// </summary> /// <param name="id">User Id</param> /// <param name="email">Email who initiated</param> /// <returns>Void</returns> public async Task <bool?> ToggleIsAdmin(int id, string email) { if (id < 0) { _logger.LogDebug("Tried to update Main User"); return(false); } var user = await _context.Users.FindAsync(id); if (user == null) { _logger.LogDebug($"User with Id = {id} not found"); return(false); } if (user.isPermanent) { _logger.LogDebug("Tried to update permanent User"); return(false); } if (string.Equals(user.Email, email)) { _logger.LogDebug("Can not toggle own isAdmin claim"); return(null); } List <string> list = new List <string>(); if (user.Claims == null) { list.Add(ClaimType.isAdmin.ToString()); user.Claims = list.ToArray(); try { await _context.SaveChangesAsync(); await _sendGridService.SendPermissionsChangedEmailAsync(email, user); return(true); } catch (Exception) { _logger.LogDebug("Error on saving when setting as Admin"); return(false); } } if (user.Claims.ToList().Contains(ClaimType.isAdmin.ToString())) { list = user.Claims.ToList(); list.Remove(ClaimType.isAdmin.ToString()); user.Claims = list.ToArray(); try { await _context.SaveChangesAsync(); await _sendGridService.SendPermissionsChangedEmailAsync(email, user); return(true); } catch (Exception) { _logger.LogDebug("Error on saving when removing isAdmin"); return(false); } } list = user.Claims.ToList(); list.Add(ClaimType.isAdmin.ToString()); user.Claims = list.ToArray(); try { await _context.SaveChangesAsync(); await _sendGridService.SendPermissionsChangedEmailAsync(email, user); return(true); } catch (Exception) { _logger.LogDebug("Error on saving when setting as Admin"); return(false); } }