Example #1
0
        /// <summary>
        /// Gets a db with a specified db identifier
        /// <para />
        /// If live data is required make sure to call LoadDatabases prior to calling this method
        /// </summary>
        /// <param name="dbIdentifier"></param>
        /// <returns></returns>
        public OrganizationDatabase GetDatabase(string dbIdentifier)
        {
            //Note:
            //org dbs data should have been decrypted by the UserConfigurationFilter
            var orgDb = Databases
                        ?.FirstOrDefault(db => db.Identifier == dbIdentifier);

            //If org db is not defined, it means it has not been overwritten at the core meta level, so create it off the web.config
            //as the default api db srv should be used in this scenario
            return(orgDb ?? OrganizationDatabase.CreateInstanceWithDefaultCredentials(Uuid, dbIdentifier));
        }
Example #2
0
        /// <summary>
        /// Creates a default instance of org db object and reads the orgs dbs credentials off the config (if present)
        /// </summary>
        /// <param name="orgId"></param>
        /// <param name="dbIdentifier"></param>
        /// <returns></returns>
        public static OrganizationDatabase CreateInstanceWithDefaultCredentials(Guid orgId, string dbIdentifier)
        {
            OrganizationDatabase defaultDb = null;

            try
            {
                var cfg = Cartomatic.Utils.NetCoreConfig.GetNetCoreConfig();

                defaultDb = !string.IsNullOrEmpty(ConfigurationManager.AppSettings["OrganizationsDatabase"])
                    ? JsonConvert.DeserializeObject <OrganizationDatabase>(ConfigurationManager.AppSettings["OrganizationsDatabase"])
                    : cfg?.GetSection("OrganizationsDatabase")?.Get <OrganizationDatabase>();

                defaultDb.OrganizationId = orgId;
                defaultDb.DbName         = $"mhorg_{orgId:N}"; //uuid without dashes
                defaultDb.Identifier     = dbIdentifier;
            }
            catch
            {
                //ignore
            }

            return(defaultDb);
        }