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); }
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"); } }
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); }