2018-09-28 22:25:55 +00:00
|
|
|
|
using BotSharp.Platform.Models;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Text;
|
2018-10-05 06:39:39 +00:00
|
|
|
|
using System.Threading.Tasks;
|
2018-09-28 22:25:55 +00:00
|
|
|
|
|
2019-03-17 00:55:55 +00:00
|
|
|
|
namespace BotSharp.Platform.Abstractions
|
2018-09-28 22:25:55 +00:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Agent could be persisted in any kind of storage.
|
|
|
|
|
|
/// Example: local file storage, cloud storage, relational database, key-value database or memory
|
|
|
|
|
|
/// </summary>
|
2018-09-29 18:18:34 +00:00
|
|
|
|
public interface IAgentStorage<TAgent>
|
2018-09-28 22:25:55 +00:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Save agent instance
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="agent"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2018-10-05 06:39:39 +00:00
|
|
|
|
Task<bool> Persist(TAgent agent);
|
2018-09-28 22:25:55 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Get agent by id
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="agentId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2018-10-05 06:39:39 +00:00
|
|
|
|
Task<TAgent> FetchById(string agentId);
|
2018-09-28 22:25:55 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Get agent by name
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="agentName"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2018-10-05 06:39:39 +00:00
|
|
|
|
Task<TAgent> FetchByName(string agentName);
|
2018-09-28 22:25:55 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Query agents
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2018-10-05 06:39:39 +00:00
|
|
|
|
Task<List<TAgent>> Query();
|
2018-10-01 13:36:39 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Delete agents
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
2018-10-05 06:39:39 +00:00
|
|
|
|
Task<int> PurgeAllAgents();
|
2018-09-28 22:25:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|