public async Task <IActionResult> GetScenesAsync(bool update = false) { try { _logger?.LogDebug("GetScenesAsync()..."); if (!_zipato.IsLocked) { return(StatusCode(StatusCodes.Status406NotAcceptable, "Locked: update not yet finished.")); } if (update) { var(scenes, status) = await _zipato.DataReadScenesAsync(); if (status.IsGood) { return(Ok(scenes)); } else { return(StatusCode(StatusCodes.Status502BadGateway, status)); } } else { var scenes = _zipato.Data.Scenes.Select(s => s.ToSceneData()).ToList(); return(Ok(scenes)); } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }
public async Task TestDataReadScenes() { var(result, status) = await _zipato.DataReadScenesAsync(); Assert.Equal(DataValue.Good, status); Assert.NotEmpty(result); }
/// <summary> /// Method to run when command is executed. /// </summary> /// <returns>Zero if ok.</returns> public async Task <int> OnExecuteAsync(CommandLineApplication app) { if (CheckOptions(app)) { try { // Overriding Zipato options. _zipato.BaseAddress = Parent.BaseAddress; _zipato.Timeout = Parent.Timeout; _zipato.User = Parent.User; _zipato.Password = Parent.Password; _zipato.IsLocal = Parent.IsLocal; _zipato.StartSession(); if (!_zipato.IsSessionActive) { Console.WriteLine($"Cannot establish a communcation session."); return(0); } Console.WriteLine($"Running scene '{Scene}'."); if (Guid.TryParse(Scene, out Guid uuid)) { var(runresult, runstatus) = await _zipato.ReadSceneRunAsync(uuid); if (runstatus.IsGood) { Console.WriteLine($"Running scene with UUID '{Scene}' successful."); } else { Console.WriteLine($"Running scene with UUID '{Scene}' not successful: {runresult}"); } } else { var(scenes, status) = await _zipato.DataReadScenesAsync(); if (status.IsGood) { var scene = scenes.First(s => s.Name == Scene); if ((scene != null) && scene.Uuid.HasValue) { var(runresult, runstatus) = await _zipato.ReadSceneRunAsync(scene.Uuid.Value); if (runstatus.IsGood) { Console.WriteLine($"Running scene with UUID '{scene.Uuid}' successful."); } else { Console.WriteLine($"Running scene with UUID '{scene.Uuid}' not successful: {runresult}"); } } else { Console.WriteLine($"Could not find scene with name '{Scene}'."); } } else { Console.WriteLine($"Could not read scenes."); } } } catch (Exception ex) { _logger?.LogError(ex, $"Exception RunCommand."); return(-1); } finally { _zipato.EndSession(); } } return(0); }