internal void RemoveEmptyCollectionValues()
        {
            try
            {
                var RemoveIndexs = new List <int>();

                for (int i = 0; i < WebRequestItems.Count; i++)
                {
                    WebRequestParamsItem WebRequestItem = WebRequestItems[i];

                    if (WebRequestItem != null && WebRequestItem.Key != null && WebRequestItem.Value != null)
                    {
                        if (WebRequestItem.Key.Trim() == string.Empty && WebRequestItem.Value.Trim() == string.Empty)
                        {
                            RemoveIndexs.Add(i);
                        }
                    }
                    else
                    {
                        RemoveIndexs.Add(i);
                    }
                }

                foreach (var ItemIndex in RemoveIndexs)
                {
                    WebRequestItems.RemoveAt(ItemIndex);
                }
            } catch { }
        }
        private void WebRequestParamsUpdate(MResponse ClientResponse, MNetworkClient NetworkClient)
        {
            if (!AccessController.IsPrivilege(NetworkClient, "requests.edit"))
            {
                return;
            }

            try
            {
                var RequestParamsItems = Package.Unpacking <MBinding_WebRequestSaver>(ClientResponse.DataBytes);

                using (var db = new DatabaseContext())
                {
                    var DbRequestParamsItems = new List <WebRequestParamsItem>();

                    foreach (var RequestParamsItem in RequestParamsItems.Params)
                    {
                        WebRequestParamsItem DbRequestParam = db.WebRequestParamsItems.FirstOrDefault
                                                                  (x => x.Id == RequestParamsItem.Id);

                        if (DbRequestParam != null)
                        {
                            DbRequestParam.Key         = RequestParamsItem.Key;
                            DbRequestParam.Value       = RequestParamsItem.Value;
                            DbRequestParam.Description = RequestParamsItem.Description;
                            db.SaveChanges();
                            DbRequestParamsItems.Add(DbRequestParam);
                        }
                        else
                        {
                            //if (db.WebRequestParamsItems.FirstOrDefault(x => x.Key == RequestParamsItem.Key) == null)
                            //{
                            DbRequestParam                  = RequestParamsItem;
                            DbRequestParam.Key              = (DbRequestParam.Key != null) ? DbRequestParam.Key : "";
                            DbRequestParam.Value            = (DbRequestParam.Value != null) ? DbRequestParam.Value : "";
                            DbRequestParam.Description      = (DbRequestParam.Description != null) ? DbRequestParam.Description : "";
                            DbRequestParam.WebRequestItemId = RequestParamsItems.Item.Id;

                            if (DbRequestParam.Key.Trim() != string.Empty || DbRequestParam.Value.Trim() != string.Empty)
                            {
                                db.WebRequestParamsItems.Add(DbRequestParam);
                                db.SaveChanges();
                                DbRequestParamsItems.Add(DbRequestParam);
                            }
                            //}
                        }
                    }

                    if (DbRequestParamsItems.Count != 0)
                    {
                        Sender.Broadcast("WebRequestParamsItem.Update.Confirm", DbRequestParamsItems.ToArray());
                    }
                }
            }
            catch (DbException ex)
            {
                Sender.Send(NetworkClient, "WebRequestParamsItem.Update.Error");
            }
        }
        internal void UpdateDataGrid_OnTextBox()
        {
            ObservableCollection <WebRequestParamsItem> Collection =
                GetLinkRequestToCollection.GetCollection(EditorRequestData.RequestLink);

            if (Collection != null)
            {
                WebRequestParamsItem[] CollectionArray;

                CollectionArray = WebRequestItems.ToArray();
                foreach (var WebRequestItem in Collection)
                {
                    if (WebRequestItem != null && WebRequestItem.Key != null)
                    {
                        WebRequestParamsItem GWebRequestItem = Array.Find(CollectionArray, x => x.Key == WebRequestItem.Key);

                        if (GWebRequestItem == null)
                        {
                            WebRequestItems.Add(WebRequestItem);
                        }
                        else
                        {
                            GWebRequestItem.Key   = WebRequestItem.Key;
                            GWebRequestItem.Value = WebRequestItem.Value;

                            DataGrid_FormRequestData.Items.Refresh();
                        }
                    }
                }

                CollectionArray = Collection.ToArray();
                var RemoveIndexs = new List <int>();
                for (int i = 0; i < WebRequestItems.Count; i++)
                {
                    WebRequestParamsItem RequestParamsItem = WebRequestItems[i];
                    if (RequestParamsItem != null && RequestParamsItem.Key != null)
                    {
                        if (!Array.Exists(CollectionArray, x => x.Key == RequestParamsItem.Key))
                        {
                            WebRequestItems.RemoveAt(i);
                            GeneralLogic.DataGrid_RemoveParamsById(RequestParamsItem.Id);
                        }
                    }
                }

                GeneralLogic.DataGrid_UpdateParamsBroadcast();
            }
            else
            {
                WebRequestItems.Clear();

                if (RequestDirectory != null)
                {
                    GeneralLogic.DataGrid_RemoveParamsAll(RequestDirectory.WebRequestId);
                }
            }
        }
        /// <summary>
        /// Обновляет список параметров запроса
        /// </summary>
        /// <param name="UC">EditorWebRequestControl</param>
        public static void RequestParamsUpdate_Confirm(EditorWebRequestControl UC)
        {
            NetworkDelegates.Add(delegate(MResponse ServerResponse)
            {
                if (UC.RequestDirectory == null)
                {
                    return;
                }

                var RequestParamsItems = Package.Unpacking <WebRequestParamsItem[]>(ServerResponse.DataBytes);

                for (int i = 0; i < RequestParamsItems.Length; i++)
                {
                    bool IsEdit = false;
                    WebRequestParamsItem ParamsItem = RequestParamsItems[i];

                    if (ParamsItem.WebRequestItemId != UC.RequestDirectory.WebRequestId)
                    {
                        return;
                    }

                    if (UC.WebRequestItems.Count != 0)
                    {
                        for (int k = 0; k < UC.WebRequestItems.Count; k++)
                        {
                            if (UC.WebRequestItems[k].Id == ParamsItem.Id ||
                                UC.WebRequestItems[k].Key == ParamsItem.Key)
                            {
                                UC.WebRequestItems[k] = ParamsItem;
                                IsEdit = true;
                                break;
                            }
                        }

                        if (!IsEdit)
                        {
                            UC.WebRequestItems.Add(ParamsItem);
                        }
                    }
                }

                //UC.WebRequestItems = new ObservableCollection<WebRequestParamsItem>(RequestParamsItems);
                //UC.DataGrid_FormRequestData.Items.Refresh();
            }, UC.Dispatcher, -1, "WebRequestParamsItem.Update.Confirm", UC.GeneralLogic.UserControl_Uid, true);
        }
        private static ObservableCollection <WebRequestParamsItem> CutEqualMark(string[] NbspArrayCut)
        {
            ObservableCollection <WebRequestParamsItem> WebRequestItems = new ObservableCollection <WebRequestParamsItem>();

            for (int i = 0; i < NbspArrayCut.Length; i++)
            {
                string EqualItem = NbspArrayCut[i];
                int    EqualMark = EqualItem.IndexOf('=');

                if (EqualItem.Length != 1)
                {
                    if (EqualMark != -1)
                    {
                        string[] Cuts = EqualItem.Split('=');

                        var WebRequestItem = new WebRequestParamsItem();

                        if (Cuts[0].Trim() != string.Empty)
                        {
                            WebRequestItem.Key   = (Cuts[0].Trim() != string.Empty) ? Cuts[0] : "";
                            WebRequestItem.Value = (Cuts[1].Trim() != string.Empty) ? Cuts[1] : "";

                            WebRequestItems.Add(WebRequestItem);
                        }
                    }
                    else
                    {
                        var WebRequestItem = new WebRequestParamsItem();
                        WebRequestItem.Key   = EqualItem;
                        WebRequestItem.Value = "";

                        WebRequestItems.Add(WebRequestItem);
                    }
                }
            }

            return((WebRequestItems.Count == 0) ? null : WebRequestItems);
        }
Example #6
0
        public static WebResponseTemplate Send(string Method, string Link,
                                               ObservableCollection <WebRequestParamsItem> FormRequestsData = null)
        {
            var WebResponse = new WebResponseTemplate();

            // Создать объект запроса
            //var request = WebRequest.Create(Link);
            var request = (HttpWebRequest)WebRequest.Create(Link);

            request.Method = Method;
            if (Method != "GET")
            {
                request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
                if (FormRequestsData != null)
                {
                    string RequestParams = "";

                    for (int i = 0; i < FormRequestsData.Count; i++)
                    {
                        WebRequestParamsItem ParamsItem = FormRequestsData[i];
                        if (i == FormRequestsData.Count - 1)
                        {
                            RequestParams += $"{ParamsItem.Key}={ParamsItem.Value}";
                        }
                        else
                        {
                            RequestParams += $"{ParamsItem.Key}={ParamsItem.Value}&";
                        }
                    }

                    byte[] DataStream = Encoding.UTF8.GetBytes(RequestParams);
                    request.ContentLength = DataStream.Length;

                    using (var stream = request.GetRequestStream())
                        stream.Write(DataStream, 0, DataStream.Length);
                }
            }

            try
            {
                // Получить ответ с сервера
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                // Получаем поток данных из ответа
                using (var reader = new StreamReader(response.GetResponseStream()))
                    WebResponse.Response = reader.ReadToEnd();

                WebResponse.Info = GetResponseInfo(request, response);
            }
            catch (WebException ex)
            {
                if (ex.Response != null)
                {
                    using (StreamReader stream = new StreamReader(ex.Response.GetResponseStream()))
                        WebResponse.Response = stream.ReadToEnd();
                }

                WebResponse.Info = GetResponseInfo(request, ex.Response);
            }

            return(WebResponse);
        }