示例#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
        protected void OnUpload(object sender, RoutedEventArgs e)
        {
            List <string> selectedFiles = new List <string>(0);

            foreach (Object item in this.Step1.ExcelFilesGrid.SelectedItems)
            {
                string name = ((FileInfo)item).FullName;
                if (ApplicationManager.Instance.ApplcationConfiguration.IsMultiuser())
                {
                    string path = System.IO.Path.GetDirectoryName(name) + System.IO.Path.DirectorySeparatorChar;
                    name = System.IO.Path.GetFileName(name);
                    this.InputTableService.FileService.FileTransferService.MultipleUploadTable(name, path);
                }
                selectedFiles.Add(name);
            }

            int selectedTableOID = ((InputTableBrowserData)Step2.TableGrid.SelectedItem).oid;

            if (Step3.GroupField.Group == null)
            {
                MessageDisplayer.DisplayInfo("Group ", "The groupe value cannot be empty");
            }

            if (Step3.GroupField.Group == null)
            {
                Step3.GroupField.Group = Step3.GroupField.GroupService.getDefaultGroup();
            }

            int groupOid = Step3.GroupField.Group.oid.Value;

            DisplayStep(4);

            MultiTableLoadData data = new MultiTableLoadData();

            data.templateOid = selectedTableOID;
            data.groupOid    = groupOid;
            data.excelFiles  = selectedFiles;

            InputTableService.LoadMultipleTableHandler += Update;
            InputTableService.LoadMultipleTable(data);
        }