/// <summary>
 /// Initialises a <see cref="QuickBloxConfiguration"/> instance.
 /// </summary>
 /// <param name="quickBloxConfiguration">Configuration information for connecting to QuickBlox and information about custom object endpoints.</param>
 /// <param name="eventToCustomObjectMappings">A key-value collection for the relation between QuickBlox custom objects and Hyperion events. <see cref="HyperionConfiguration"/> may have such collection.</param>
 public QuickBloxConfiguration(IQuickBloxConfiguration quickBloxConfiguration, IDictionary<Type, string> eventToCustomObjectMappings)
 {
     this.eventToCustomObjectMappings = eventToCustomObjectMappings;
     configuration = quickBloxConfiguration;
 }
 internal QuickBloxSessionFactory(IQuickBloxConfiguration configuration, IDictionary<Type, string> eventToCustomObjectMappings)
 {
     this.eventToCustomObjectMappings = eventToCustomObjectMappings;
     eventIdToEventTypeMappings = eventToCustomObjectMappings.ToDictionary(x => new Guid((x.Key.GetCustomAttributes(false).Where(y => y.GetType() == typeof(DataContractAttribute)).FirstOrDefault() as DataContractAttribute).Name), z => z.Key);
     this.configuration = configuration;
 }