public void AddTest()
 {
     CaseInsensitiveStringDictionary target = new CaseInsensitiveStringDictionary();
     string key = "kEybA2";
     string value = "value";
     target.Add(key, value);
     Assert.IsTrue(target.Count > 0);
 }
Ejemplo n.º 2
0
        public void AddTest()
        {
            CaseInsensitiveStringDictionary target = new CaseInsensitiveStringDictionary();
            string key   = "kEybA2";
            string value = "value";

            target.Add(key, value);
            Assert.IsTrue(target.Count > 0);
        }
 public void IndexerTest()
 {
     CaseInsensitiveStringDictionary target = new CaseInsensitiveStringDictionary();
     var key = "UIEasdh&/%%2222";
     var value = "foo";
     target.Add(key, value);
     Assert.IsTrue(target.Count > 0);
     Assert.IsTrue(target[key.ToUpper()] == value);
 }
Ejemplo n.º 4
0
        public void RemoveTest()
        {
            CaseInsensitiveStringDictionary target = new CaseInsensitiveStringDictionary();
            var key = "UIEasdh&/%%2222";

            target.Add(key, "foo");
            Assert.IsTrue(target.Count > 0);
            target.Remove(key.ToUpper());
            Assert.IsTrue(target.Count == 0);
        }
Ejemplo n.º 5
0
        public void IndexerTest()
        {
            CaseInsensitiveStringDictionary target = new CaseInsensitiveStringDictionary();
            var key   = "UIEasdh&/%%2222";
            var value = "foo";

            target.Add(key, value);
            Assert.IsTrue(target.Count > 0);
            Assert.IsTrue(target[key.ToUpper()] == value);
        }
 public void ContainsKeyTest()
 {
     CaseInsensitiveStringDictionary target = new CaseInsensitiveStringDictionary();
     var key = "UIEasdh&/%%2222";
     target.Add(key, "foo");
     var expected = true;
     var actual = target.ContainsKey(key)
         && target.ContainsKey(key.ToLower())
         && target.ContainsKey(key.ToUpper());
     Assert.AreEqual(expected, actual);
 }
Ejemplo n.º 7
0
        public void ContainsKeyTest()
        {
            CaseInsensitiveStringDictionary target = new CaseInsensitiveStringDictionary();
            var key = "UIEasdh&/%%2222";

            target.Add(key, "foo");
            var expected = true;
            var actual   = target.ContainsKey(key) &&
                           target.ContainsKey(key.ToLower()) &&
                           target.ContainsKey(key.ToUpper());

            Assert.AreEqual(expected, actual);
        }
        /// <summary>
        /// Take the full connection string and break it into is constituent parts
        /// </summary>
        /// <param name="self">The connection string itself</param>
        /// <returns>A dictionary of all the parts</returns>
        public static CaseInsensitiveStringDictionary <string> ConnectionStringParts(this string self)
        {
            var builder = new DbConnectionStringBuilder
            {
                ConnectionString = self.Replace("{", "\"").Replace("}", "\"")
            };

            var parts = new CaseInsensitiveStringDictionary <string>();

            foreach (string key in builder.Keys)
            {
                parts[key] = Convert.ToString(builder[key]);
            }
            return(parts);
        }
Ejemplo n.º 9
0
        public void Dialog(string category, string operation, string code, CaseInsensitiveStringDictionary args, string info = "")
        {
            var m = new Message
            {
                Category  = category,
                Operation = operation,
                Code      = code,
                Date      = DateTime.Now,
                Type      = SuppressedDialog ? SuppressedMessageType : MessageType.Dialog,
                Info      = info,
                Source    = MessageSource.Application
            };

            m.Args = args;

            Add(m);
        }
 public static string Get(this CaseInsensitiveStringDictionary <string> self, string key)
 {
     self.TryGetValue(key, out string value);
     return(value);
 }
 public static bool Contains(this CaseInsensitiveStringDictionary <string> self, string key)
 {
     return(self.ContainsKey(key) && !self[key].IsNullOrEmpty());
 }
 private static bool IsRollingIndex(CaseInsensitiveStringDictionary <string> parts)
 {
     return(parts.Contains(Keys.Rolling) && parts.Get(Keys.Rolling).ToBool());
 }
 public ElasticSearchUri(CaseInsensitiveStringDictionary <string> connectionStringParts)
 {
     this.connectionStringParts = connectionStringParts;
 }
 /// <summary>Initializes a new instance of the <see cref="RequestOptions"/> class.</summary>
 /// <param name="connectionStringParts">The connection string parts.</param>
 public RequestOptions(CaseInsensitiveStringDictionary <string> connectionStringParts)
 {
     this.connectionStringParts = connectionStringParts;
 }
 public void RemoveTest()
 {
     CaseInsensitiveStringDictionary target = new CaseInsensitiveStringDictionary();
     var key = "UIEasdh&/%%2222";
     target.Add(key, "foo");
     Assert.IsTrue(target.Count > 0);
     target.Remove(key.ToUpper());
     Assert.IsTrue(target.Count == 0);
 }
Ejemplo n.º 16
0
        protected void ContextPostExecute <TResponse, UData, VStatus, WRequest, TContext>(TContext context,
                                                                                          IDbCommand cmd, IDictionary <string, object> args, DbResult dbr)
            where TResponse : BaseServiceResponse <UData, VStatus>, new()
            where WRequest : class, IBaseServiceRequest, new()
            where TContext : BabbageContext <TResponse, UData, VStatus, WRequest>, new()
        {
            var responseType = context.Response.GetType();
            var _strategy    = context.Strategy as BaseServiceStrategy <TResponse, UData, VStatus, WRequest, TContext>;
            var strategyName = _strategy.Name;
            var serviceName  = _strategy.Store.Service.Name;

            if (dbr.Success)
            {
                var responseInfo = "";
                if (args.Count > 0)
                {
                    var babbageContext = context as BabbageContext <TResponse, UData, VStatus, WRequest>;

                    if (babbageContext != null)
                    {
                        foreach (var item in args.Where(x => x.Key != "Result" && x.Key != "Args" && x.Value != null && x.Value.GetType().IsCommandOutputParameterType()))
                        {
                            var cmdOut = item.Value as CommandOutputParameter;

                            if (!DBNull.Value.Equals(cmdOut.Value) && cmdOut.Value != null && babbageContext.OutputParameters.Count > 0 && babbageContext.OutputParameters.ContainsKey(item.Key))
                            {
                                if (cmdOut.Value.GetType() == TypeHelper.TypeOfGuid)
                                {
                                    babbageContext.OutputParameters[item.Key].Value = cmdOut.Value.ToString();
                                }
                                else
                                {
                                    babbageContext.OutputParameters[item.Key].Value = cmdOut.Value;
                                }
                            }

                            if (context.Log.Options.DebugMode)
                            {
                                responseInfo += (string.IsNullOrEmpty(responseInfo) ? "" : ", ") + item.Key + ": " + SafeClrConvert.ToString(cmdOut.Value);
                            }
                        }
                    }

                    var resProps = responseType.GetProperties(BindingFlags.Instance | BindingFlags.Public);

                    foreach (var prop in resProps)
                    {
                        if (prop.CanWrite && args.ContainsKey(prop.Name))
                        {
                            var value  = args[prop.Name];
                            var cmdOut = value as CommandOutputParameter;

                            if (cmdOut != null)
                            {
                                if (!DBNull.Value.Equals(cmdOut.Value) && cmdOut.Value != null)
                                {
                                    if (cmdOut.Value.GetType() == TypeHelper.TypeOfGuid)
                                    {
                                        prop.SetValue(context.Response, cmdOut.Value.ToString());
                                    }
                                    else
                                    {
                                        prop.SetValue(context.Response, cmdOut.Value);
                                    }
                                }

                                if (prop.CanRead && context.Log.Options.DebugMode)
                                {
                                    responseInfo += (string.IsNullOrEmpty(responseInfo) ? "" : ", ") + prop.Name + ": " + SafeClrConvert.ToString(cmdOut.Value);
                                }

                                continue;
                            }

                            var cmdIO = value as CommandInputOutputParameter;
                            if (cmdIO != null)
                            {
                                if (!DBNull.Value.Equals(cmdIO.Value) && cmdIO.Value != null)
                                {
                                    if (cmdIO.Value.GetType() == TypeHelper.TypeOfGuid)
                                    {
                                        prop.SetValue(context.Response, cmdIO.Value.ToString());
                                    }
                                    else
                                    {
                                        prop.SetValue(context.Response, cmdIO.Value);
                                    }
                                }

                                if (prop.CanRead && context.Log.Options.DebugMode)
                                {
                                    responseInfo += (string.IsNullOrEmpty(responseInfo) ? "" : ", ") + prop.Name + ": " + SafeClrConvert.ToString(cmdIO.Value);
                                }

                                continue;
                            }

                            prop.SetValue(context.Response, value);

                            if (prop.CanRead && context.Log.Options.DebugMode)
                            {
                                responseInfo += (string.IsNullOrEmpty(responseInfo) ? "" : ", ") + prop.Name + ": " + SafeClrConvert.ToString(value);
                            }
                        }
                    }

                    var responseData = context.Response.GetData();

                    if (responseData != null)
                    {
                        var resDataType = context.Response.GetDataType();

                        if (resDataType.IsClass ||
                            (resDataType.IsValueType && !resDataType.IsEnum && !resDataType.IsPrimitive))
                        {
                            var resDataProps = responseData.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);

                            foreach (var prop in resDataProps)
                            {
                                if (prop.CanWrite && args.ContainsKey(prop.Name))
                                {
                                    var value  = args[prop.Name];
                                    var cmdOut = value as CommandOutputParameter;

                                    if (cmdOut != null)
                                    {
                                        if (!DBNull.Value.Equals(cmdOut.Value) && cmdOut.Value != null)
                                        {
                                            if (cmdOut.Value.GetType() == TypeHelper.TypeOfGuid)
                                            {
                                                prop.SetValue(responseData, cmdOut.Value.ToString());
                                            }
                                            else
                                            {
                                                prop.SetValue(responseData, cmdOut.Value);
                                            }
                                        }
                                        continue;
                                    }

                                    var cmdIO = value as CommandInputOutputParameter;
                                    if (cmdIO != null)
                                    {
                                        if (!DBNull.Value.Equals(cmdIO.Value) && cmdIO.Value != null)
                                        {
                                            if (cmdIO.Value.GetType() == TypeHelper.TypeOfGuid)
                                            {
                                                prop.SetValue(responseData, cmdIO.Value.ToString());
                                            }
                                            else
                                            {
                                                prop.SetValue(responseData, cmdIO.Value);
                                            }
                                        }
                                        continue;
                                    }

                                    prop.SetValue(responseData, value);
                                }
                            }
                        }
                    }
                }

                context.Log.Debug(ServiceName, strategyName, "response_filtered", responseInfo);

                var status = SafeClrConvert.ToString((args["Result"] as CommandOutputParameter).Value);
                var _args  = SafeClrConvert.ToString((args["Args"] as CommandOutputParameter).Value);

                if (!context.Response.SetStatus(status))
                {
                    context.Log.Debug(ServiceName, strategyName, "InvalidStatus", status);
                }

                if (context.Response.IsFailed())
                {
                    try
                    {
                        var sqlError = JsonConvert.DeserializeObject <SqlError>(_args);
                        context.Log.Dialog(serviceName, strategyName, status, sqlError);
                    }
                    catch (Exception e)
                    {
                        context.Log.Danger(serviceName, strategyName, "SqlDeserializationError", e, MessageSource.Library, _args);
                    }
                }
                else
                {
                    CaseInsensitiveStringDictionary mArgs = null;

                    if (!string.IsNullOrEmpty(_args))
                    {
                        try
                        {
                            mArgs = JsonConvert.DeserializeObject <CaseInsensitiveStringDictionary>(_args);
                        }
                        catch (Exception e)
                        {
                            context.Log.Danger(serviceName, strategyName, "ArgsDeserializationError", e, MessageSource.Library, _args);
                        }
                    }
                    if (mArgs == null)
                    {
                        mArgs = new CaseInsensitiveStringDictionary();
                    }

                    context.Log.Dialog(serviceName, strategyName, status, mArgs);

                    if (context.Response.Success)
                    {
                        context.Response.Source = DataSource.Db;
                    }
                }
            }
            else
            {
                context.Response.Errored();

                context.Log.Dialog(serviceName, strategyName, context.Response.GetStatus(), dbr.Exception, MessageSource.Application);

                //Store.Service.Logger?.LogException(dbr.Exception, serviceName + "." + strategyName);
            }
        }