mirror of
https://github.com/Radarr/Radarr.git
synced 2026-03-20 16:44:37 -04:00
Compare commits
1 Commits
v4.4.2.695
...
sonarr-pul
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9367a07db4 |
45
.github/workflows/azuresync.yml
vendored
Normal file
45
.github/workflows/azuresync.yml
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
name: Sync issue to Azure DevOps work item
|
||||
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
[opened, edited, deleted, closed, reopened, labeled, unlabeled, assigned]
|
||||
|
||||
concurrency: azuresync-${{ github.event.issue.number }}
|
||||
|
||||
permissions: {}
|
||||
jobs:
|
||||
alert:
|
||||
permissions:
|
||||
issues: write # to update issue body
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: danhellem/github-actions-issue-to-work-item@master
|
||||
if: "${{ contains(github.event.issue.labels.*.name, 'Type: Bug') == true }}"
|
||||
env:
|
||||
ado_token: "${{ secrets.ADO_PERSONAL_ACCESS_TOKEN }}"
|
||||
github_token: "${{ github.token }}"
|
||||
ado_organization: "Servarr"
|
||||
ado_project: "Servarr"
|
||||
ado_area_path: "Servarr\\Radarr"
|
||||
ado_wit: "Bug"
|
||||
ado_new_state: "New"
|
||||
ado_active_state: "Active"
|
||||
ado_close_state: "Closed"
|
||||
ado_bypassrules: true
|
||||
log_level: 100
|
||||
- uses: danhellem/github-actions-issue-to-work-item@master
|
||||
if: "${{ contains(github.event.issue.labels.*.name, 'Type: Bug') == false }}"
|
||||
env:
|
||||
ado_token: "${{ secrets.ADO_PERSONAL_ACCESS_TOKEN }}"
|
||||
github_token: "${{ github.token }}"
|
||||
ado_organization: "Servarr"
|
||||
ado_project: "Servarr"
|
||||
ado_area_path: "Servarr\\Radarr"
|
||||
ado_wit: "User Story"
|
||||
ado_new_state: "New"
|
||||
ado_active_state: "Active"
|
||||
ado_close_state: "Closed"
|
||||
ado_bypassrules: true
|
||||
log_level: 100
|
||||
@@ -18,7 +18,6 @@ export const certificationCountryOptions = [
|
||||
{ key: 'fr', value: 'France' },
|
||||
{ key: 'de', value: 'Germany' },
|
||||
{ key: 'gb', value: 'Great Britain' },
|
||||
{ key: 'ie', value: 'Ireland' },
|
||||
{ key: 'it', value: 'Italy' },
|
||||
{ key: 'es', value: 'Spain' },
|
||||
{ key: 'us', value: 'United States' },
|
||||
|
||||
@@ -9,6 +9,7 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||
bool IsAdmin { get; }
|
||||
bool IsWindowsService { get; }
|
||||
bool IsWindowsTray { get; }
|
||||
bool IsStarting { get; set; }
|
||||
bool IsExiting { get; set; }
|
||||
bool IsTray { get; }
|
||||
RuntimeMode Mode { get; }
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||
_logger = logger;
|
||||
|
||||
IsWindowsService = hostLifetime is WindowsServiceLifetime;
|
||||
IsStarting = true;
|
||||
|
||||
// net6.0 will return Radarr.dll for entry assembly, we need the actual
|
||||
// executable name (Radarr on linux). On mono this will return the location of
|
||||
@@ -82,6 +83,7 @@ namespace NzbDrone.Common.EnvironmentInfo
|
||||
|
||||
public bool IsWindowsService { get; private set; }
|
||||
|
||||
public bool IsStarting { get; set; }
|
||||
public bool IsExiting { get; set; }
|
||||
public bool IsTray
|
||||
{
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
"UnselectAll": "Tout déselectionner",
|
||||
"Unmonitored": "Non surveillé",
|
||||
"UISettingsSummary": "Calendrier, date et les options d'altération des couleurs",
|
||||
"TagsSettingsSummary": "Voir tous les tags et leur utilisation. Les tags inutilisés peuvent être supprimés",
|
||||
"TagsSettingsSummary": "Voir toutes les tags et leur utilisation. Les tags inutilisées peuvent être supprimées",
|
||||
"Style": "Style",
|
||||
"Studio": "Studio",
|
||||
"Status": "Statut",
|
||||
@@ -318,11 +318,11 @@
|
||||
"ChangeHasNotBeenSavedYet": "Les changements n'ont pas encore été sauvegardés",
|
||||
"ChangeFileDate": "Changer la date du fichier",
|
||||
"CertificationCountryHelpText": "Choisir un pays pour les classifications de films",
|
||||
"CertificateValidationHelpText": "Modifier le degré de rigueur de la validation de la certification HTTPS. Ne changez rien si vous ne comprenez pas les risques.",
|
||||
"CertificateValidationHelpText": "Modifier le degré de rigueur de la validation de la certification HTTPS. Ne pas changer à moins que vous ne compreniez les risques.",
|
||||
"CertificateValidation": "Validation du certificat",
|
||||
"BypassProxyForLocalAddresses": "Contourner le proxy pour les adresses locales",
|
||||
"Branch": "Branche",
|
||||
"BindAddressHelpText": "Adresse IPv4 valide, localhost ou '*' pour toutes les interfaces",
|
||||
"BindAddressHelpText": "Adresse IPv4 valide ou '*' pour toutes les interfaces",
|
||||
"BindAddress": "Adresse d'attache",
|
||||
"Backups": "Sauvegardes",
|
||||
"BackupRetentionHelpText": "Les sauvegardes automatiques plus anciennes que la période de conservation seront automatiquement effacées",
|
||||
@@ -671,13 +671,13 @@
|
||||
"ShowCutoffUnmetIconHelpText": "Afficher l'icône des fichiers lorsque la limite n'a pas été atteinte",
|
||||
"ShowCertification": "Afficher la certification",
|
||||
"ShowAsAllDayEvents": "Afficher comme événements d'une journée entière",
|
||||
"ShouldMonitorHelpText": "Les films ou les collections ajoutés par cette liste doivent-ils être ajoutés en tant que surveillés",
|
||||
"ShouldMonitorHelpText": "Si activé, les films ajoutés par cette liste sont ajoutés et surveillés",
|
||||
"SettingsRuntimeFormat": "Format de durée",
|
||||
"SetPermissionsLinuxHelpTextWarning": "Si vous ne savez pas ce que font ces paramètres, ne les modifiez pas.",
|
||||
"SetPermissionsLinuxHelpText": "Chmod doit-il être exécuté lorsque les fichiers sont importés/renommés ?",
|
||||
"SetPermissions": "Définir les autorisations",
|
||||
"SendAnonymousUsageData": "Envoyer des données d'utilisation anonymes",
|
||||
"SearchOnAddHelpText": "Rechercher les films de cette liste lorsqu'ils sont ajoutés à la bibliothèque",
|
||||
"SearchOnAddHelpText": "Rechercher des films dans cette liste lorsqu'ils sont ajoutés à Radarr",
|
||||
"SearchForMovie": "Rechercher un film",
|
||||
"ScriptPath": "Chemin du script",
|
||||
"SaveSettings": "Enregistrer les paramètres",
|
||||
@@ -897,8 +897,8 @@
|
||||
"NoAltTitle": "Pas de titres alternatifs.",
|
||||
"NoLinks": "Aucun liens",
|
||||
"NoMoviesExist": "Aucun film trouvé, pour commencer, vous voudrez ajouter un nouveau film ou importer des films existants.",
|
||||
"QualitiesHelpText": "Les qualités placées en haut de la liste sont privilégiées même si elles ne sont pas cochées. Les qualités d'un même groupe sont égales. Seules les qualités cochées sont recherchées",
|
||||
"QualityProfileInUse": "Impossible de supprimer un profil de qualité associé à un film, une liste ou une collection",
|
||||
"QualitiesHelpText": "Les qualités plus élevées dans la liste sont plus préférées. Les qualités au sein d'un même groupe sont égales. Seules les qualités vérifiées sont recherchées",
|
||||
"QualityProfileInUse": "Impossible de supprimer un profil de qualité associé à un film",
|
||||
"RadarrCalendarFeed": "Flux de calendrier Radarr",
|
||||
"RadarrUpdated": "Radarr mis à jour",
|
||||
"UnableToLoadAltTitle": "Impossible de charger des titres alternatifs.",
|
||||
@@ -1065,7 +1065,7 @@
|
||||
"Blocklisted": "Liste noire",
|
||||
"AreYouSureYouWantToRemoveSelectedItemFromQueue": "Êtes-vous sûr de vouloir désinstaller {0} objet{1} de la file d'attente ?",
|
||||
"BlocklistReleases": "Mettre cette release sur la liste noire",
|
||||
"RemotePathMappingCheckGenericPermissions": "Le client de téléchargement {0} met les téléchargements dans {1} mais Radarr ne peut voir ce répertoire. Il est possible que vous ayez besoin d'ajuster les permissions de ce dossier.",
|
||||
"RemotePathMappingCheckGenericPermissions": "Le client de téléchargement {0} met les téléchargements dans {1} mais Radarr ne peut voir ce répertoire. Il est possible que vous ayez besoin d'ajuster les permissions de ce dossier.",
|
||||
"RemotePathMappingCheckLocalWrongOSPath": "Le client de téléchargement {0} met les téléchargements dans {1} mais il ne s'agit pas d'un chemin {2} valide. Vérifiez les paramètres de votre client de téléchargement.",
|
||||
"RemotePathMappingCheckFilesGenericPermissions": "Le client de téléchargement {0} met les téléchargements dans {1} mais Radarr ne peut voir ce répertoire. Il est possible que vous ayez besoin d'ajuster les permissions de ce dossier.",
|
||||
"RemotePathMappingCheckFilesLocalWrongOSPath": "Le client de téléchargement {0} met les téléchargements dans {1} mais il ne s'agit pas d'un chemin {2} valide. Vérifiez les paramètres de votre client de téléchargement.",
|
||||
@@ -1116,8 +1116,8 @@
|
||||
"AllCollectionsHiddenDueToFilter": "Toutes les collections sont masquées en raison du filtre appliqué.",
|
||||
"Collections": "Collections",
|
||||
"MonitorMovies": "Surveiller les films",
|
||||
"NoCollections": "Aucune collection n'a été trouvée. Pour commencer, vous devez ajouter un nouveau film ou importer des films existants",
|
||||
"RssSyncHelpText": "Intervalle en minutes. Mettez la valeur zéro pour désactiver (cela arrêtera tous les téléchargements automatiques de version)",
|
||||
"NoCollections": "Aucun film trouvé, pour commencer, vous voudrez ajouter un nouveau film ou importer des films existants.",
|
||||
"RssSyncHelpText": "Intervalle en minutes. Mettre à zéro pour désactiver (cela arrêtera tous les téléchargements automatiques)",
|
||||
"CollectionsSelectedInterp": "{0} Collections(s) Sélectionnée(s)",
|
||||
"ChooseImportMode": "Mode d'importation",
|
||||
"CollectionOptions": "Options de collection",
|
||||
@@ -1130,7 +1130,7 @@
|
||||
"OnMovieAdded": "À l'ajout d'un film",
|
||||
"MonitorCollection": "Surveiller la collection",
|
||||
"MonitoredCollectionHelpText": "Surveiller pour ajouter automatiquement les films de cette collection à la bibliothèque",
|
||||
"MovieCollectionMultipleMissingRoots": "Plusieurs dossiers racine manquent pour les collections de films : {0}",
|
||||
"MovieCollectionMultipleMissingRoots": "Plusieurs dossiers racine manquent pour les collections de films: {0}",
|
||||
"MovieOnly": "Film seulement",
|
||||
"RefreshCollections": "Actualiser les collections",
|
||||
"SearchOnAddCollectionHelpText": "Rechercher des films dans cette collection lorsqu'ils sont ajoutés à Radarr",
|
||||
@@ -1143,17 +1143,5 @@
|
||||
"InstanceName": "Nom de l'instance",
|
||||
"InstanceNameHelpText": "Nom de l'instance dans l'onglet du navigateur et pour le nom d'application dans Syslog",
|
||||
"CollectionShowPostersHelpText": "Afficher les affiches des éléments de la collection",
|
||||
"PreferredProtocol": "Protocole préféré",
|
||||
"TotalMovies": "Total des films",
|
||||
"ScrollMovies": "Parcourir les films",
|
||||
"AreYouSureYouWantToResetQualityDefinitions": "Êtes-vous sûr de vouloir réinitialiser les définitions de qualité ?",
|
||||
"SettingsTheme": "Thème",
|
||||
"RSSHelpText": "Sera utilisé lorsque Radarr recherche périodiquement des sorties via la synchronisation RSS",
|
||||
"DownloadClientSortingCheckMessage": "Le client de téléchargement {0} a activé le tri {1} pour la catégorie de Radarr. Vous devez désactiver le tri dans votre client de téléchargement pour éviter les problèmes d'importation.",
|
||||
"ResetDefinitions": "Réinitialiser les définitions",
|
||||
"ResetQualityDefinitions": "Réinitialiser les définitions de qualité",
|
||||
"ResetTitles": "Réinitialiser les titres",
|
||||
"ResetTitlesHelpText": "Réinitialiser les titres des définitions ainsi que les valeurs",
|
||||
"SettingsThemeHelpText": "Changez le thème de l'interface de l'application. Le thème \"Auto\" utilisera celui de votre système d'exploitation pour définir le mode clair ou foncé. Inspiré par Theme.Park",
|
||||
"ShowPosters": "Montre les affiches"
|
||||
"PreferredProtocol": "Protocole préféré"
|
||||
}
|
||||
|
||||
@@ -267,12 +267,12 @@
|
||||
"CustomFormatUnknownCondition": "Condição de formato personalizado \"{0}\" desconhecida",
|
||||
"CustomFormatsSettingsSummary": "Configurações e formatos personalizados",
|
||||
"CustomFormatsSettings": "Configurações de formatos personalizados",
|
||||
"CustomFormatScore": "Pontuação de formato personalizado",
|
||||
"CustomFormatScore": "Pontuação do Formato Personalizado",
|
||||
"CustomFormats": "Formatos personalizados",
|
||||
"CustomFormatJSON": "JSON de formato personalizado",
|
||||
"CustomFormatHelpText": "O Radarr pontua cada versão usando a soma das pontuações para formatos personalizados encontrados. Se uma nova versão tiver melhor pontuação, com a mesma qualidade ou melhor, o Radarr o capturará.",
|
||||
"CustomFormat": "Formato personalizado",
|
||||
"CustomFilters": "Filtros Personalizados",
|
||||
"CustomFilters": "Filtros personalizados",
|
||||
"Custom": "Personalizado",
|
||||
"CurrentlyInstalled": "Atualmente instalado",
|
||||
"Crew": "Equipe técnica",
|
||||
@@ -402,7 +402,7 @@
|
||||
"MinimumLimits": "Limites mínimos",
|
||||
"MinimumFreeSpaceWhenImportingHelpText": "Impedir a importação se deixar menos do que esta quantidade de espaço em disco disponível",
|
||||
"MinimumFreeSpace": "Mínimo de espaço livre",
|
||||
"MinimumCustomFormatScore": "Pontuação mínima de formato personalizado",
|
||||
"MinimumCustomFormatScore": "Pontuação Mínima do Formato Personalizado",
|
||||
"MinimumAgeHelpText": "Somente Usenet: tempo de vida mínimo, em minutos, dos NZBs, para que sejam capturados. Use isto para dar às novas versões tempo de propagar-se em seu fornecedor de Usenet.",
|
||||
"MinimumAge": "Tempo de vida mínimo",
|
||||
"MinimumAvailability": "Disponibilidade mínima",
|
||||
|
||||
@@ -8,7 +8,6 @@ namespace NzbDrone.Core.MetadataSource.SkyHook.Resource
|
||||
FR, // France
|
||||
DE, // Germany
|
||||
GB, // Great Britain
|
||||
IE, // Ireland
|
||||
IT, // Italy
|
||||
ES, // Spain
|
||||
US, // United States
|
||||
|
||||
@@ -56,6 +56,7 @@ namespace NzbDrone.Host
|
||||
|
||||
private void OnAppStarted()
|
||||
{
|
||||
_runtimeInfo.IsStarting = false;
|
||||
_runtimeInfo.IsExiting = false;
|
||||
|
||||
if (!_startupContext.Flags.Contains(StartupContext.NO_BROWSER)
|
||||
|
||||
@@ -264,6 +264,7 @@ namespace NzbDrone.Host
|
||||
|
||||
app.UseMiddleware<VersionMiddleware>();
|
||||
app.UseMiddleware<UrlBaseMiddleware>(configFileProvider.UrlBase);
|
||||
app.UseMiddleware<StartingUpMiddleware>();
|
||||
app.UseMiddleware<CacheHeaderMiddleware>();
|
||||
app.UseMiddleware<IfModifiedMiddleware>();
|
||||
app.UseMiddleware<BufferingMiddleware>(new List<string> { "/api/v3/command" });
|
||||
|
||||
@@ -42,10 +42,8 @@ namespace Radarr.Api.V3.Config
|
||||
SharedValidator.RuleFor(c => c.UrlBase).ValidUrlBase();
|
||||
SharedValidator.RuleFor(c => c.InstanceName).ContainsRadarr().When(c => c.InstanceName.IsNotNullOrWhiteSpace());
|
||||
|
||||
SharedValidator.RuleFor(c => c.Username).NotEmpty().When(c => c.AuthenticationMethod == AuthenticationType.Basic ||
|
||||
c.AuthenticationMethod == AuthenticationType.Forms);
|
||||
SharedValidator.RuleFor(c => c.Password).NotEmpty().When(c => c.AuthenticationMethod == AuthenticationType.Basic ||
|
||||
c.AuthenticationMethod == AuthenticationType.Forms);
|
||||
SharedValidator.RuleFor(c => c.Username).NotEmpty().When(c => c.AuthenticationMethod != AuthenticationType.None);
|
||||
SharedValidator.RuleFor(c => c.Password).NotEmpty().When(c => c.AuthenticationMethod != AuthenticationType.None);
|
||||
|
||||
SharedValidator.RuleFor(c => c.SslPort).ValidPort().When(c => c.EnableSsl);
|
||||
SharedValidator.RuleFor(c => c.SslPort).NotEqual(c => c.Port).When(c => c.EnableSsl);
|
||||
|
||||
@@ -321,10 +321,20 @@
|
||||
"200": {
|
||||
"description": "Success",
|
||||
"content": {
|
||||
"text/plain": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/BlocklistResourcePagingResource"
|
||||
}
|
||||
},
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/BlocklistResourcePagingResource"
|
||||
}
|
||||
},
|
||||
"text/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/BlocklistResourcePagingResource"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1211,6 +1221,16 @@
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/CustomFormatResource"
|
||||
}
|
||||
},
|
||||
"text/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/CustomFormatResource"
|
||||
}
|
||||
},
|
||||
"application/*+json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/CustomFormatResource"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1245,6 +1265,14 @@
|
||||
"200": {
|
||||
"description": "Success",
|
||||
"content": {
|
||||
"text/plain": {
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/CustomFormatResource"
|
||||
}
|
||||
}
|
||||
},
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "array",
|
||||
@@ -1252,6 +1280,14 @@
|
||||
"$ref": "#/components/schemas/CustomFormatResource"
|
||||
}
|
||||
}
|
||||
},
|
||||
"text/json": {
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/CustomFormatResource"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1279,6 +1315,16 @@
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/CustomFormatResource"
|
||||
}
|
||||
},
|
||||
"text/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/CustomFormatResource"
|
||||
}
|
||||
},
|
||||
"application/*+json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/CustomFormatResource"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -8953,8 +8999,7 @@
|
||||
"nullable": true
|
||||
},
|
||||
"includeCustomFormatWhenRenaming": {
|
||||
"type": "boolean",
|
||||
"nullable": true
|
||||
"type": "boolean"
|
||||
},
|
||||
"specifications": {
|
||||
"type": "array",
|
||||
@@ -9366,10 +9411,6 @@
|
||||
},
|
||||
"nullable": true
|
||||
},
|
||||
"customFormatScore": {
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
"qualityCutoffNotMet": {
|
||||
"type": "boolean"
|
||||
},
|
||||
@@ -10173,13 +10214,6 @@
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"customFormats": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/CustomFormatResource"
|
||||
},
|
||||
"nullable": true
|
||||
},
|
||||
"rejections": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
@@ -11342,8 +11376,11 @@
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
"hardcodedSubs": {
|
||||
"type": "string",
|
||||
"extraInfo": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"nullable": true
|
||||
},
|
||||
"nullable": true
|
||||
},
|
||||
"movieTitle": {
|
||||
@@ -11496,6 +11533,10 @@
|
||||
},
|
||||
"revision": {
|
||||
"$ref": "#/components/schemas/Revision"
|
||||
},
|
||||
"hardcodedSubs": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
||||
43
src/Sonarr.Http/Middleware/StartingUpMiddleware.cs
Normal file
43
src/Sonarr.Http/Middleware/StartingUpMiddleware.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System.Buffers;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using NzbDrone.Common.EnvironmentInfo;
|
||||
using NzbDrone.Common.Serializer;
|
||||
using NzbDrone.Core.Lifecycle;
|
||||
using NzbDrone.Core.Messaging.Events;
|
||||
using Sonarr.Http.Extensions;
|
||||
|
||||
namespace Sonarr.Http.Middleware
|
||||
{
|
||||
public class StartingUpMiddleware
|
||||
{
|
||||
private readonly RequestDelegate _next;
|
||||
private readonly IRuntimeInfo _runtimeInfo;
|
||||
private static readonly string MESSAGE = "Sonarr is starting up, please try again later";
|
||||
|
||||
public StartingUpMiddleware(RequestDelegate next, IRuntimeInfo runtimeInfo)
|
||||
{
|
||||
_next = next;
|
||||
_runtimeInfo = runtimeInfo;
|
||||
}
|
||||
|
||||
public async Task InvokeAsync(HttpContext context)
|
||||
{
|
||||
if (_runtimeInfo.IsStarting)
|
||||
{
|
||||
var isJson = context.Request.IsApiRequest();
|
||||
var message = isJson ? STJson.ToJson(new { ErrorMessage = MESSAGE }) : MESSAGE;
|
||||
var bytes = Encoding.UTF8.GetBytes(message);
|
||||
|
||||
context.Response.StatusCode = 503;
|
||||
context.Response.ContentType = isJson ? "application/json" : "text/plain";
|
||||
await context.Response.Body.WriteAsync(bytes, 0, bytes.Length);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
await _next(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user