BlipFace.Presenter.StatusesPresenter.BlpComStatusesLoaded C# (CSharp) Method

BlpComStatusesLoaded() private method

calback do zdarzenia gdy statusy zostają załadowane od nowa
private BlpComStatusesLoaded ( object sender, StatusesLoadingEventArgs e ) : void
sender object
e BlipFace.Service.Communication.StatusesLoadingEventArgs
return void
        private void BlpComStatusesLoaded(object sender, StatusesLoadingEventArgs e)
        {
            try
            {
                lock (lockUpdateQueue)
                {
                    statusUpdateQueue.Clear();
                }

                if (e.Statuses.Count > 0)
                {
                    lock (lockLastStatus)
                    {
                        //ładujemy statusy od nowa więc, nie ma co sprawdzać
                        //od razu przypisujemy najnowszy status
                        newestStatusId = e.Statuses[0].Id;
                    }
                    //informacja że załadowano statusy
                    statusesLoaded = true;

                    if (consumeStatusesThread != null)
                    {
                        //consumeStatusesThread.IsAlive;

                        //przerywamy wątek
                        consumeStatusesThread.Abort();
                    }

                    IList<StatusViewModel> sts = ViewModelHelper.MapToViewStatus(e.Statuses, blipfaceUser.UserName);

                    //EnqueueStatuses(sts, QueueKind.LoadsQueue);

                    consumeStatusesThread = new Thread(new ParameterizedThreadStart(ConsumeLoads));
                    consumeStatusesThread.Name = "BlipFace consume Loaded Statuses";
                    consumeStatusesThread.IsBackground = true;
                    consumeStatusesThread.Start(sts);

                    //ThreadPool.QueueUserWorkItem(c => ConsumeLoads());

                    /*
                    //ostatni ststus
                    StatusViewModel initStatus = sts[0];
                    sts.RemoveAt(0);

                    //jak najszybciej ustawiamy status na liście, aby użytkownik nie czekał
                    //aż zostaną przetworzone wszystkie statusy
                    var oneStatusList = new ObservableCollection<StatusViewModel>();

                    RetriveStatusHyperlinks(initStatus);
                    oneStatusList.Add(initStatus);

                    //inicjujemy listę statusów tylko jednym statusem, pozostałe będą dodawanie
                    if (view.Statuses != null)
                        view.Statuses = null;
                    view.Statuses = oneStatusList;

                    for (int i = 0; i < sts.Count; i++)
                    {
                        if (view.Statuses != null)
                        {
                            RetriveStatusHyperlinks(sts[i]);

                            view.AddStatus(sts[i], false);
                        }
                        else
                        {
                            //wyjdź z metody

                            statusesLoaded = false;
                            return;
                        }
                    }

                    */

                    //view.Statuses = new List<StatusViewModel>(sts);
                    view.ConnectivityStatus = SetConnectivityStatus(ConnectivityStatus.Online);
                }
            }
            catch (Exception exeption)
            {
                view.Error = exeption;
            }

            if (mode != UpdateMode.Archive)
            {
                ThreadPool.QueueUserWorkItem(c => ConsumeStatuses());

                //co by się nie działo to trzeba to uruchomić uruchamiamy wątek z przetważaniem statusów
                //consumeStatusesThread =new Thread(ConsumeStatuses);
                //consumeStatusesThread.Name = "BlipFace consume Statuses";
                //consumeStatusesThread.IsBackground = true;
                //consumeStatusesThread.Start();

                //uruchamiamy z normalnym czasem timer
                StartListeningForUpdates(refreshTimeSec);
            }
        }