Exemplo n.º 1
0
        public void GetDifferences_Diff()
        {
            QueryData target = new QueryData();
            QueryData obj    = new QueryData();

            target.Add(new object[] { "a", 1, "c" });
            obj.Add(new object[] { "a", 1, "c" });

            target.Add(new object[] { "x", 2, "z" });
            obj.Add(new object[] { "x", 2, "a" });

            Assert.AreEqual(1, target.GetDifferences(obj).Count());
        }
Exemplo n.º 2
0
        private void ParseQueryParameters()
        {
            if (!Url.Contains('?'))
            {
                return;
            }

            string queryString = Url.Split(new[] { '?', '#' }, StringSplitOptions.None)[1];

            if (string.IsNullOrWhiteSpace(queryString))
            {
                return;
            }

            string[] queryParameters = queryString.Split('&');

            if (!IsValidRequestQueryString(queryString, queryParameters))
            {
                throw new BadRequestException();
            }

            foreach (string queryParameter in queryParameters)
            {
                string[] parameterArguments = queryParameter.Split('=', StringSplitOptions.RemoveEmptyEntries);

                QueryData.Add(parameterArguments[0], parameterArguments[1]);
            }
        }
Exemplo n.º 3
0
        private void ParseQueryParameters()
        {
            //string queryString = this.Url
            //    .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[1];

            string[] querySplit = this.Url
                                  .Split(new[] { '?', '#' }, StringSplitOptions.None);

            if (querySplit.Length == 1)
            {
                return;
            }

            if (!IsValidRequestQueryString(querySplit[1]))
            {
                throw new BadRequestException();
            }

            string[] queryObjects = querySplit[1]
                                    .Split(new[] { '&' }, StringSplitOptions.None);

            foreach (var obj in queryObjects)
            {
                string[] objParams = obj.Split(new[] { '=' }, StringSplitOptions.None);

                string key   = objParams[0];
                string value = objParams[1];

                QueryData.Add(key, value);
            }
        }
Exemplo n.º 4
0
 public async Task<QueryData> SQLSendQueryFromCommandAsync(SqlCommand command)
 {
     int attempts = _maxAttempts;
     using (var conn = new SqlConnection(_cnnstr))
     {
         while (attempts-- > 0)
         {
             try
             {
                 await conn.OpenAsync().ConfigureAwait(false);
                 var data = new QueryData();
                 command.Connection = conn;
                 using var adapter = new SqlDataAdapter
                 {
                     SelectCommand = command
                 };
                 using var dataset = new DataSet();
                 adapter.Fill(dataset);
                 foreach (DataTable table in dataset.Tables)
                 {
                     var newtable = new List<Dictionary<string, object>>();
                     foreach (DataRow row in table.Rows)
                     {
                         var newrow = new Dictionary<string, object>();
                         foreach (DataColumn column in table.Columns)
                         {
                             newrow.Add(column.ColumnName, row[column]);
                         }
                         newtable.Add(newrow);
                     }
                     data.Add(newtable);
                 }
                 return data;
             }
             catch (SqlException sql_ex)
             {
                 if (sql_ex.Number == -2)
                 {
                     await Task.Delay(1000).ConfigureAwait(false);
                     continue;
                 }
                 _logger.LogWarning($"sql exception: {sql_ex.Message}");
                 throw;
             }
             catch (Exception ex)
             {
                 _logger.LogWarning($"data exception: {ex.Message}");
                 throw;
             }
         }
     }
     _logger.LogWarning("default returned");
     return default;
 }
Exemplo n.º 5
0
 private void ParseQueryData(string requestQuery)
 {
     if (IsValidRequestQuery(requestQuery))
     {
         string[] queryParameters = requestQuery.TrimStart('?').Split('&');
         foreach (var queryParameter in queryParameters)
         {
             string[] queryParameterArgs = queryParameter.Split('=');
             string   queryParameterKey  = queryParameterArgs[0];
             QueryData.Add(queryParameterKey, queryParameter);
         }
     }
 }
Exemplo n.º 6
0
	private void ParseQueryData(string requestQuery)
	{
	    if (IsValidRequestQuery(requestQuery))
	    {
		var queryParameters = requestQuery.TrimStart('?')
		    .Split('&').Select(p => WebUtility.UrlDecode(p));
		foreach (var queryParameter in queryParameters)
		{
		    string[] queryParameterArgs = queryParameter.Split('=', 2);
		    string queryParameterKey = queryParameterArgs[0];
		    string queryParameterValue = queryParameterArgs[1];
		    QueryData.Add(queryParameterKey, queryParameterValue);
		}
	    }
	}
Exemplo n.º 7
0
        private void ParseQueryParameters()
        {
            string[] splitUrl = Url.Split('?', StringSplitOptions.None);

            if (splitUrl.Length > 1)
            {
                string   querryString     = splitUrl[1];
                string[] querryParameters = querryString.Split('&');
                this.IsValidRequestQueryString(querryString, querryParameters);

                foreach (var parameter in querryParameters)
                {
                    string parameterName  = parameter.Split('=')[0];
                    string parameterValue = parameter.Split('=')[1];

                    QueryData.Add(parameterName, parameterValue);
                }
            }
        }
Exemplo n.º 8
0
        private void ParseQueryParameters()
        {
            string queryString = this.Url.Split(new[] { '#', '?' }, StringSplitOptions.None).Length > 1 ? this.Url.Split(new[] { '#', '?' }, StringSplitOptions.None)[1] : null;


            if (!string.IsNullOrEmpty(queryString))
            {
                string[] queryParameters = queryString.Split('&').ToArray();

                if (!IsValidRequestQueryString(queryString, queryParameters))
                {
                    throw new BadRequestException();
                }

                foreach (string parameter in queryParameters)
                {
                    QueryData.Add(parameter.Split('=')[0], parameter.Split('=')[1]);
                }
            }
        }
Exemplo n.º 9
0
        private void ParseRequestQueryParameters()
        {
            if (this.HasQueryString())
            {
                var parameters = this.Url.Split('?', '#')[1]
                                 .Split('&')
                                 .Select(plainQueryParameter => plainQueryParameter.Split('='))
                                 .ToList();

                foreach (var parameter in parameters)
                {
                    if (!QueryData.ContainsKey(parameter[0]))
                    {
                        QueryData.Add(parameter[0], new HashSet <string> {
                            (parameter[1])
                        });
                    }

                    QueryData[parameter[0]].Add(WebUtility.UrlDecode(parameter[1]));
                }
            }
        }
Exemplo n.º 10
0
        public virtual QueryData Query(string query)
        {
            QueryData data = new QueryData();

            _command.CommandText = query;
            System.Data.Common.DbDataReader reader = _command.ExecuteReader();

            while (reader.Read())
            {
                Objects.DbObject row = new Objects.RowObject();
                for (int loop = 0; loop < reader.FieldCount; loop++)
                {
                    string name = reader.GetName(loop);
                    row.Data.Add(name, reader[loop]);
                }

                data.Add(row);
            }

            reader.Close();
            return(data);
        }
Exemplo n.º 11
0
 public async Task<Tresult> SQLSendQueryAsync<Tresult>(string command, SqlParameters parameters, string database = null)
   {
       int attempts = _maxAttempts;
       if (database != null)
           command = command.Replace("dbo", database + ".dbo");
       using (var conn = new SqlConnection(_cnnstr))
       using (var cmd = new SqlCommand(command, conn))
       {
           while (attempts-- > 0)
           {
               try
               {
                   await conn.OpenAsync().ConfigureAwait(false);
                   if (parameters != null)
                   {
                       foreach (var parameter in parameters)
                       {
                           cmd.Parameters.Add(new SqlParameter(parameter.Key, parameter.Value));
                       }                            
                   }
                   if (typeof(Tresult) == typeof(bool))
                   {
                       return (Tresult)(object)(await cmd.ExecuteNonQueryAsync().ConfigureAwait(false) > 0);
                   }
                   if (typeof(Tresult) == typeof(int))
                   {
                       return (Tresult)(await cmd.ExecuteScalarAsync().ConfigureAwait(false) ?? 0);
                   }
                   if (typeof(Tresult) == typeof(QueryData))
                   {
                       var data = new QueryData();
                       using (var adapter = new SqlDataAdapter(cmd))
                       using (var dataset = new DataSet())
                       {
                           adapter.Fill(dataset);
                           foreach (DataTable table in dataset.Tables)
                           {
                               var newtable = new List<Dictionary<string, object>>();
                               foreach (DataRow row in table.Rows)
                               {
                                   var newrow = new Dictionary<string, object>();
                                   foreach (DataColumn column in table.Columns)
                                   {
                                       newrow.Add(column.ColumnName, row[column]);
                                   }
                                   newtable.Add(newrow);
                               }
                               data.Add(newtable);
                           }
                       }
                       return (Tresult)(object)data;
                   }
               }
               catch (SqlException sql_ex)
               {
                   if (sql_ex.Number == -2)
                   {
                       await Task.Delay(1000).ConfigureAwait(false);
                       continue;
                   }
                   _logger.LogWarning($"sql exception: {sql_ex.Message}");
                   throw;
               }
               catch (Exception ex)
               {
                   _logger.LogWarning($"data exception: {ex.Message}");
                   throw;
               }
           }
       }
       _logger.LogWarning("default returned");
       return default;
   }