public async Task <IActionResult> GetRulesAsync(bool update = false) { try { _logger?.LogDebug("GetRulesAsync()..."); if (_zipato.IsLocal) { return(StatusCode(StatusCodes.Status501NotImplemented, "Not implemented in local connection.")); } if (!_zipato.IsLocked) { return(StatusCode(StatusCodes.Status406NotAcceptable, "Locked: update not yet finished.")); } if (update) { var(rules, status) = await _zipato.DataReadRulesAsync(); if (status.IsGood) { return(Ok(rules)); } else { return(StatusCode(StatusCodes.Status502BadGateway, status)); } } else { var rules = _zipato.Data.Rules.Select(r => r.ToRuleData()).ToList(); return(Ok(rules)); } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }