Exemplo n.º 1
0
        public void InitAsync(BackgroundWorker backgroundWorker, LoadingState loadingState)
        {
            if (backgroundWorker == null)
            {
                return;
            }

            if (loadingState == null)
            {
                loadingState = new LoadingState();
            }
            loadingState.MaxPersentage = 10;

            //Загрузка всех пользователей
            loadingState.CurrentPersentage            = 0;
            loadingState.CurrentPersentageDescription = "Loading Users";
            backgroundWorker.ReportProgress(1, loadingState);

            var users = ApiProvider.GetAllUsersAsync();

            Users = new Dictionary <int, string>();
            foreach (var user in users)
            {
                Users.Add(user.ItemId, user.ToString());
            }

            if (backgroundWorker.CancellationPending)
            {
                return;
            }

            loadingState.CurrentPersentage            = 1;
            loadingState.CurrentPersentageDescription = "Loading Operators";
            backgroundWorker.ReportProgress(1, loadingState);

            Operators = new OperatorCollection(_newLoader.GetObjectList <OperatorDTO, Operator>().ToArray());

            AllOperators = new List <AllOperators>(_newLoader.GetObjectList <AllOperatorsDTO, AllOperators>().ToArray());

            if (backgroundWorker.CancellationPending)
            {
                return;
            }

            loadingState.CurrentPersentage            = 2;
            loadingState.CurrentPersentageDescription = "Loading Aircrafts";
            backgroundWorker.ReportProgress(1, loadingState);

            Aircraft = new AircraftCollection(_newLoader.GetObjectList <CAAAircraftDTO, Aircraft>().ToArray());

            if (backgroundWorker.CancellationPending)
            {
                return;
            }

            //Загрузка всех словарей
            loadingState.CurrentPersentage            = 3;
            loadingState.CurrentPersentageDescription = "Loading Dictionaries";
            backgroundWorker.ReportProgress(1, loadingState);

            GetDictionaries();

            if (backgroundWorker.CancellationPending)
            {
                return;
            }
        }