コード例 #1
0
        async Task LoadQuestions(EQuestionGroupStatus status)
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;
            _questionGroups.Clear();

            var address    = StateService.CurrentAddress;
            var customer   = StateService.CurrentCustomer;
            var surveyType = await new DbService().FindSurveyType(address.Type, customer.CustomerSurveyID);

            if (surveyType != null)
            {
                var questions = await new DbService().GetQuestions(surveyType.Value, customer.CustomerSurveyID);

                var groupped = questions.GroupBy(x => x.Main_Element).ToList();


                foreach (var g in groupped)
                {
                    if (g.Key == "SECONDARY")
                    {
                        continue;
                    }
                    var gr = new QuestionGroup()
                    {
                        Name = g.Key, Questions = new List <Question>(g)
                    };
                    gr.IsCompleted = await new DbService().FindIfQuestionGroupIsCompleted(address.Id, gr.Name);

                    _questionGroups.Add(gr);
                }

                _questionGroups = _questionGroups.OrderBy(x => x.Questions.First().Question_Order).ToList();

                if (status == EQuestionGroupStatus.All)
                {
                    lstGroupss.ItemsSource = _questionGroups;
                }
                else
                {
                    lstGroupss.ItemsSource = _questionGroups.Where(x => x.IsCompleted == (status == EQuestionGroupStatus.Complete)).ToList();
                }

                Task.Factory.StartNew(() =>
                {
                    UpdateAddressStatus(_questionGroups);
                });
            }
            else
            {
                IsBusy = false;
            }
        }
コード例 #2
0
        async Task LoadQuestions(EQuestionGroupStatus status)
        {
            IsBusy = true;
            _questionGroups.Clear();

            var address     = StateService.CurrentAddress;
            var surveyTypes = await new DbService().FindSurveyType(address.Type);

            if (surveyTypes != null)
            {
                var questions = await new DbService().GetQuestions(surveyTypes.Value);

                var groupped = questions.GroupBy(x => x.Main_Element).ToList();


                foreach (var g in groupped)
                {
                    if (g.Key == "SECONDARY")
                    {
                        continue;
                    }
                    var gr = new QuestionGroup()
                    {
                        Name = g.Key, Questions = new List <Question>(g)
                    };
                    gr.Complete = await new DbService().FindIsQuestionGroupCompleted(gr.Name, address.UPRN);
                    _questionGroups.Add(gr);
                }

                if (_questionGroups.All(x => x.Complete))
                {
                    address.Complete = true;
                    await new DbService().Save(address, ESyncStatus.NotSynced);
                    btnCopyTo.IsEnabled = true;
                }

                _questionGroups = _questionGroups.OrderBy(x => x.Questions.First().Question_Order).ToList();

                if (status == EQuestionGroupStatus.All)
                {
                    lstGroupss.ItemsSource = _questionGroups;
                }
                else
                {
                    lstGroupss.ItemsSource = _questionGroups.Where(x => x.Complete == (status == EQuestionGroupStatus.Complete)).ToList();
                }
            }

            IsBusy = false;
        }