public string[] GetExecutableHomeDeviceNameOperations(int idHomeDevice) { UnitOfWork repository = UnitOfWork.GetInstance(); HomeDevice homeDevice = repository.HomeDeviceRespository.GetById(idHomeDevice); if (homeDevice == null) { throw new ArgumentException("HomeDevice id doesn't exist"); } return(homeDevice.GetHomeDeviceNameOperations()); }
public void ExecuteOperation(int idHomeDeviceDestination, string operationName, object[] args) { UnitOfWork repository = UnitOfWork.GetInstance(); HomeDevice homeDeviceDestination = repository.HomeDeviceRespository.GetById(idHomeDeviceDestination); if (homeDeviceDestination == null) { throw new ArgumentException("HomeDevice destination id doesn't exist"); } if (!homeDeviceDestination.GetHomeDeviceNameOperations().Contains(operationName)) { throw new ArgumentException("OperationName is not available on this HomeDevice"); } Operation operation = new Operation { DestionationHomeDevice = homeDeviceDestination, OperationName = operationName, Args = new object[] { homeDeviceDestination }.Concat(args).ToArray(), }; operation.Execute(); }