public DatabaseContext CreateContext(DatabaseSettingsPlaceholder settings)
        {
            int id = SynchronizedContexts.Count;

            if (SynchronizedContexts.TryAdd(id, new DatabaseContext(id, settings)))
            {
                if (SynchronizedContexts.TryGetValue(id, out var val))
                {
                    return(val);
                }

                throw new Exception($"Invalid work with concurrent cache!");
            }
            else
            {
                if (SynchronizedContexts.ContainsKey(id))
                {
                    if (SynchronizedContexts.TryGetValue(id, out var val))
                    {
                        return(val);
                    }

                    throw new Exception($"Invalid work with concurrent cache!");
                }

                throw new Exception($"Unknown error with database contexts caching");
            }
        }
        public override void Update()
        {
            if (RemovableIdentifiers.Count > 0)
            {
                foreach (var id in RemovableIdentifiers)
                {
                    _ = SynchronizedContexts.TryRemove(id, out _);
                }

                RemovableIdentifiers.Clear();
            }

            UpdateStatistics();
        }