public static RestApiViewModel Create(IRestApi api) { switch (api.GetType().Name) { case "UserApi": return(new UserApiViewModel(api)); case "ItemApi": return(new ItemApiViewModel(api)); case "WorkbookApi": return(new WorkbookApiViewModel(api)); case "WorksheetApi": return(new WorksheetApiViewModel(api)); case "RangeApi": return(new RangeApiViewModel(api)); case "TableApi": return(new TableApiViewModel(api)); case "ChartApi": return(new ChartApiViewModel(api)); case "NamedItemApi": return(new NamedItemApiViewModel(api)); default: throw new ArgumentOutOfRangeException($"{api.GetType().Name} is not a valid API type"); } }