private void BorrowReader(SqlDataReader reader)
        {
            Data = new Dictionary <string, IEnumerable <SubscriptionOwnership> >();
            var list = new Collection <SubscriptionOwnership>();

            while (reader.Read())
            {
                SubscriptionOwnership item = new SubscriptionOwnership();
                item.Id        = String.Intern(reader.GetString(0));
                item.Name      = String.Intern(reader.GetString(1));
                item.Isbn      = String.Intern(reader.GetString(2));
                item.ScopeId   = reader.GetInt32(3);
                item.StartDate = reader.GetDateTime(4);
                item.EndDate   = reader.GetDateTime(5);
                list.Add(item);
            }


            foreach (var subscription in list.ToLookup(t => t.Isbn))
            {
                Data.Add(subscription.Key, subscription);
            }
        }
        private void ProcessOtherRegionSubscription()
        {
            Dictionary <int, int> mappingLibraryId = new Dictionary <int, int>();

            using (SqlConnection cn = new SqlConnection(EtlServiceProvider.ConnectionStrings.SqlServer.trilogy))
            //using (SqlConnection cn = SqlConnectionProvider.GetConnection(EtlServiceProvider.ConnectionStrings.SqlServer.trilogy))
            {
                cn.Open();
                using (SqlCommand cmd = cn.CreateCommand())
                {
                    cmd.CommandType    = CommandType.Text;
                    cmd.CommandText    = "SELECT DISTINCT OneclickdigitallibraryId, EntityId FROM LibraryAccount(NOLOCK) WHERE OneClickdigitalLibraryID IS NOT NULL";
                    cmd.CommandTimeout = 3600;
                    using (SqlDataReader sqlreader = cmd.ExecuteReader())
                    {
                        while (sqlreader.Read())
                        {
                            var tenantId = sqlreader.GetInt32(0);
                            var entityId = sqlreader.GetInt32(1);
                            if (!mappingLibraryId.ContainsKey(tenantId))
                            {
                                mappingLibraryId.Add(tenantId, entityId);
                            }
                        }
                    }
                }
            }
            using (SqlConnection cn = new SqlConnection(EtlServiceProvider.ConnectionStrings.SqlServer.dpcore))
            //using (SqlConnection cn = SqlConnectionProvider.GetConnection("metl.destination.dpcore"))
            {
                cn.Open();
                using (SqlCommand cmd = cn.CreateCommand())
                {
                    cmd.CommandType    = CommandType.Text;
                    cmd.CommandText    = ResourceProvider.Get().GetString("Platform_Subscription");
                    cmd.CommandTimeout = 3600;
                    var mapCounter = 0;
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        Data = new Dictionary <string, IEnumerable <SubscriptionOwnership> >();
                        var list = new Collection <SubscriptionOwnership>();
                        while (reader.Read())
                        {
                            SubscriptionOwnership item = new SubscriptionOwnership();
                            item.Id   = String.Intern(reader.GetString(0));
                            item.Name = String.Intern(reader.GetString(1));
                            item.Isbn = String.Intern(reader.GetString(2));
                            var libraryId = reader.GetInt32(3);

                            item.ScopeId   = mappingLibraryId.ContainsKey(libraryId) ? mappingLibraryId[libraryId] : 0;
                            item.StartDate = reader.GetDateTime(4);
                            item.EndDate   = reader.GetDateTime(5);
                            list.Add(item);
                            if (mappingLibraryId.ContainsKey(libraryId))
                            {
                                mapCounter++;
                            }
                        }
                        Console.WriteLine("mapCounter " + mapCounter);
                        Console.WriteLine("Total subscription list count " + list.Count);

                        foreach (var subscription in list.ToLookup(t => t.Isbn))
                        {
                            Data.Add(subscription.Key, subscription);
                        }
                        Console.WriteLine("Data " + Data.Count);
                    }
                }
                IsInitialized = true;
            }
        }