private void ChatSendMessage()
        {
            string Message = TextBox_Message.Text;

            if (Message.Trim() != string.Empty)
            {
                Chat PreMessage = new Chat();
                PreMessage.Message   = Message;
                PreMessage.ProjectId = ProjectData.SelectedProject.Id;

                if (!Sender.SendToServer("Chat.Messages.New", PreMessage))
                {
                    new AlertWindow("Ошибка", AlertWindow.AlertCode.SendToServer);
                }
                else
                {
                    TextBox_Message.IsEnabled = false;
                    Button_Send.IsEnabled     = false;

                    MessageDelay = CustomTimer.Create((object sender, EventArgs e) =>
                    {
                        new AlertWindow("Ошибка", "Превышено время ожидания ответа от сервера. Сообщение не отправлено.",
                                        () =>
                        {
                            if (this != null)
                            {
                                TextBox_Message.IsEnabled = true;
                                Button_Send.IsEnabled     = true;
                            }
                        });
                    }, new TimeSpan(0, 0, 3));
                }
            }
        }
        /// <summary>
        /// Конструктор редактора.
        /// </summary>
        /// <param name="TabItemView">Собственный TAB компонент</param>
        public void Construct(HeaderedItemViewModel TabItemView)
        {
            this.TabItemView        = TabItemView;
            GeneralLogic.HeaderName = TabItemView.Header.ToString();

            Start();
            WindowActions();

            CustomTimer.Create(delegate(object sender, EventArgs e)
            {
                GeneralLogic.RequestMethod_SetComboBoxItem(ComboBox_RequestType);

                if (RequestDirectory != null)
                {
                    int NetworkUid = Guid.NewGuid().GetHashCode();

                    GeneralLogic.LoadRequestDirectory(this, NetworkUid);
                    LEditorNetworkActions.RequestParamsItemsGet_Confirm(this, NetworkUid);
                }
                else
                {
                    GeneralLogic.SetHeaderName(TabItemView);
                }
            }, new TimeSpan(0, 0, 0, 0, 500));
        }
        private void TextBox_RequestLink_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (!TextBox_RequestLink.IsReadOnly)
            {
                if (TextBox_RequestLink.IsFocused && RequestDirectory != null)
                {
                    var RequestItem = new WebRequestItem();
                    RequestItem.Id   = RequestDirectory.WebRequestId;
                    RequestItem.Link = GeneralLogic.RequestLink;

                    Sender.SendToServer("WebRequestItem.Update.Link", RequestItem);
                }

                if (TextBox_RequestLink.IsFocused && GeneralLogic.RequestMethod == "GET")
                {
                    if (Timer_EditorRequestData_PropertyChanged != null && Timer_EditorRequestData_PropertyChanged.IsEnabled)
                    {
                        Timer_EditorRequestData_PropertyChanged.Stop();
                    }

                    Timer_EditorRequestData_PropertyChanged = CustomTimer.Create(delegate(object sender, EventArgs e)
                    {
                        if (GeneralLogic.RequestMethod != "GET")
                        {
                            return;
                        }

                        UpdateDataGrid_OnTextBox();
                    }, new TimeSpan(0, 0, 1));
                }
            }
        }
        /// <summary>
        /// Устанавливает новый метод в списке методов запроса
        /// </summary>
        /// <param name="UC">EditorWebRequestControl</param>
        public static void MethodUpdate_Confirm(EditorWebRequestControl UC)
        {
            NetworkDelegates.Add(delegate(MResponse ServerResponse)
            {
                if (UC.RequestDirectory == null)
                {
                    return;
                }

                var RequestItem = Package.Unpacking <WebRequestItem>(ServerResponse.DataBytes);

                if (RequestItem.Id != UC.RequestDirectory.WebRequestId)
                {
                    return;
                }

                if (RequestItem.Method != UC.GeneralLogic.RequestMethod)
                {
                    TimerLocker_MethodUpdate?.Stop();

                    UC.TextBox_RequestLink.IsReadOnly  = true;
                    UC.ComboBox_RequestType.IsReadOnly = true;
                    UC.ComboBox_RequestType.IsEnabled  = false;

                    TimerLocker_MethodUpdate = CustomTimer.Create(delegate(object sender, EventArgs e)
                    {
                        UC.Dispatcher.Invoke(() =>
                        {
                            UC.ComboBox_RequestType.IsEnabled = true;
                            UC.TextBox_RequestLink.IsReadOnly = false;
                            UC.TextBox_RequestLink.IsReadOnly = false;
                        });
                    }, new TimeSpan(0, 0, 1));

                    int Index = UC.ComboBox_RequestType.Items.IndexOf(RequestItem.Method);
                    if (Index != -1 && UC.ComboBox_RequestType.SelectedIndex != Index)
                    {
                        UC.ComboBox_RequestType.SelectedIndex = Index;
                        UC.GeneralLogic.RequestMethod_SetComboBoxItem(UC.ComboBox_RequestType);

                        for (int i = 0; i < UC.VirtualRequestDirs.Count; i++)
                        {
                            ModelRequestDirectory RequestDirItem = UC.VirtualRequestDirs[i];
                            if (RequestDirItem.WebRequestId == RequestItem.Id)
                            {
                                RequestDirItem.RequestMethod = RequestItem.Method;
                                UC.VirtualRequestDirs[i]     = RequestDirItem;
                                break;
                            }
                        }

                        UC.ListView_WebRequests.Items.Refresh();
                    }
                }
            }, UC.Dispatcher, -1, "WebRequestItem.Update.Method.Confirm", UC.GeneralLogic.UserControl_Uid, true);
        }
        /// <summary>
        /// Обновляет строку с ссылкой
        /// </summary>
        /// <param name="UC">EditorWebRequestControl</param>
        public static void LinkUpdate_Confirm(EditorWebRequestControl UC)
        {
            NetworkDelegates.Add(delegate(MResponse ServerResponse)
            {
                if (UC.RequestDirectory == null)
                {
                    return;
                }

                var RequestItem = Package.Unpacking <WebRequestItem>(ServerResponse.DataBytes);

                if (RequestItem.Id != UC.RequestDirectory.WebRequestId)
                {
                    return;
                }

                TimerLocker_LinkUpdate?.Stop();

                UC.TextBox_RequestLink.IsReadOnly = true;
                UC.TextBox_RequestLink.IsEnabled  = false;

                TimerLocker_LinkUpdate = CustomTimer.Create(delegate(object sender, EventArgs e)
                {
                    UC.Dispatcher.Invoke(() =>
                    {
                        UC.TextBox_RequestLink.IsEnabled  = true;
                        UC.TextBox_RequestLink.IsReadOnly = false;
                    });
                }, new TimeSpan(0, 0, 1));

                UC.EditorRequestData.RequestLink = RequestItem.Link;

                for (int i = 0; i < UC.VirtualRequestDirs.Count; i++)
                {
                    ModelRequestDirectory RequestDirItem = UC.VirtualRequestDirs[i];
                    if (RequestDirItem.WebRequestId == RequestItem.Id)
                    {
                        RequestDirItem.WebRequest = RequestItem.Link;
                        //RequestDirItem.RequestMethod = RequestItem.Method;

                        UC.VirtualRequestDirs[i] = RequestDirItem;
                        break;
                    }
                }

                //UC.UpdateDataGrid_OnTextBox();
            }, UC.Dispatcher, -1, "WebRequestItem.Update.Link.Confirm", UC.GeneralLogic.UserControl_Uid, true);
        }
        public void SetHistory(WebRequestHistory HistoryItem)
        {
            CustomTimer.Create(delegate(object sender, EventArgs e)
            {
                GeneralLogic.IsCopy = true;

                EditorRequestData.RequestLink      = HistoryItem.Link;
                ComboBox_RequestType.SelectedIndex = ComboBox_RequestType.Items.IndexOf(HistoryItem.Method);

                GeneralLogic.SetViews(HistoryItem.ResponseResult);

                var RequestParams = JsonConvert.DeserializeObject <WebRequestParamsItem[]>(HistoryItem.ParametrsInJson);

                Debug.Log("RequestParams - " + RequestParams.Length);

                foreach (var ItemParam in RequestParams)
                {
                    WebRequestItems.Add(ItemParam);
                }
            }, new TimeSpan(0, 0, 0, 0, 300));
        }
Exemplo n.º 7
0
        private void ButtonClick_UserDelete(object sender, RoutedEventArgs e)
        {
            new ConfirmWindow("Предупреждение", "Вы уверены что хотите удалить элемент?", delegate()
            {
                WUser DataUser = (sender as Button).DataContext as WUser;

                if (Sender.SendToServer("Users.Delete", DataUser.Id))
                {
                    DataGrid_Users.IsEnabled = false;

                    ServerResponseDelay = CustomTimer.Create(delegate(object sender, EventArgs e)
                    {
                        ServerResponseDelay = null;

                        new AlertWindow("Ошибка", "Время ожидания ответа от сервера истекло.",
                                        () => DataGrid_Users.IsEnabled = true);
                    }, new TimeSpan(0, 0, 5), true);
                }
                else
                {
                    new AlertWindow("Ошибка", AlertWindow.AlertCode.SendToServer);
                }
            });
        }
        private void ButtonClick_DeleteProject(object sender, RoutedEventArgs e)
        {
            new ConfirmWindow("Предупреждение", "Вы уверены что хотите удалить элемент?", delegate()
            {
                Project TGroup = (sender as Button).DataContext as Project;

                if (Sender.SendToServer("Project.Delete", TGroup))
                {
                    DataGrid_Projects.IsEnabled = false;

                    ServerResponseDelay = CustomTimer.Create(delegate(object sender, EventArgs e)
                    {
                        ServerResponseDelay = null;

                        new AlertWindow("Ошибка", AlertWindow.AlertCode.SendToServer,
                                        () => DataGrid_Projects.IsEnabled = true);
                    }, new TimeSpan(0, 0, 5), true);
                }
                else
                {
                    new AlertWindow("Ошибка", AlertWindow.AlertCode.SendToServer);
                }
            });
        }