/// <summary>
        /// Initialises the configuration database.
        /// </summary>
        /// <param name="configurationDbContext">The configuration database context.</param>
        /// <param name="seedingType">Type of the seeding.</param>
        public static void InitialiseConfigurationDatabase(ConfigurationDbContext configurationDbContext,
                                                           SeedingType seedingType)
        {
            Boolean isDbInitialised = false;
            Int32   retryCounter    = 0;

            while (retryCounter < 20 && !isDbInitialised)
            {
                try
                {
                    if (configurationDbContext.Database.IsSqlServer())
                    {
                        configurationDbContext.Database.Migrate();
                    }

                    DatabaseSeeding.AddClients(configurationDbContext, seedingType);
                    DatabaseSeeding.AddApiResources(configurationDbContext, seedingType);
                    DatabaseSeeding.AddIdentityResources(configurationDbContext, seedingType);

                    //configurationDbContext.SaveChanges();

                    isDbInitialised = true;
                    break;
                }
                catch (Exception ex)
                {
                    retryCounter++;
                    Thread.Sleep(10000);
                }
            }

            if (!isDbInitialised)
            {
                String connString = configurationDbContext.Database.GetDbConnection().ConnectionString;

                Exception newException = new Exception($"Error initialising Db with Connection String [{connString}]");
                throw newException;
            }
        }
        /// <summary>
        /// Initialises the authentication database.
        /// </summary>
        /// <param name="authenticationDbContext">The authentication database context.</param>
        /// <param name="seedingType">Type of the seeding.</param>
        public static void InitialiseAuthenticationDatabase(AuthenticationDbContext authenticationDbContext,
                                                            SeedingType seedingType)
        {
            Boolean isDbInitialised = false;
            Int32   retryCounter    = 0;

            while (retryCounter < 20 && !isDbInitialised)
            {
                try
                {
                    if (authenticationDbContext.Database.IsSqlServer())
                    {
                        authenticationDbContext.Database.Migrate();
                    }

                    DatabaseSeeding.AddRoles(authenticationDbContext, seedingType);
                    DatabaseSeeding.AddUsers(authenticationDbContext, seedingType);
                    DatabaseSeeding.AddUsersToRoles(authenticationDbContext, seedingType);

                    authenticationDbContext.SaveChanges();

                    isDbInitialised = true;
                    break;
                }
                catch (Exception ex)
                {
                    retryCounter++;
                    Thread.Sleep(10000);
                }
            }

            if (!isDbInitialised)
            {
                String connString = authenticationDbContext.Database.GetDbConnection().ConnectionString;

                Exception newException = new Exception($"Error initialising Db with Connection String [{connString}]");
                throw newException;
            }
        }