/// <summary> /// Removes result from list. Uses <see cref="OperationsOnListOfResults"/> to remove data from IsolatedStorage. /// </summary> /// <param name="result">Instance of <see cref="ResultBasicInfo"/> class which holds that of result you want to remove.</param> public void DeleteResult(ResultBasicInfo result) { var results = from item in App.AppDictionary["FilteredResults"] as ObservableCollection <ResultsFilter.GroupedOC <ResultBasicInfo> > where item.Contains(result) select item; GroupedOC <ResultBasicInfo> entity = results.First <GroupedOC <ResultBasicInfo> >(); entity.Remove(result); if (entity.Count == 0) { (App.AppDictionary["FilteredResults"] as ObservableCollection <ResultsFilter.GroupedOC <ResultBasicInfo> >).Remove(entity); } OperationsOnListOfResults operations = new OperationsOnListOfResults(result.ParentId); operations.DeleteResult(result.Id); }
private bool HasResult(GroupedOC <ResultBasicInfo> list, string resultId) { var results = from result in list where result.Id == resultId select result; bool isNotNull = false; foreach (var i in results) { isNotNull = true; break; } if (isNotNull) { return(true); } else { return(false); } }
/// <summary> /// Runs whole filtration process and creates grouped list to display. /// </summary> /// <param name="avaiableSurveys">List of surveys currently saved in IsolatedStorage.</param> public void Display(ObservableCollection <SurveyBasicInfo> avaiableSurveys) { ObservableCollection <GroupedOC <ResultBasicInfo> > filteredResults = new ObservableCollection <GroupedOC <ResultBasicInfo> >(); if (App.AppDictionary.ContainsKey("FilteredResults")) { App.AppDictionary["FilteredResults"] = filteredResults; } else { App.AppDictionary.Add("FilteredResults", filteredResults); } Busy.IsEnabled = true; Thread searchingThread = new Thread(() => { ObservableCollection <SurveyBasicInfo> searchList; if (SurveyFiltration.IsEnabled) { if (SurveyFiltration.SelectedSurveys.Contains(SurveyFiltration.AllSurveysItem)) { searchList = avaiableSurveys; } else { searchList = SurveyFiltration.SelectedSurveys; } } else { searchList = avaiableSurveys; } foreach (var survey in searchList) { XDocument document = LoadListOfResults(survey.SurveyId); if (document != null) { GroupedOC <ResultBasicInfo> singleSurveyResults = new GroupedOC <ResultBasicInfo>(survey.Name, survey.SurveyId, survey.IsFavorite.ToString()); XElement root = document.Element("results"); var results = from result in root.Elements("result") where DateFiltration.IsMatching(result.Element("time").Value) && LocationFiltration.IsMatching(result.Element("latitude") != null ? result.Element("latitude").Value : null, result.Element("longitude") != null ? result.Element("longitude").Value : null) select new ResultBasicInfo() { Id = result.Attribute("id").Value, Title = result.Attribute("title").Value, IsResultSent = Convert.ToBoolean(result.Attribute("isSent").Value), IsResultCompleted = Convert.ToBoolean(result.Attribute("isCompleted").Value), Latitude = result.Element("latitude") != null ? result.Element("latitude").Value : null, Longitude = result.Element("longitude") != null ? result.Element("longitude").Value : null, Time = result.Element("time").Value, ParentId = result.Element("parentId").Value }; foreach (var basicInfo in results) { singleSurveyResults.Add(basicInfo); } if (singleSurveyResults.Count > 0) { filteredResults.Add(singleSurveyResults); } } } Deployment.Current.Dispatcher.BeginInvoke(() => { EventHandler handler = SearchingCompletedEventHandler; if (handler != null) { handler(this, EventArgs.Empty); } }); }); searchingThread.Start(); }