コード例 #1
0
 public ResultDetail(ResultViewModel vmResult)
 {
     p_fLoading = true;
     Initialize();
     if (vmResult == null)
     {
         MessageBox.Show("Invalid argument passed to detail screen!");
         Close();
         return;
     }
     p_vmDetail  = new ResultDetailViewModel(vmResult);
     DataContext = p_vmDetail;
 }
コード例 #2
0
        public ActionResult Details(int id)
        {
            ResultDetail details = _raceRepository.GetResultDetails(UserContext.User.Id, UserContext.User.OrganizationId, id);

            if (details == null)
            {
                return(NotFoundResult());
            }

            ResultDetailViewModel viewModel = Mapper.Map <ResultDetailViewModel>(details);

            viewModel.SeasonName      = $"{GetSeasonTypeName(viewModel.SeasonTypeId)}-{viewModel.Year}";
            viewModel.AverageDistance = viewModel.AverageDistance / 1000;
            return(View(Mvc.View.Result.Details, viewModel));
        }
コード例 #3
0
        public ActionResult DownloadTitlePdfFile(int id)
        {
            ResultDetail details = _raceRepository.GetResultDetails(UserContext.User.Id, UserContext.User.OrganizationId, id);

            if (details == null)
            {
                return(NotFoundResult());
            }

            ResultDetailViewModel model = Mapper.Map <ResultDetailViewModel>(details);

            model.AverageDistance = model.AverageDistance / 1000;
            model.SeasonName      = $"{GetSeasonTypeName(model.SeasonTypeId)}-{model.Year}";

            return(PdfView(
                       $"{model.Name}_{StyleContext.GetTranslation(Dom.Translation.Result.Title)}",
                       Mvc.View.Result.Title,
                       Mvc.View.Shared.EmptyLayout,
                       model
                       ));
        }
コード例 #4
0
        public IActionResult ResultDetail(int?ResUsr)
        {
            if (ResUsr != null && ResUsr is int)
            {
                var res = dataContext.ResultReports.Include(x => x.FactTitleLog).FirstOrDefault(x => x.Id == ResUsr);

                var fact = dataContext.FactTitleLog.Include(x => x.StartedTestLog).ThenInclude(x => x.TitleUserAccess).Include(m => m.FactQuestCollection).ThenInclude(a => a.FactAnswersLog).Include(x => x.AnswerUserResultLog).FirstOrDefault(x => x == res.FactTitleLog);
                if (fact != null)
                {
                    var uAnswer = fact.AnswerUserResultLog.Where(x => x.User == res.User).Count();
                    var fAnswer = fact.FactQuestCollection.Select(x => x.FactAnswersLog.Count()).Sum();
                    var r       = fact.FactQuestCollection.Select(x => x.FactAnswersLog);

                    if (uAnswer == fAnswer)
                    {
                        // коллекция правильных ответов
                        ICollection <FactAnswersLog> answColl = new List <FactAnswersLog>();
                        foreach (var quest in fact.FactQuestCollection)
                        {
                            foreach (var answ in quest.FactAnswersLog)
                            {
                                answColl.Add(answ);
                            }
                        }

                        List <FactQuestLog> trueAnsw = new List <FactQuestLog>();
                        foreach (var AnswerResult in fact.AnswerUserResultLog)
                        {
                            foreach (var factAnswerLog in answColl)
                            {
                                // сравним вопросы
                                if (AnswerResult.factQuestLog == factAnswerLog.FactQuestLog)
                                {
                                    var flag  = true;
                                    var fansw = AnswerResult.factQuestLog.FactAnswersLog.ToList();
                                    var uansw = AnswerResult.factQuestLog.AnswerUserResultLog.ToList();
                                    // сравним кол-во ответов
                                    if (fansw.Count() == uansw.Count())
                                    {
                                        //var fanswState = fansw.Select(x => x.State).ToList();
                                        //var uanswState = uansw.Select(x => x.State).ToList();

                                        foreach (var userFactAnwers in factAnswerLog.FactQuestLog.FactAnswersLog)
                                        {
                                            var answUser = AnswerResult.factQuestLog.AnswerUserResultLog.FirstOrDefault(x => x.factAnswersLog == userFactAnwers);
                                            if (userFactAnwers == answUser.factAnswersLog)
                                            {
                                                if (userFactAnwers.State != answUser.State)
                                                {
                                                    flag = false;
                                                    break;
                                                }
                                            }
                                        }
                                        if (flag)
                                        {
                                            if (!trueAnsw.Contains(AnswerResult.factQuestLog))
                                            {
                                                trueAnsw.Add(AnswerResult.factQuestLog);
                                            }
                                        }

                                        var factAnswer = factAnswerLog.FactQuestLog.FactAnswersLog;
                                        var userAnswer = AnswerResult.factQuestLog.FactAnswersLog;
                                    }
                                }
                            }
                        }
                        // для обнуления процентов
                        if (res.Percent == 0)
                        {
                            res.Percent = trueAnsw.Count() * 100 / fact.FactQuestCollection.Count;
                        }
                        dataContext.Update(res);
                        dataContext.SaveChanges();
                        ResultDetailViewModel detail = new ResultDetailViewModel()
                        {
                            AnswerUserResultLog = fact.AnswerUserResultLog,
                            factAnswersLog      = answColl,
                            AppUser             = res.User,
                            factTitle           = fact,
                            trueQuest           = trueAnsw,
                            Percent             = res.Percent
                        };
                        return(View("Detail", detail));
                    }
                }
            }
            return(View("Result"));
        }
コード例 #5
0
        public ResultDetailPage(ResultDetailViewModel viewModel)
        {
            InitializeComponent();

            BindingContext = this.viewModel = viewModel;
        }