This commit is contained in:
2021-03-03 00:50:15 +00:00
parent 1b07953f59
commit eec26f92de
9 changed files with 53 additions and 15 deletions

View File

@@ -43,7 +43,7 @@ namespace AyaNova.Api.Controllers
/// <summary>
/// Get server state
/// </summary>
/// <returns>Current server state (Closed, OpsOnly, Open)</returns>
/// <returns>Current server state (Closed, MigrateMode, OpsOnly, Open)</returns>
[HttpGet]
public ActionResult Get()
{
@@ -79,8 +79,29 @@ namespace AyaNova.Api.Controllers
if (desiredState == ApiServerState.ServerState.Closed)
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_INVALID_VALUE, null, "Invalid state - must be one of \"OpsOnly\", \"MigrateMode\" or \"Open\""));
var TransId = UserTranslationIdFromContext.Id(HttpContext.Items);
log.LogInformation($"ServerState change request by user {UserNameFromContext.Name(HttpContext.Items)} from current state of \"{serverState.GetState().ToString()}\" to \"{desiredState.ToString()}-{state.Reason}\"");
//Add a message if user didn't enter one so other users know why they can't login
if (string.IsNullOrWhiteSpace(state.Reason))
{
switch (desiredState)
{
case ApiServerState.ServerState.Open:
break;
case ApiServerState.ServerState.MigrateMode:
state.Reason += await TranslationBiz.GetTranslationStaticAsync("ServerStateLoginRestricted", TransId, ct) + " " + await TranslationBiz.GetTranslationStaticAsync("ServerStateMigrateMode", TransId, ct);
break;
case ApiServerState.ServerState.OpsOnly:
state.Reason += await TranslationBiz.GetTranslationStaticAsync("ServerStateLoginRestricted", TransId, ct) + " " + await TranslationBiz.GetTranslationStaticAsync("ServerStateOps", TransId, ct);
break;
case ApiServerState.ServerState.Closed:
state.Reason += await TranslationBiz.GetTranslationStaticAsync("ServerStateLoginRestricted", TransId, ct) + " " + await TranslationBiz.GetTranslationStaticAsync("ErrorAPI2000", TransId, ct);
break;
}
}
serverState.SetState(desiredState, state.Reason);
//Log