public OperationDetails TestPassing(QuestionViewModel question)
        {
            TimerModule currentTimer = (TimerModule)HttpContext.Current.Application["Timer" + HttpContext.Current.User.Identity.Name];

            TempResult tempResult = Database.TempResults.GetAll().
                                    Where(x => x.UserName == HttpContext.Current.User.Identity.Name).
                                    SingleOrDefault();
            bool isPass = PassedQuestion(question, ref tempResult);

            if (currentTimer.StopWatch.IsRunning && !String.IsNullOrWhiteSpace(tempResult.QuestionPassing))
            {
                if (isPass)
                {
                    QuestionViewModel nextQuestion = MapperFromDB.Map <Question, QuestionViewModel>
                                                         (Database.Questions.Get(tempResult.QuestionPassing.StringStirrer().FirstOrDefault()));
                    HttpContext.Current.Application["Test" + HttpContext.Current.User.Identity.Name] = nextQuestion.IdQuestion;
                    return(new OperationDetails(true, nextQuestion));
                }
                return(new OperationDetails(true, question));
            }

            else
            {
                EndTestPassing(tempResult);
                return(new OperationDetails(false, null));
            }
        }
Beispiel #2
0
        public void OneConformitySportEventsSaving()
        {
            ResultDTO r1 = new ResultDTO {
                TeamName = "Динамо Киев", IsHome = true, Score = 3
            };
            ResultDTO r2 = new ResultDTO {
                TeamName = "Ст. Этьен", IsHome = false, Score = 1
            };
            SportEventDTO ev = new SportEventDTO
            {
                Date = DateTime.Now.Ticks, SportType = "Football", Results = new List <ResultDTO> {
                    r1, r2
                }
            };
            List <SportEventDTO> events = new List <SportEventDTO>();

            events.Add(ev);

            IUnitOfWork unit = new EFUnitOfWork(this.databaseSportsContext);

            this.eventService.SaveSportEvents(events);

            Team team1 =
                unit.GetRepository <TeamName>()
                .Get(tn => tn.Name == "Динамо Киев")
                .Select(tn => tn.Team)
                .FirstOrDefault();

            Assert.IsNotNull(team1);

            Team team2 =
                unit.GetRepository <TeamName>().Get(tn => tn.Name == "Ст. Этьен").Select(tn => tn.Team).FirstOrDefault();

            Assert.IsNull(team2);

            IEnumerable <SportEvent> emptyEvents = unit.GetRepository <SportEvent>().Get(e => e.Results.Count() == 0);

            Assert.IsTrue(emptyEvents.Count() == 0);

            IEnumerable <SportEvent> oneResultEvents = unit.GetRepository <SportEvent>().Get(e => e.Results.Count() == 1);

            Assert.IsTrue(oneResultEvents.Count() == 0);

            Conformity conf2 = unit.GetRepository <Conformity>().Get(c => c.InputName == "Ст. Этьен").FirstOrDefault();

            Assert.IsTrue(conf2.TempResult != null);
            Assert.IsTrue(conf2.TempResult.Team == null);

            IEnumerable <TempResult> tempResults = unit.GetRepository <TempResult>().Get();

            Assert.IsTrue(tempResults.Count() == 2);

            TempResult tempResult1 = unit.GetRepository <TempResult>().Get(r => r.Team != null).FirstOrDefault();

            Assert.IsTrue(tempResult1.Team.Name == "Динамо Киев");

            Assert.IsTrue(conf2.TempResult.TempSportEvent.Id == tempResult1.TempSportEvent.Id);
        }
        public OperationDetails GetCurrentTestState(int IdQuestion)
        {
            TempResult tempResult = Database.TempResults.
                                    Find(x => x.UserName == HttpContext.Current.User.Identity.Name).
                                    SingleOrDefault();

            int currentId = Int32.Parse(
                HttpContext.Current.Application["Test" + HttpContext.Current.User.Identity.Name].ToString());

            TimerModule timer = (TimerModule)
                                HttpContext.Current.Application["Timer" + HttpContext.Current.User.Identity.Name];

            if (tempResult != null)
            {
                if (String.IsNullOrWhiteSpace(tempResult.QuestionsPassed))
                {
                    QuestionViewModel question = MapperFromDB.Map <Question, QuestionViewModel>
                                                     (Database.Questions.Get(currentId));
                    foreach (AnswerViewModel answer in question.Answers)
                    {
                        answer.Correct = false;
                    }

                    return(new OperationDetails(Math.Round(timer.CurrentInterval().TotalSeconds).ToString(),
                                                question));
                }
                if (tempResult.QuestionPassing.StringStirrer().
                    Contains(currentId))
                {
                    QuestionViewModel question = MapperFromDB.Map <Question, QuestionViewModel>
                                                     (Database.Questions.Get(currentId));
                    foreach (AnswerViewModel answer in question.Answers)
                    {
                        answer.Correct = false;
                    }

                    return(new OperationDetails(Math.Round(timer.CurrentInterval().TotalSeconds).ToString(),
                                                question));
                }
                else
                {
                    QuestionViewModel question = MapperFromDB.Map <Question, QuestionViewModel>
                                                     (Database.Questions.Get(IdQuestion));
                    foreach (AnswerViewModel answer in question.Answers)
                    {
                        answer.Correct = false;
                    }

                    return(new OperationDetails(
                               Math.Round(timer.CurrentInterval().TotalSeconds).ToString(),
                               question));
                }
            }
            else
            {
                return(new OperationDetails(false, ""));
            }
        }
        private void EndTestPassing(TempResult tempResult)
        {
            TimerModule currentTimer = (TimerModule)HttpContext.Current.Application["Timer" + HttpContext.Current.User.Identity.Name];

            HttpContext.Current.Application["Timer" + HttpContext.Current.User.Identity.Name] = null;
            object obj = new object();

            currentTimer.EndTimer(obj);
        }
        private void DeleteConformities(TempResult tempResult)
        {
            int j     = tempResult.Conformities.Count;
            var array = tempResult.Conformities.ToArray();

            for (int i = 0; i != j; i++)
            {
                this.dataUnit.GetRepository <Conformity>().Delete(array[i]);
            }
        }
Beispiel #6
0
        public Result RunAlgorithm(Data data)
        {
            var currentDate = DateTime.Now;

            Count = data.Count;

            TetaMatrix = new List <List <float> >();
            for (int i = 0; i < data.Count; i++)
            {
                TetaMatrix.Add(new List <float>());
                for (int j = 0; j < data.Count; j++)
                {
                    TetaMatrix[i].Add(StartTeta);
                }
            }

            MinPathWeight = GetMinPathWeight(data.Matrix.CopyMatrix());

            Record = new TempResult(new List <int>(), 10000000);

            var numberOfIterationToExit = 5;

            if (data.Count > 20)
            {
                numberOfIterationToExit = 10;
            }

            var countBadResults = 0;

            while (countBadResults < numberOfIterationToExit)
            {
                var newValue = OneStep(data);
                if (Record.Sum > newValue.Sum)
                {
                    Record          = newValue;
                    countBadResults = 0;
                }
                else
                {
                    countBadResults++;
                }
            }

            var newDate = DateTime.Now;

            return(new Result
            {
                AlgorithmTime = (newDate - currentDate).TotalMilliseconds,
                StudentSequence = Record.Path,
                SumTime = Record.Sum + data.Time.Sum()
            });
        }
Beispiel #7
0
 protected void Finish()
 {
     if (TempResult == null)
     {
         CreateAndAddFigure();
     }
     TempResult.RecalculateAndUpdateVisual();
     Commit();
     Drawing.RaiseConstructionStepComplete(new Drawing.ConstructionStepCompleteEventArgs()
     {
         ConstructionComplete = true
     });
     Reset();
 }
 public void EndTimer(object obj)
 {
     if (_testEnd == false)
     {
         Result     result     = Database.Results.Get(IdResult);
         TempResult tempResult = Database.TempResults.Get(IdResult);
         result.ResultScore = ((tempResult.TotalScore * 100) / Database.Results.Get(IdResult).Test.TotalScore);
         result.TestPassed  = true;
         result.CreateDate  = DateTime.Now;
         Database.TempResults.Remove(tempResult);
         Database.Results.Update(result);
         Database.Complete();
         StopTimer();
     }
 }
        private bool PassedQuestion(QuestionViewModel question, ref TempResult tempResult)
        {
            int IdResult = tempResult.IdResult;

            question.IdQuestion = (int)HttpContext.Current.Application["Test" + HttpContext.Current.User.Identity.Name];
            UserQuestion userQuestion = Database.UserQuestions.Find(x => x.IdResult == IdResult &&
                                                                    x.IdQuestion == question.IdQuestion).
                                        SingleOrDefault();
            double questionScore = 0;

            try
            {
                Question questionDB = Database.Questions.Get(question.IdQuestion);

                double answerWeight = (questionDB.Score / questionDB.Answers.
                                       Where(x => x.Correct == true).
                                       Count());

                foreach (Answer answer in questionDB.Answers)
                {
                    AnswerViewModel answerUser = question.Answers.Where(x => x.IdAnswer == answer.IdAnswer).SingleOrDefault();
                    userQuestion.UserAnswers.Add(new UserAnswer()
                    {
                        IdUserQuestion = userQuestion.IdUserQuestion,
                        IdAnswer       = answer.IdAnswer,
                        Correct        = answerUser.Correct
                    });
                    if (answerUser.Correct == answer.Correct && answer.Correct == true)
                    {
                        questionScore          += answerWeight;
                        userQuestion.UserScore += answerWeight;
                    }
                }
            }
            catch (Exception e)
            {
                return(false);
            }
            tempResult.TotalScore      += questionScore;
            tempResult.QuestionPassing  = tempResult.QuestionPassing.StringStirrer(question.IdQuestion);
            tempResult.QuestionsPassed += question.IdQuestion.ToString() + ",";
            Database.UserAnswers.AddRange(userQuestion.UserAnswers);
            Database.Complete();
            Database.UserQuestions.Update(userQuestion);
            Database.TempResults.Update(tempResult);
            Database.Complete();
            return(true);
        }
        public void GetDiffThreadTest()
        {
            Thread t1 = new Thread(obj => ((TempResult)obj).Rand = SyncRandom.Get());

            Random r2 = null;

            r2 = SyncRandom.Get();

            TempResult res = new TempResult();

            t1.Start(res);

            t1.Join();

            Assert.True(res.Rand != r2 && res.Rand != null);
        }
Beispiel #11
0
        static string Add(string n1, string n2)
        {
            string Result = "";

            // Pads both strings to equal lenghth with 0s
            PadStrings(ref n1, ref n2);

            // Column Elements (stack longer number on shorter number)
            int TopNum, BottomNum;
            // If Top + Bottom > 10, this is the 10s / 10 for adding to the next column
            int AdditionOverflow = 0;
            // Temporary result value for processing before finalizing
            int TempResult;

            // n1.Length is arbitrary as both strings have the same length
            for (int i = n1.Length - 1; i >= 0; i--)
            {
                // Convert the column elements to integers
                TopNum    = int.Parse(n1[i].ToString());
                BottomNum = int.Parse(n2[i].ToString());

                // Add all column elements together
                TempResult = TopNum + BottomNum + AdditionOverflow;

                //Check if the intermediate result flows into the next column
                if (TempResult >= 10)
                {
                    // Get the 10s digit of the overflow
                    AdditionOverflow = (int)Math.Floor(TempResult / 10f);
                    // Subtract off that digit (times 10) from the result to get a number < 10
                    TempResult -= AdditionOverflow * 10;
                }
                else
                {
                    AdditionOverflow = 0;
                }

                // Take the digit we just made and append to it Result
                // so that the new digit is the most significant digit (the digit with
                // the greatest 'value')
                Result = TempResult.ToString() + Result;
            }

            return(Result);
        }
Beispiel #12
0
 private void Save(TempSportEvent tempEvent, SportEvent sportEvent)
 {
     if (tempEvent.TempResults.Count() != 0)
     {
         foreach (Result result in sportEvent.Results)
         {
             TempResult tempRes = new TempResult {
                 Team = result.Team, Score = result.Score, IsHome = result.IsHome
             };
             tempEvent.TempResults.Add(tempRes);
         }
         this.dataUnit.GetRepository <TempSportEvent>().Insert(tempEvent);
     }
     else
     {
         IEnumerable <SportEvent> existingEvent = this.dataUnit.GetRepository <SportEvent>().Get();
         if (!existingEvent.Contains(sportEvent))
         {
             this.dataUnit.GetRepository <SportEvent>().Insert(sportEvent);
         }
     }
 }
        public QuestionViewModel StartTest(int IdResult)
        {
            char delimetr = ',';
            List <UserQuestion> userQuestions = new List <UserQuestion>();
            TempResult          tempResult    = new TempResult
            {
                IdResult = IdResult,
                UserName = HttpContext.Current.User.Identity.Name,
            };

            foreach (Question question in Database.Results.Get(IdResult).Test.Questions)
            {
                tempResult.QuestionPassing += "" + question.IdQuestion + ",";
                userQuestions.Add(new UserQuestion()
                {
                    IdResult    = IdResult,
                    IdQuestion  = question.IdQuestion,
                    MaxScore    = question.Score,
                    UserAnswers = new List <UserAnswer>()
                });
            }
            Database.UserQuestions.AddRange(userQuestions);
            Database.TempResults.Add(tempResult);
            Database.Complete();

            TimerModule timer = new TimerModule(IdResult, Database.Results.Get(IdResult).Test.Time);

            HttpContext.Current.Application["Timer" + HttpContext.Current.User.Identity.Name] = timer;
            Question questiondb = Database.Questions.
                                  Get(Int32.Parse(tempResult.QuestionPassing.Split(delimetr)[0]));

            HttpContext.Current.Application["Test" + HttpContext.Current.User.Identity.Name] = questiondb.IdQuestion;

            var mapper = new MapperConfiguration(mcf => mcf.CreateMap <Question, QuestionViewModel>()).CreateMapper();
            QuestionViewModel questionDto = mapper.Map <Question, QuestionViewModel>(questiondb);

            return(questionDto);
        }
Beispiel #14
0
        public bool SaveSportEvents(ICollection <SportEventDTO> eventDTOs)
        {
            Log.Info("Writing transferred data...");
            try
            {
                NamingMatcher matcher = new NamingMatcher(this.dataUnit);

                IEnumerable <SportType> sportTypes = this.dataUnit.GetRepository <SportType>().Get();

                foreach (SportEventDTO eventDTO in eventDTOs)
                {
                    SportType sportType = sportTypes.FirstOrDefault(st => st.Name == eventDTO.SportType)
                                          ?? new SportType {
                        Name = eventDTO.SportType
                    };

                    SportEvent sportEvent = new SportEvent
                    {
                        SportType = sportType, Date = this.ConvertAndTrimDate(eventDTO.Date), Results = new List <Result>()
                    };
                    TempSportEvent tempEvent = new TempSportEvent()
                    {
                        SportType = sportType, Date = this.ConvertAndTrimDate(eventDTO.Date), TempResults = new List <TempResult>()
                    };

                    foreach (ResultDTO resultDTO in eventDTO.Results)
                    {
                        Team team = new Team
                        {
                            Name      = resultDTO.TeamName,
                            SportType = sportType,
                            Names     = new List <TeamName> {
                                new TeamName {
                                    Name = resultDTO.TeamName
                                }
                            }
                        };

                        List <Conformity> conformities = matcher.ResolveNaming(team);

                        if (conformities == null)
                        {
                            team = this.dataUnit.GetRepository <TeamName>()
                                   .Get((x) => x.Name == team.Name).Select(x => x.Team).FirstOrDefault();

                            Result result = new Result {
                                Team = team, Score = resultDTO.Score ?? -1, IsHome = resultDTO.IsHome
                            };
                            sportEvent.Results.Add(result);
                        }
                        else
                        {
                            TempResult result = new TempResult
                            {
                                Score        = resultDTO.Score ?? -1,
                                Conformities = new List <Conformity>(),
                                IsHome       = resultDTO.IsHome
                            };

                            if (team.Names.FirstOrDefault().Id != 0)
                            {
                                result.Team = team;
                            }

                            foreach (Conformity conformity in conformities)
                            {
                                result.Conformities.Add(conformity);
                            }
                            conformities.Clear();
                            tempEvent.TempResults.Add(result);
                        }
                    }

                    this.Save(tempEvent, sportEvent);
                }
                this.dataUnit.SaveChanges();

                this.predictionSender.SendPredictionRequest();
            }
            catch (Exception ex)
            {
                Log.Error("Exception when trying to save transferred data to DB", ex);
                return(false);
            }
            Log.Info("Transferred data sucessfully saved");
            return(true);
        }
        public ActionResult Index(CreateESPAdultViewModel model)
        {
            var districts = GetDistrictItems();

            ViewBag.DistrictId = new SelectList(districts, "ID", "Name", "RegionName", model.DistrictId);

            if (string.IsNullOrEmpty(model.ApplicantPIN) || string.IsNullOrEmpty(model.PassportNo) || string.IsNullOrEmpty(model.PassportSeries))
            {
                ViewBag.Error = "Необходимо заполнить все поля";
                return(View(model));
            }

            if (SendRequest(new
            {
                clientId = "8d8461a4-9d3e-4136-98a7-66697078371d",
                orgName = "ПОРТАЛ-ГБД",
                request = new
                {
                    passportDataByPSN = new
                    {
                        request = new
                        {
                            pin = model.ApplicantPIN,
                            series = model.PassportSeries,
                            number = model.PassportNo
                        }
                    }
                }
            }, "http://localhost/ServiceConstructor/SoapClient/SendRequest2", "POST", out dynamic response, out string errorMessage))
            {
                if (response.response.passportDataByPSNResponse.response != null)
                {
                    var r = response.response.passportDataByPSNResponse.response;
                    model.passportPerson = ((JObject)r).ToObject <CreateESPAdultViewModel._passportPerson>();
                }
                else
                {
                    //ViewBag.Error = "Данные о браке отсутствуют";
                }
            }

            if (SendRequest(new
            {
                PIN = model.ChildPIN
            },
                            "http://localhost/SourcesAPI/api/CISSA/MSECDetails", "POST", out response, out errorMessage))
            {
                if (response != null)
                {
                    var r = response;
                    model.msecData = ((JObject)r).ToObject <_msecData>();
                }
                else
                {
                    //ViewBag.Error = "Данные о браке отсутствуют";
                }
            }
            else
            {
                ViewBag.Error = errorMessage;
            }

            TempResult resp = null;

            if (SendSocFundRequest(model.ApplicantPIN, "ПОРТАЛ-ГБД", out resp, out errorMessage))
            {
                if (resp.response != null && resp.response.GetWorkPeriodInfoResponse != null)
                {
                }
                else
                {
                    ViewBag.Error = "Данные о соцфонде отсутствуют";
                }
            }
            else
            {
                ViewBag.Error = errorMessage;
            }

            if (model.ActionNo == 1)
            {
                model.ActionNo = 2;
            }
            else if (model.ActionNo == 2)
            {
                if (SendRequest(
                        new
                {
                    PIN = model.ApplicantPIN,
                    LastName = model.passportPerson.surname,
                    FirstName = model.passportPerson.name,
                    MiddleName = model.passportPerson.patronymic,
                    model.PassportSeries,
                    model.PassportNo,
                    PassportDate = model.passportPerson.issuedDate,
                    PassportOrg = model.passportPerson.passportAuthority,
                    model.Telephone
                }, "http://localhost/SourcesAPI/api/CISSA/CreateESPApplication", "POST", out dynamic app, out errorMessage
                        ))
                {
                }
                var msg = @"Ваше заявление успешно отправлено в Октябрьскоу УТСР по адресу г. Бишкек, 6 мкр дом № 22 /1. Вам необходимо проверять статус своего заявления в течении следующих 10 рабочих дней. Для дополнительной консультации можете обратиться по тел. 52-69-70, 42-64-47ф";

                ViewBag.Message = msg;
                //model = new CreateAppViewModel {ActionNo = 1 };
            }

            return(View(model));
        }