예제 #1
0
        public void LoadMultipleTable(MultiTableLoadData data)
        {
            System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            serializer.MaxJsonLength = int.MaxValue;

            Socket socket = buildSocket(SocketResourcePath + "/multiple_load/");

            socket.OnMessage += (sender, e) =>
            {
                SaveInfo info = deserializeSaveInfo(e.Data);
                if (info != null)
                {
                    if (LoadMultipleTableHandler != null)
                    {
                        System.Windows.Application.Current.Dispatcher.Invoke(() => LoadMultipleTableHandler(info, null));
                    }
                    if (info.isEnd)
                    {
                        socket.Close(CloseStatusCode.Normal);
                    }
                    return;
                }

                TableSaveIssue issue = deserializeIssue(e.Data);
                if (issue != null)
                {
                    System.Windows.Application.Current.Dispatcher.Invoke(() =>
                    {
                        ModelModificationDialog dialog = new ModelModificationDialog();
                        dialog.Display(this, issue);
                        dialog.ShowDialog();
                        issue       = dialog.tableSaveIssue;
                        string json = serializer.Serialize(issue);
                        socket.Send(json);
                    });
                    return;
                }
                logger.Debug("Recieve unreconized message : " + e.Data);
            };

            socket.OnOpen  += (sender, e) => { logger.Debug("Socket opened!"); };
            socket.OnError += (sender, e) => {
                logger.Debug("Socket error : " + e.Message);
            };
            socket.OnClose += (sender, e) => { logger.Debug("Socket closed : " + e.Reason); };

            socket.Connect();
            string text = serializer.Serialize(data);

            socket.Send(text);
        }
예제 #2
0
 public TableSaveIssue deserializeIssue(String json)
 {
     try {
         System.Web.Script.Serialization.JavaScriptSerializer Serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
         Serializer.MaxJsonLength = int.MaxValue;
         TableSaveIssue issue = Serializer.Deserialize <TableSaveIssue>(json);
         if (issue == null || issue.decision == null)
         {
             return(null);
         }
         return(issue);
     } catch (Exception e) {
         logger.Debug("Fail to deserialize issue!", e);
     }
     return(null);
 }
        public void Run(AutomaticSourcingData automaticData)
        {
            System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            serializer.MaxJsonLength = int.MaxValue;

            Socket socket = buildSocket(SocketResourcePath + "/Run/");

            socket.OnMessage += (sender, e) =>
            {
                SaveInfo info = deserializeSaveInfo(e.Data);
                if (info != null)
                {
                    if (SaveTableHandler != null)
                    {
                        System.Windows.Application.Current.Dispatcher.Invoke(() => SaveTableHandler(info, null));
                    }
                    if (info.isEnd)
                    {
                        socket.Close(CloseStatusCode.Normal);
                    }
                    return;
                }

                AutomaticSourcingData issue = deserializeAutomaticSourcingData(e.Data);
                if (issue != null && !issue.isLast)
                {
                    if (SaveTableHandler != null && issue.tableName != null)
                    {
                        System.Windows.Application.Current.Dispatcher.Invoke(() =>
                        {
                            if (buildTableNameEventHandler != null)
                            {
                                buildTableNameEventHandler(issue);
                                string json = serializer.Serialize(issue);
                                socket.Connect();
                                socket.Send(json);
                            }
                        }
                                                                             );
                    }
                }


                TableSaveIssue TableIssue = deserializeTableIssue(e.Data);
                if (TableIssue != null)
                {
                    if (SaveTableHandler != null)
                    {
                        System.Windows.Application.Current.Dispatcher.Invoke(() =>
                        {
                            if (OnUpdateUniverse != null)
                            {
                                OnUpdateUniverse(TableIssue, true);
                                if (TableIssue != null && TableIssue.targetItem != null)
                                {
                                    TableIssue.targetItem.attribute = null;
                                }
                                string json = serializer.Serialize(TableIssue);
                                socket.Connect();
                                socket.Send(json);
                            }
                        });
                    }
                }

                if (issue is Kernel.Domain.AutomaticSourcingData && issue.isLast)
                {
                    if (SaveTableHandler != null)
                    {
                        System.Windows.Application.Current.Dispatcher.Invoke(() => SaveTableHandler(null, issue));
                    }
                    return;
                }

                logger.Debug("Recieve text : " + e.Data);
            };

            socket.OnOpen  += (sender, e) => { logger.Debug("Socket opened!"); };
            socket.OnError += (sender, e) =>
            {
                logger.Debug("Socket error : " + e.Message);
            };
            socket.OnClose += (sender, e) =>
            {
                logger.Debug("Socket closed : " + e.Reason);
            };

            socket.Connect();
            string text = serializer.Serialize(automaticData);

            socket.Send(text);

            //item = base.Save(item);
            //return table.tableOid;
        }
예제 #4
0
        public override Misp.Kernel.Domain.InputTable Save(Misp.Kernel.Domain.InputTable item)
        {
            System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            serializer.MaxJsonLength = int.MaxValue;

            Socket socket = buildSocket(SocketResourcePath + "/Save/");

            socket.OnMessage += (sender, e) =>
            {
                SaveInfo info = deserializeSaveInfo(e.Data);
                if (info != null)
                {
                    if (SaveTableHandler != null)
                    {
                        System.Windows.Application.Current.Dispatcher.Invoke(() =>
                        {
                            if (SaveTableHandler != null)
                            {
                                SaveTableHandler(info, null);
                            }
                        }
                                                                             );
                    }
                    if (info.isEnd)
                    {
                        socket.Close(CloseStatusCode.Normal);
                    }
                    return;
                }

                TableSaveIssue issue = deserializeIssue(e.Data);
                if (issue != null)
                {
                    System.Windows.Application.Current.Dispatcher.Invoke(() =>
                    {
                        ModelModificationDialog dialog = new ModelModificationDialog();
                        dialog.Display(this, issue);
                        dialog.ShowDialog();
                        issue = dialog.tableSaveIssue;
                        if (issue != null && issue.targetItem != null)
                        {
                            issue.targetItem.attribute = null;
                        }
                        string json = serializer.Serialize(issue);
                        socket.Send(json);
                    });
                    return;
                }

                InputTable table = deserializeInputTable(e.Data);
                if (table != null)
                {
                    if (SaveTableHandler != null)
                    {
                        System.Windows.Application.Current.Dispatcher.Invoke(() =>
                        {
                            if (SaveTableHandler != null)
                            {
                                SaveTableHandler(null, table);
                            }
                        }
                                                                             );
                    }
                    return;
                }

                logger.Debug("Recieve text : " + e.Data);
            };

            socket.OnOpen  += (sender, e) => { logger.Debug("Socket opened!"); };
            socket.OnError += (sender, e) => {
                logger.Debug("Socket error : " + e.Message);
            };
            socket.OnClose += (sender, e) => {
                logger.Debug("Socket closed : " + e.Reason);
            };

            socket.Connect();
            socket.Send(item.name);

            //item = base.Save(item);
            return(item);
        }