Ejemplo n.º 1
0
        private void Dispose(bool disposing)
        {
            if (!mIsDisposed)
            {
                if (disposing)
                {
                    StopFulfillingFiveYearPlanAsync()
                    .Wait();

                    mEngine?.Dispose();
                    mEngine = null;

                    mAppMetricsMonitor = null;
                    mDbAssetFactory    = null;

                    IDisposable disposableAppMetricsMonitor = mAppMetricsMonitor as IDisposable;
                    if (disposableAppMetricsMonitor != null)
                    {
                        disposableAppMetricsMonitor.Dispose();
                    }
                }

                mIsDisposed = true;
            }
        }
Ejemplo n.º 2
0
        public async Task <Stakhanovise> StartFulfillingFiveYearPlanAsync()
        {
            CheckNotDisposedOrThrow();

            if (mDbAssetFactory == null)
            {
                mDbAssetFactory = mStakhanoviseSetup.BuildDbAssetFactory();
            }

            if (mEngine == null)
            {
                mEngine = mStakhanoviseSetup.BuildTaskEngine();
            }

            if (mAppMetricsMonitor == null)
            {
                mAppMetricsMonitor = mStakhanoviseSetup.BuildAppMetricsMonitor();
            }

            if (mDbAssetFactory != null)
            {
                await mDbAssetFactory.CreateDbAssetsAsync();
            }

            if (!mEngine.IsRunning)
            {
                await mEngine.StartAsync();
            }

            if (mAppMetricsMonitor != null &&
                !mAppMetricsMonitor.IsRunning &&
                mEngine is IAppMetricsProvider)
            {
                await mAppMetricsMonitor.StartAsync(( IAppMetricsProvider )mEngine);
            }

            return(this);
        }