Пример #1
0
        public List <IActivity> FeedToAlert(List <FeedDTO> feeds, E_Platforms platform)
        {
            bool newAlert = false;

            List <IActivity> lst = new List <IActivity>();

            foreach (FeedDTO f in feeds)
            {
                if (MainActivitiesList.Where(i => i.Type == E_Activities.Alert && i.Id == f.Id).Count() == 0)
                {
                    switch ((E_Activities)System.Enum.Parse(typeof(E_Activities), f.Author, true))
                    {
                    case E_Activities.Alert:
                        //Information to set similar to other activities
                        //It is separated because of the instantiation of different classes
                        newAlert = true;
                        Alert a = new Alert(f.Title);
                        a.Id               = f.Id;
                        a.PublishDate      = f.PublishDate;
                        a.Platform         = platform;
                        a.PropertyChanged += ActivityStatusChanged;     //This is used to ref

                        //Information to set different from other activities
                        a.Description    = f.Description;
                        a.ExpirationDate = f.ExpireDate;
                        a.Faction        = (E_Factions)System.Enum.Parse(typeof(E_Factions), f.Faction.Split('_')[1], true);

                        //Add the activity to the list
                        lst.Add(a);
                        break;

                    case E_Activities.Outbreak:
                        Outbreak o = new Outbreak(f.Title);
                        o.Id               = f.Id;
                        o.PublishDate      = f.PublishDate;
                        o.Platform         = platform;
                        o.PropertyChanged += ActivityStatusChanged;

                        lst.Add(o);
                        break;

                    case E_Activities.Invasion:
                        Invasion i = new Invasion(f.Title);
                        i.Id               = f.Id;
                        i.PublishDate      = f.PublishDate;
                        i.Platform         = platform;
                        i.PropertyChanged += ActivityStatusChanged;

                        lst.Add(i);
                        break;

                    default:
                        break;
                    }
                }
            }
            //if (newAlert && !_firstUpdate)
            //  PlayNew();
            return(lst);
        }
Пример #2
0
 private void RefreshCategories()
 {
     if (MainActivitiesList != null)
     {
         ActivitiesList = new ObservableCollection <IActivity>(MainActivitiesList.Where(i => i.Done == false).ToList());
         AlertsList     = new ObservableCollection <IActivity>(ActivitiesList.Where(i => i.Type == E_Activities.Alert).ToList());
         InvasionsList  = new ObservableCollection <IActivity>(ActivitiesList.Where(i => i.Type == E_Activities.Invasion).ToList());
         OutbreaksList  = new ObservableCollection <IActivity>(ActivitiesList.Where(i => i.Type == E_Activities.Outbreak).ToList());
         DoneList       = new ObservableCollection <IActivity>(MainActivitiesList.Where(i => i.Done == true).ToList());
         NotifyPropertyChanged("Lists");
     }
 }
Пример #3
0
        private async Task <bool> RefreshActivitiesList()
        {
            List <IActivity> tmp = new List <IActivity>();

            foreach (E_Platforms platform in Enum.GetValues(typeof(E_Platforms)))
            {
                if (platform != E_Platforms.None && (_platformsList & platform) == platform)
                {
                    tmp.AddRange(FeedToAlert(FeedToFeed(await GetFeed(GetUriPlatform(platform))), platform));
                    tmp.AddRange(MainActivitiesList.Where(i => i.Type == E_Activities.Alert && (i.Platform & platform) == platform && ((Alert)i).ExpirationDate.CompareTo(DateTime.UtcNow) > 0).ToList());
                }
            }
            MainActivitiesList = tmp.OrderBy(i => i.Platform).ThenBy(i => i.Type).ThenBy(i => i.PublishDate).ToList();
            return(true);
        }