private async Task <string> MoveGarage(IGarage garage, Intent intent) { var action = intent.Slots["action"].Resolution?.Authorities.FirstOrDefault()?.Values.FirstOrDefault()?.Value.Id; var currentStatus = await garage.GetGarageStatus(); if (currentStatus.ToString() == action) { return($"Garage is already {ConvertStatus(currentStatus)}"); } await garage.ToggleGarage(); return($"Garage is {action}ing"); }
private async Task <string> GetStatus(IGarage garage, Intent intent) { string askedStatus = null; if (intent.Slots.ContainsKey("status")) { askedStatus = intent.Slots["status"].Resolution?.Authorities.FirstOrDefault()?.Values.FirstOrDefault()?.Value.Id; } int value = await garage.GetGarageStatus(); var prefix = askedStatus == null ? "" : (askedStatus == value.ToString() ? "Yes, " : "No, "); return($"{prefix}the garage is {ConvertStatus(value)}"); }