public bool ClaimResources(
            BankProcess bankProcess)
        {
            lock (_lockObject)
            {
                foreach (var systemResource in _systemResources)
                {
                    var resourceMaxAmount = bankProcess.GetResourceMaxAmount(systemResource.Name);

                    if (resourceMaxAmount > systemResource.CurrentAmount)
                    {
                        _systemLog.Info(string.Format("Not enought resources for {0}", bankProcess.ProcessName));
                        _systemLog.Info(GetSystemSummary());
                        return(false);
                    }
                }

                foreach (var systemResource in _systemResources)
                {
                    var resourceMaxAmount = bankProcess.GetResourceMaxAmount(systemResource.Name);

                    systemResource.ClaimResourceCount(resourceMaxAmount);
                }

                _systemLog.Info(string.Format("Claimed Resources for {0}", bankProcess.ProcessName));
                _systemLog.Info(GetSystemSummary());

                return(true);
            }
        }
        public void RestoreResources(
            BankProcess bankProcess)
        {
            lock (_lockObject)
            {
                foreach (var systemResource in _systemResources)
                {
                    var resourceMaxAmount = bankProcess.GetResourceMaxAmount(systemResource.Name);

                    systemResource.RestoreResourceCount(resourceMaxAmount);
                }

                _systemLog.Info(string.Format("Restored Resources for {0}", bankProcess.ProcessName));
                _systemLog.Info(GetSystemSummary());
            }
        }