using System.Linq; using AyaNova.Models; namespace AyaNova.Util { /// /// Contains static mirror copy in memory of global settings values that are set from DB during boot /// and accessible to Biz admin user (equivalent of v7's global object) /// used by many areas of the biz logic and processing too often to fetch on every request /// set at boot and on any update to the db global biz settings record /// internal static class ServerGlobalBizSettings { internal static bool SearchCaseSensitiveOnly { get; set; } internal static bool UseInventory { get; set; } //TAX CODE DEFAULTS internal static long? TaxPartPurchaseId { get; set; } internal static long? TaxPartSaleId { get; set; } internal static long? TaxRateSaleId { get; set; } /// /// Populate and / or create the settings /// internal static void Initialize(GlobalBizSettings global, AyContext ct = null) { if (global == null) { //fetch or create as not provided (meaning this was called from Startup.cs) global = ct.GlobalBizSettings.FirstOrDefault(z => z.Id == 1); if (global == null) { global = new GlobalBizSettings(); ct.GlobalBizSettings.Add(global); ct.SaveChanges(); } } //We have the object, now copy the static values here SearchCaseSensitiveOnly = global.SearchCaseSensitiveOnly; UseInventory = global.UseInventory; TaxPartPurchaseId = global.TaxPartPurchaseId; TaxPartSaleId = global.TaxPartSaleId; TaxRateSaleId = global.TaxRateSaleId; } }//eoc }//eons