Esempio n. 1
0
        public async Task <bool> LoadChatFlowAsync(string projectId)
        {
            if (ChatFlowProjects != null && ChatFlowProjects.Any(x => x._id == projectId))
            {
                var chatFlowResp = await Hit <DataResponse <ChatFlowPack> >(FetchChatFlowPackAPI.Replace("{projectId}", projectId), true);

                if (chatFlowResp.Status)
                {
                    ChatFlow = chatFlowResp.Data;
                    ChatFlowBuilder.Build(ChatFlow);
                    return(true);
                }
            }
            return(false);
        }
Esempio n. 2
0
        public (bool, string) LoadChatFlowProject()
        {
            try
            {
                if (!string.IsNullOrWhiteSpace(ProjectFilePath))
                {
                    var rawProjectJson = File.ReadAllText(ProjectFilePath);
                    ChatFlow = BsonSerializer.Deserialize <ChatFlowPack>(rawProjectJson);
                }
                else
                {
                    var firstNode = new ChatNode {
                        Name = "New Node"
                    };
                    firstNode.Id = ObjectId.GenerateNewId().ToString();

                    ChatFlow = new ChatFlowPack
                    {
                        ChatNodes     = new List <ChatNode>(new[] { firstNode }),
                        ChatContent   = new List <Models.BaseContent>(),
                        NodeLocations = new Dictionary <string, Models.LayoutPoint> {
                            { firstNode.Id, new Models.LayoutPoint {
                                  X = 500, Y = 500
                              } }
                        }
                    };
                }
                LastChatFlowSavedHash = Utilities.GenerateHash(ChatFlow.ToJson());
                ChatFlowBuilder.Build(ChatFlow);
                return(true, "");
            }
            catch (Exception ex)
            {
                return(false, ex.Message);
            }
        }
Esempio n. 3
0
 public List <ChatNode> GetCompiledProject()
 {
     return(ChatFlowBuilder.Build(ChatFlow));
 }