Exemple #1
0
        /// <summary>
        /// Creates an instance of the registered object.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="lookupObject"></param>
        /// <returns></returns>
        private object Resolve(LookupObject lookupObject)
        {
            if (lookupObject.IsIstantiated && lookupObject.RegistrationType == RegistrationType.Singleton)
            {
                return(lookupObject.Instance);
            }

            //create an instance of the object
            var instance = InstanceConstructor(lookupObject.InstanceType);

            //save instance for singletons
            if (lookupObject.RegistrationType == RegistrationType.Singleton)
            {
                lookupObject.Instance      = instance;
                lookupObject.IsIstantiated = true;
            }

            return(instance);
        }
Exemple #2
0
        /// <summary>
        /// Gets put object and unwraps json objects
        /// </summary>
        /// <param name="recObj"></param>
        /// <param name="schema"></param>
        /// <returns></returns>
        private Dictionary <string, object> GetPutObject(Dictionary <string, object> recObj, Schema schema)
        {
            var putObj = new Dictionary <string, object>();

            foreach (var property in schema.Properties)
            {
                var key = property.Id;
                if (recObj.ContainsKey(key))
                {
                    if (recObj[key] == null)
                    {
                        continue;
                    }

                    var rawValue = recObj[key];
                    switch (property.Type)
                    {
                    case PropertyType.String:
                        try
                        {
                            var lookupMetaJson =
                                JsonConvert.DeserializeObject <LookupMetaJson>(property.PublisherMetaJson);

                            if (lookupMetaJson.IsLookup)
                            {
                                try
                                {
                                    var lookupObj =
                                        JsonConvert.DeserializeObject <Dictionary <string, object> >(
                                            rawValue.ToString());
                                    putObj.Add(key, lookupObj);
                                }
                                catch (Exception)
                                {
                                    var lookupObj = new LookupObject
                                    {
                                        Id = rawValue.ToString()
                                    };
                                    putObj.Add(key, lookupObj);
                                }

                                break;
                            }
                        }
                        catch (Exception)
                        {
                        }

                        putObj.Add(key, rawValue);
                        break;

                    case PropertyType.Json:
                        var valueString = JsonConvert.SerializeObject(rawValue);
                        var dataObj     = JsonConvert.DeserializeObject <ReadRecordObject>(valueString);
                        if (dataObj != null)
                        {
                            putObj.Add(key, dataObj.Data);
                        }

                        break;

                    default:
                        putObj.Add(key, rawValue);
                        break;
                    }
                }
            }

            return(putObj);
        }