> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superoffice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SuperOffice.WebApi.Agents.FavouriteAgent

# \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent">\</a> Class FavouriteAgent

Namespace: [SuperOffice.WebApi.Agents](SuperOffice.WebApi.Agents.md)\
Assembly: SuperOffice.WebApi.dll

Agent used for retrieveing and setting favourites

```csharp theme={null}
public class FavouriteAgent : AgentBase, IFavouriteAgent, IAgentBase, IDisposable
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ←
[AgentBase](SuperOffice.WebApi.Agents.AgentBase.md) ←
[FavouriteAgent](SuperOffice.WebApi.Agents.FavouriteAgent.md)

#### Implements

[IFavouriteAgent](SuperOffice.WebApi.Agents.IFavouriteAgent.md),
[IAgentBase](SuperOffice.WebApi.Agents.IAgentBase.md),
[IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

#### Inherited Members

[AgentBase.\_json](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase__json),
[AgentBase.\_binary](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase__binary),
[AgentBase.\_config](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase__config),
[AgentBase.\_client](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase__client),
[AgentBase.\_disposeClient](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase__disposeClient),
[AgentBase.Merge(RequestOptions)](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_Merge_SuperOffice_WebApi_RequestOptions_),
[AgentBase.BuildRequestFromObject(HttpMethod, string, object, WebApiOptions, string)](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_BuildRequestFromObject_System_Net_Http_HttpMethod_System_String_System_Object_SuperOffice_WebApi_WebApiOptions_System_String_),
[AgentBase.BuildRequestFromStream(HttpMethod, string, Stream, WebApiOptions, string)](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_BuildRequestFromStream_System_Net_Http_HttpMethod_System_String_System_IO_Stream_SuperOffice_WebApi_WebApiOptions_System_String_),
[AgentBase.BuildRequestFromObjectWithStream(HttpMethod, string, object, Stream, WebApiOptions, string)](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_BuildRequestFromObjectWithStream_System_Net_Http_HttpMethod_System_String_System_Object_System_IO_Stream_SuperOffice_WebApi_WebApiOptions_System_String_),
[AgentBase.ParseAuthorization(IAuthorization)](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_ParseAuthorization_SuperOffice_WebApi_Authorization_IAuthorization_),
[AgentBase.CancelRequest()](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_CancelRequest),
[AgentBase.SendRequestObject(HttpMethod, string, object, WebApiOptions, string)](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_SendRequestObject_System_Net_Http_HttpMethod_System_String_System_Object_SuperOffice_WebApi_WebApiOptions_System_String_),
[AgentBase.SendRequestObjectWithStream(HttpMethod, string, object, Stream, WebApiOptions, string)](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_SendRequestObjectWithStream_System_Net_Http_HttpMethod_System_String_System_Object_System_IO_Stream_SuperOffice_WebApi_WebApiOptions_System_String_),
[AgentBase.SendRequest(HttpRequestMessage, RequestOptions)](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_SendRequest_System_Net_Http_HttpRequestMessage_SuperOffice_WebApi_RequestOptions_),
[AgentBase.ThrowOnResponseErrorAsync(HttpRequestMessage, HttpResponseMessage)](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_ThrowOnResponseErrorAsync_System_Net_Http_HttpRequestMessage_System_Net_Http_HttpResponseMessage_),
[AgentBase.ParseResponse\<T\&gt;(HttpResponseMessage)](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_ParseResponse__1_System_Net_Http_HttpResponseMessage_),
[AgentBase.Finally(RequestOptions)](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_Finally_SuperOffice_WebApi_RequestOptions_),
[AgentBase.Dispose()](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_Dispose),
[AgentBase.Configuration](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_Configuration),
[AgentBase.Client](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_Client),
[AgentBase.HasRunningRequest](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_HasRunningRequest),
[AgentBase.ClientCancellationTokenSource](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_ClientCancellationTokenSource),
[AgentBase.ProgressListener](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_ProgressListener),
[AgentBase.UploadProgressListener](SuperOffice.WebApi.Agents.AgentBase.md#SuperOffice_WebApi_Agents_AgentBase_UploadProgressListener),
[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring),
[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)),
[object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)),
[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals),
[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode),
[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype),
[object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone)

## Examples

\<pre>\<code class="lang-csharp">using SuperOffice.WebApi;
using SuperOffice.WebApi.Agents;

var mySession = new WebApiOptions("[http://example.com/super/api](http://example.com/super/api)");
mySession.Authorization = new AuthorizationUsernamePassword("user", "pass");
using (FavouriteAgent agent = new FavouriteAgent(mySession))
\{
// call methods on agent here...
}\</code>\</pre>

## Constructors

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_\_ctor\_System\_Net\_Http\_HttpClient\_">\</a> FavouriteAgent(HttpClient)

Constructor: Agent used for retrieveing and setting favourites

```csharp theme={null}
public FavouriteAgent(HttpClient httpClient)
```

#### Parameters

`httpClient` [HttpClient](https://learn.microsoft.com/dotnet/api/system.net.http.httpclient)

Use this HTTP client instead of making own HttpClient instance.

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_\_ctor\_SuperOffice\_WebApi\_WebApiOptions\_System\_Net\_Http\_HttpClient\_">\</a> FavouriteAgent(WebApiOptions, HttpClient)

Constructor: Agent used for retrieveing and setting favourites

```csharp theme={null}
public FavouriteAgent(WebApiOptions options, HttpClient httpClient = null)
```

#### Parameters

`options` [WebApiOptions](SuperOffice.WebApi.WebApiOptions.md)

Base URL and authentication values.

`httpClient` [HttpClient](https://learn.microsoft.com/dotnet/api/system.net.http.httpclient)

Optional: Use this HTTP client instead of making a new one.

## Methods

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_AddFavouriteAsync\_System\_String\_System\_Int32\_System\_Int32\_System\_String\_SuperOffice\_WebApi\_RequestOptions\_">\</a> AddFavouriteAsync(string, int, int, string, RequestOptions)

Add a record in a table as a favourite for an associate

```csharp theme={null}
public Task AddFavouriteAsync(string tableName, int recordId, int associateId, string extraInfo, RequestOptions requestOptions = null)
```

#### Parameters

`tableName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Table name, transformed to and from numeric table id by the service layer.

`recordId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a record in your specified table (tableName)

`associateId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a current user

`extraInfo` [string](https://learn.microsoft.com/dotnet/api/system.string)

Any extra information

`requestOptions` [RequestOptions](SuperOffice.WebApi.RequestOptions.md)

Override language/culture codes on this request.

#### Returns

[Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

This method has no return value

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_AddFavouritesAsync\_System\_String\_System\_Int32\_\_\_System\_Int32\_System\_String\_SuperOffice\_WebApi\_RequestOptions\_">\</a> AddFavouritesAsync(string, int\[], int, string, RequestOptions)

Add a list of record ids as favourites for an associate

```csharp theme={null}
public Task AddFavouritesAsync(string tableName, int[] recordIds, int associateId, string extraInfo, RequestOptions requestOptions = null)
```

#### Parameters

`tableName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Table name, transformed to and from numeric table id by the service layer.

`recordIds` [int](https://learn.microsoft.com/dotnet/api/system.int32)\[]

Ids of records in your specified table (tableName). Corresponding rows will be added as Favourites.

`associateId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a current user

`extraInfo` [string](https://learn.microsoft.com/dotnet/api/system.string)

Any extra information

`requestOptions` [RequestOptions](SuperOffice.WebApi.RequestOptions.md)

Override language/culture codes on this request.

#### Returns

[Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

This method has no return value

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_AddTicketsToFavouritesByProviderAsync\_System\_String\_SuperOffice\_WebApi\_Data\_ArchiveRestrictionInfo\_\_\_System\_Int32\_System\_String\_SuperOffice\_WebApi\_RequestOptions\_">\</a> AddTicketsToFavouritesByProviderAsync(string, ArchiveRestrictionInfo\[], int, string, RequestOptions)

Add a list of tickets as favourites that are given by the ticket provider.

```csharp theme={null}
public Task AddTicketsToFavouritesByProviderAsync(string providerName, ArchiveRestrictionInfo[] restrictions, int associateId, string extraInfo, RequestOptions requestOptions = null)
```

#### Parameters

`providerName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Name of a ticket provider

`restrictions` [ArchiveRestrictionInfo](SuperOffice.WebApi.Data.ArchiveRestrictionInfo.md)\[]

Query restrictions to be added to provider. Fixed providers, such as LastTicketsProvider, FavouriteTicketsProvider etc. already have mandatory restrictions setup - in such case extra restrictions will be combined, however for general use case for fixed providers you can pass an empty array and provider will return default results. For selection providers generally you should pass selectionId as a restriction.

`associateId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a current user

`extraInfo` [string](https://learn.microsoft.com/dotnet/api/system.string)

Any extra information

`requestOptions` [RequestOptions](SuperOffice.WebApi.RequestOptions.md)

Override language/culture codes on this request.

#### Returns

[Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

This method has no return value

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_GetFavouritesAsync\_System\_String\_System\_Int32\_SuperOffice\_WebApi\_RequestOptions\_">\</a> GetFavouritesAsync(string, int, RequestOptions)

Get all favourites for a table and associate

```csharp theme={null}
public Task<Favourite[]> GetFavouritesAsync(string tableName, int associateId, RequestOptions requestOptions = null)
```

#### Parameters

`tableName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Table name, transformed to and from numeric table id by the service layer.

`associateId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a current user

`requestOptions` [RequestOptions](SuperOffice.WebApi.RequestOptions.md)

Override language/culture codes on this request.

#### Returns

[Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1)\<[Favourite](SuperOffice.WebApi.Data.Favourite.md)\[]\&gt;

Requested favourites for a table and associate

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_IsFavouriteAsync\_System\_String\_System\_Int32\_System\_Int32\_SuperOffice\_WebApi\_RequestOptions\_">\</a> IsFavouriteAsync(string, int, int, RequestOptions)

Checks if a record in a table is a favourite for an associate

```csharp theme={null}
public Task<bool> IsFavouriteAsync(string tableName, int recordId, int associateId, RequestOptions requestOptions = null)
```

#### Parameters

`tableName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Table name, transformed to and from numeric table id by the service layer.

`recordId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a record in your specified table (tableName)

`associateId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a current user

`requestOptions` [RequestOptions](SuperOffice.WebApi.RequestOptions.md)

Override language/culture codes on this request.

#### Returns

[Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1)\<[bool](https://learn.microsoft.com/dotnet/api/system.boolean)\&gt;

Is Favourite?

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_RemoveAllFavouritesAsync\_System\_String\_System\_Int32\_SuperOffice\_WebApi\_RequestOptions\_">\</a> RemoveAllFavouritesAsync(string, int, RequestOptions)

Remove all favourites for a table and associate

```csharp theme={null}
public Task RemoveAllFavouritesAsync(string tableName, int associateId, RequestOptions requestOptions = null)
```

#### Parameters

`tableName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Table name, transformed to and from numeric table id by the service layer.

`associateId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a current user

`requestOptions` [RequestOptions](SuperOffice.WebApi.RequestOptions.md)

Override language/culture codes on this request.

#### Returns

[Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

This method has no return value

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_RemoveFavouriteAsync\_System\_String\_System\_Int32\_System\_Int32\_SuperOffice\_WebApi\_RequestOptions\_">\</a> RemoveFavouriteAsync(string, int, int, RequestOptions)

Remove favourite for a table, record id and associate

```csharp theme={null}
public Task RemoveFavouriteAsync(string tableName, int recordId, int associateId, RequestOptions requestOptions = null)
```

#### Parameters

`tableName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Table name, transformed to and from numeric table id by the service layer.

`recordId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a record in your specified table (tableName)

`associateId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a current user

`requestOptions` [RequestOptions](SuperOffice.WebApi.RequestOptions.md)

Override language/culture codes on this request.

#### Returns

[Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

This method has no return value

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_RemoveFavouritesAsync\_System\_String\_System\_Int32\_\_\_System\_Int32\_SuperOffice\_WebApi\_RequestOptions\_">\</a> RemoveFavouritesAsync(string, int\[], int, RequestOptions)

Remove a list of record ids from favourites for an associate

```csharp theme={null}
public Task RemoveFavouritesAsync(string tableName, int[] recordIds, int associateId, RequestOptions requestOptions = null)
```

#### Parameters

`tableName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Table name, transformed to and from numeric table id by the service layer.

`recordIds` [int](https://learn.microsoft.com/dotnet/api/system.int32)\[]

Ids of records in your specified table (tableName). Corresponding rows will be removed from Favourites.

`associateId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a current user

`requestOptions` [RequestOptions](SuperOffice.WebApi.RequestOptions.md)

Override language/culture codes on this request.

#### Returns

[Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

This method has no return value

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_RemoveFavouritesByIdAsync\_System\_Int32\_\_\_SuperOffice\_WebApi\_RequestOptions\_">\</a> RemoveFavouritesByIdAsync(int\[], RequestOptions)

Remove favourite using favourite id

```csharp theme={null}
public Task RemoveFavouritesByIdAsync(int[] favouriteIds, RequestOptions requestOptions = null)
```

#### Parameters

`favouriteIds` [int](https://learn.microsoft.com/dotnet/api/system.int32)\[]

Ids of favourite rows to delete

`requestOptions` [RequestOptions](SuperOffice.WebApi.RequestOptions.md)

Override language/culture codes on this request.

#### Returns

[Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

This method has no return value

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_RemoveTicketsFromFavouritesByProviderAsync\_System\_String\_SuperOffice\_WebApi\_Data\_ArchiveRestrictionInfo\_\_\_System\_Int32\_SuperOffice\_WebApi\_RequestOptions\_">\</a> RemoveTicketsFromFavouritesByProviderAsync(string, ArchiveRestrictionInfo\[], int, RequestOptions)

Remove a list of tickets from favourites that are given by the ticket provider.

```csharp theme={null}
public Task RemoveTicketsFromFavouritesByProviderAsync(string providerName, ArchiveRestrictionInfo[] restrictions, int associateId, RequestOptions requestOptions = null)
```

#### Parameters

`providerName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Name of a ticket provider

`restrictions` [ArchiveRestrictionInfo](SuperOffice.WebApi.Data.ArchiveRestrictionInfo.md)\[]

Query restrictions to be added to provider. Fixed providers, such as LastTicketsProvider, FavouriteTicketsProvider etc. already have mandatory restrictions setup - in such case extra restrictions will be combined, however for general use case for fixed providers you can pass an empty array and provider will return default results. For selection providers generally you should pass selectionId as a restriction.

`associateId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a current user

`requestOptions` [RequestOptions](SuperOffice.WebApi.RequestOptions.md)

Override language/culture codes on this request.

#### Returns

[Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task)

This method has no return value

### \<a id="SuperOffice\_WebApi\_Agents\_FavouriteAgent\_ToggleFavouriteAsync\_System\_String\_System\_Int32\_System\_Int32\_System\_String\_SuperOffice\_WebApi\_RequestOptions\_">\</a> ToggleFavouriteAsync(string, int, int, string, RequestOptions)

Toggle a record in a table as a favourite for an associate

```csharp theme={null}
public Task<bool> ToggleFavouriteAsync(string tableName, int recordId, int associateId, string extraInfo, RequestOptions requestOptions = null)
```

#### Parameters

`tableName` [string](https://learn.microsoft.com/dotnet/api/system.string)

Table name, transformed to and from numeric table id by the service layer.

`recordId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a record in your specified table (tableName)

`associateId` [int](https://learn.microsoft.com/dotnet/api/system.int32)

Id of a current user

`extraInfo` [string](https://learn.microsoft.com/dotnet/api/system.string)

Any extra information

`requestOptions` [RequestOptions](SuperOffice.WebApi.RequestOptions.md)

Override language/culture codes on this request.

#### Returns

[Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1)\<[bool](https://learn.microsoft.com/dotnet/api/system.boolean)\&gt;

Return the new value, true if added, false if removed


## Related topics

- [SuperOffice.WebApi.Data.Favourite](/en/api/reference/webapi/SuperOffice.WebApi.Data.Favourite.md)
- [SuperOffice.WebApi.Agents.AgentBase](/en/api/reference/webapi/SuperOffice.WebApi.Agents.AgentBase.md)
- [SuperOffice.WebApi.Agents.IFavouriteAgent](/en/api/reference/webapi/SuperOffice.WebApi.Agents.IFavouriteAgent.md)
- [SuperOffice.WebApi.Agents.ReportAgent](/en/api/reference/webapi/SuperOffice.WebApi.Agents.ReportAgent.md)
- [SuperOffice.WebApi.Agents.IReportAgent](/en/api/reference/webapi/SuperOffice.WebApi.Agents.IReportAgent.md)
- [SuperOffice.WebApi.Agents](/en/api/reference/webapi/SuperOffice.WebApi.Agents.md)
