Example #1
0
        /// <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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        /// <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();
        }