Merge pull request #211 from iceljc/features/sync-conversation-status
add update conversation status
This commit is contained in:
commit
dbd1b8d0ce
|
|
@ -32,6 +32,7 @@ public interface IBotSharpRepository
|
|||
void UpdateConversationDialog(string conversationId, string dialogs);
|
||||
List<StateKeyValue> GetConversationStates(string conversationId);
|
||||
void UpdateConversationStates(string conversationId, List<StateKeyValue> states);
|
||||
void UpdateConversationStatus(string conversationId, string status);
|
||||
Conversation GetConversation(string conversationId);
|
||||
List<Conversation> GetConversations(string userId);
|
||||
List<Conversation> GetLastConversations();
|
||||
|
|
|
|||
|
|
@ -156,6 +156,11 @@ public class BotSharpDbContext : Database, IBotSharpRepository
|
|||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void UpdateConversationStatus(string conversationId, string status)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void AddExectionLogs(string conversationId, List<string> logs)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
|
|
|
|||
|
|
@ -694,6 +694,23 @@ public class FileRepository : IBotSharpRepository
|
|||
}
|
||||
}
|
||||
|
||||
public void UpdateConversationStatus(string conversationId, string status)
|
||||
{
|
||||
var convDir = FindConversationDirectory(conversationId);
|
||||
if (!string.IsNullOrEmpty(convDir))
|
||||
{
|
||||
var convFile = Path.Combine(convDir, "conversation.json");
|
||||
if (File.Exists(convFile))
|
||||
{
|
||||
var json = File.ReadAllText(convFile);
|
||||
var conv = JsonSerializer.Deserialize<Conversation>(json, _options);
|
||||
conv.Status = status;
|
||||
conv.UpdatedTime = DateTime.UtcNow;
|
||||
File.WriteAllText(convFile, JsonSerializer.Serialize(conv, _options));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Conversation GetConversation(string conversationId)
|
||||
{
|
||||
var convDir = FindConversationDirectory(conversationId);
|
||||
|
|
|
|||
|
|
@ -683,6 +683,21 @@ public class MongoRepository : IBotSharpRepository
|
|||
_dc.Conversations.UpdateOne(filter, update);
|
||||
}
|
||||
|
||||
public void UpdateConversationStatus(string conversationId, string status)
|
||||
{
|
||||
if (string.IsNullOrEmpty(conversationId) || string.IsNullOrEmpty(status)) return;
|
||||
|
||||
var filter = Builders<ConversationCollection>.Filter.Eq(x => x.Id, conversationId);
|
||||
var foundConv = _dc.Conversations.Find(filter).FirstOrDefault();
|
||||
if (foundConv == null) return;
|
||||
|
||||
var update = Builders<ConversationCollection>.Update
|
||||
.Set(x => x.Status, status)
|
||||
.Set(x => x.UpdatedTime, DateTime.UtcNow);
|
||||
|
||||
_dc.Conversations.UpdateOne(filter, update);
|
||||
}
|
||||
|
||||
public Conversation GetConversation(string conversationId)
|
||||
{
|
||||
if (string.IsNullOrEmpty(conversationId)) return null;
|
||||
|
|
|
|||
Loading…
Reference in a new issue