Пример #1
0
        public AHPEducationLine(EducationLine educationLineGiven, List <Entrant> entrantsGiven)
        {
            _educationLine = educationLineGiven;
            _entrants      = entrantsGiven;
            _settings      = new AHPEdLineSettings();

            CalculateAll();
        }
Пример #2
0
        public AhpEducationLine(EducationLine educationLineGiven, List <Entrant> entrantsGiven,
                                AhpEdLineSettings settings)
        {
            _educationLine = educationLineGiven;
            _entrants      = entrantsGiven;
            _settings      = settings;

            CalculateAll();
        }
Пример #3
0
        public AHPEducationLine(int edLineID)
        {
            _educationLine = context.EducationLines.Find(edLineID);
            foreach (var entrInDB in context.Entrants)
            {
                _entrants.Add(entrInDB);
            }
            _settings = new AHPEdLineSettings();

            CalculateAll();
        }
Пример #4
0
        public AhpEducationLine(int edLineId)
        {
            _educationLine = _context.EducationLines.Find(edLineId);
            foreach (var entrInDb in _context.Entrants)
            {
                _entrants.Add(entrInDb);
            }
            _settings = new AhpEdLineSettings();

            CalculateAll();
        }
Пример #5
0
        /// <summary>
        /// Opdaterer én Uddannelseslinje på ét specifikt Uddannelsessted udfra id.
        /// Ved kald af denne funktionalitet skal man angive Brugernavn og Passsword. Kun brugere
        /// kendt af systemet kan udnytte denne funktionalitet.
        /// </summary>
        /// <param name="json_Object">json_Objekt er et objekt i jSon format. Det skal indeholde
        /// data til funktionen med følgende felter specificeret : EducationLineName og EducationID.</param>
        /// <param name="id">Uddannelseslinje ID</param>
        /// <param name="Password">Password for nuværende bruger.</param>
        /// <param name="UserName">Brugernavn for nuværende bruger.</param>
        /// <returns>
        /// UpdateOperationOk (værdien 1) hvis Uddannelseslinje er gemt ok.
        /// Eller en retur kode med en værdi mindre end 0, hvis noget gik galt.
        /// Se en oversigt over return koder i ReturnCodesAndStrings eller klik
        /// her : <see cref="ReturnCodeAndReturnString"/>
        /// </returns>
        // PUT api/<controller>/5
        public int Put(int id, dynamic json_Object, string UserName, string Password)
        {
            EducationLine EducationLine_Object = new EducationLine();
            int           NumberOfEducationLinesSaved;

            int UserID = 0;

            UserID = UserInfo.FindUserInDatabase(UserName, Password);

            if (Const.UserNotFound < UserID)
            {
                if ((null == json_Object.EducationLineName) ||
                    (null == json_Object.EducationID))
                {
                    return(Const.WrongjSonObjectParameters);
                }
                else
                {
                    if (Const.ObjectNotFound == EducationLine.CheckForEducationLineNameInEducationLine((string)json_Object.EducationLineName, (int)json_Object.EducationID))
                    {
                        EducationLine_Object = db.EducationLines.Find(id);
                        if (null != EducationLine_Object)
                        {
                            EducationLine_Object.EducationLineName = json_Object.EducationLineName;
                            EducationLine_Object.EducationID       = json_Object.EducationID;

                            NumberOfEducationLinesSaved = db.SaveChanges();
                            if (1 == NumberOfEducationLinesSaved)
                            {
                                LogData.LogDataToDatabase(UserName, DataBaseOperation.UpdateData_Enum, ModelDatabaseNumber.EducationLine_Enum);
                                return(Const.UpdateOperationOk);
                            }
                            else
                            {
                                return(Const.UpdateOperationFailed);
                            }
                        }
                        else
                        {
                            return(Const.ObjectNotFound);
                        }
                    }
                    else
                    {
                        return(Const.ObjectAlreadyPresent);
                    }
                }
            }
            else
            {
                return(Const.UserNotFound);
            }
        }
Пример #6
0
        public void Calculate_Simple_Norm_Result()
        {
            //Arrange
            var namesHelper           = Substitute.For <IEducationCharacteristicNamesHelper>();
            var educationLineSummator = Substitute.For <ISummator <EducationLine> >();
            var idealResult           = Substitute.For <IIdealResult>();

            var educationLineCharacterizer = new EducationLineCharacterizer(namesHelper, educationLineSummator,
                                                                            idealResult);
            var educationLine = new EducationLine();

            var characteristicNames = new List <string>
            {
                "Русский",
                "Математика",
                "Информатика"
            };

            namesHelper.Names.Returns(characteristicNames);

            var complicatedSum = new Dictionary <string, double>();

            complicatedSum.Add("Русский", 0.4);
            complicatedSum.Add("Математика", 0.6);
            complicatedSum.Add("Информатика", 0.8);
            educationLineSummator.CalculateSimpleSum(educationLine).Returns(complicatedSum);

            var complicatedIdealSum = new Dictionary <string, double>();

            complicatedIdealSum.Add("Русский", 0.4);
            complicatedIdealSum.Add("Математика", 0.6);
            complicatedIdealSum.Add("Информатика", 0.8);
            idealResult.GetSimpleResult().Returns(Task.FromResult(complicatedIdealSum));

            //Act
            var resultTask = educationLineCharacterizer.Calculate(educationLine, false);

            resultTask.Wait();

            //Assert
            var correctAnswer = new Dictionary <string, double>();

            correctAnswer.Add("Русский", 1);
            correctAnswer.Add("Математика", 1);
            correctAnswer.Add("Информатика", 1);
            foreach (var item in resultTask.Result)
            {
                Assert.AreEqual(correctAnswer[item.Key], item.Value);
            }
        }
Пример #7
0
        /// <summary>
        /// Sletter én specifik Uddannelseslinje på et specifikt Uddannelsessted udfra id.
        /// Ved kald af denne funktionalitet skal man angive Brugernavn og Passsword. Kun brugere kendt
        /// af systemet kan udnytte denne funktionalitet.
        /// </summary>
        /// <param name="id">Uddannelseslinje ID</param>
        /// <param name="Password">Password for nuværende bruger.</param>
        /// <param name="UserName">Brugernavn for nuværende bruger.</param>
        /// <returns>
        /// DeleteOperationOk (værdien 3) hvis Uddannelseslinje er slettet ok.
        /// Eller en retur kode med en værdi mindre end 0, hvis noget gik galt.
        /// Se en oversigt over return koder i ReturnCodesAndStrings eller klik
        /// her : <see cref="ReturnCodeAndReturnString"/>
        /// </returns>
        // DELETE api/<controller>/5
        public int Delete(int id, string UserName, string Password)
        {
            EducationLine EducationLine_Object = new EducationLine();
            int           NumberOfEducationLinesDeleted;

            int UserID = 0;

            UserID = UserInfo.FindUserInDatabase(UserName, Password);

            if (Const.UserNotFound < UserID)
            {
                EducationLine_Object = db.EducationLines.Find(id);
                if (null != EducationLine_Object)
                {
                    if (0 == User_Education_Time_Collection.FindEducationTime_Collection_With_Specified_EducationLineID(id))
                    {
                        db.EducationLines.Remove(EducationLine_Object);
                        NumberOfEducationLinesDeleted = db.SaveChanges();
                        if (1 == NumberOfEducationLinesDeleted)
                        {
                            LogData.LogDataToDatabase(UserName, DataBaseOperation.DeleteData_Enum, ModelDatabaseNumber.EducationLine_Enum);
                            return(Const.DeleteOperationOk);
                        }
                        else
                        {
                            return(Const.DeleteOperationFailed);
                        }
                    }
                    else
                    {
                        return(Const.SpecifiedContentStillInUseInTablesBelow);
                    }
                }
                else
                {
                    return(Const.ObjectNotFound);
                }
            }
            else
            {
                return(Const.UserNotFound);
            }
        }
Пример #8
0
        public void GetCorrectIdealEducationLineComplicatedResult_and_result_is_cached()
        {
            //Arrange
            var educationLine = new EducationLine {
                Id = 2
            };
            var idealResult = new Dictionary <string, double>();

            var queryBuilder             = Substitute.For <IQueryBuilder>();
            var educationLineSummator    = Substitute.For <ISummator <EducationLine> >();
            var idealEducationLineResult = new IdealEducationLineResult(educationLineSummator, queryBuilder);

            queryBuilder
            .For <Task <EducationLine> >()
            .With(Arg.Any <GetIdelaEducationLineForCharacterizerCriterion>())
            .ReturnsForAnyArgs(Task.FromResult(educationLine));
            queryBuilder.ClearReceivedCalls();

            educationLineSummator.CalculateComplicatedSum(educationLine).Returns(idealResult);
            educationLineSummator.ClearReceivedCalls();

            //Act
            var currentResultTask = idealEducationLineResult.GetComplicatedResult();

            currentResultTask.Wait();
            //последующие вызовы
            idealEducationLineResult.GetComplicatedResult().Wait();
            idealEducationLineResult.GetComplicatedResult().Wait();

            //Assert
            Assert.AreEqual(idealResult, currentResultTask.Result);

            //cache test
            //Проверяем что методы вызывались только при первом обращении
            queryBuilder.Received(1).For <Task <EducationLine> >();
            educationLineSummator.Received(1).CalculateComplicatedSum(educationLine);
        }
Пример #9
0
 public EducationLineWithCharacterisics(EducationLine educationLine, Dictionary <string, double> characterisics)
 {
     EducationLine  = educationLine;
     Characterisics = characterisics;
 }
Пример #10
0
        public void GetRecomedtationMethod_get_ordered_and_correct_recomedations()
        {
            //Arrange
            var entrantCharacterizer       = Substitute.For <ICharacterizer <Entrant> >();
            var educationLineCharacterizer = Substitute.For <ICharacterizer <EducationLine> >();

            var educationLine = new EducationLine();
            var entrantList   = new List <Entrant>
            {
                new Entrant {
                    Id = 1
                },
                new Entrant {
                    Id = 2
                }
            };

            var educationLineCharcteristic = new Dictionary <string, double>
            {
                { "Русский", 0.5 },
                { "Математика", 0.6 },
                { "Информатика", 0.7 }
            };
            var entrantCharacteristic1 = new Dictionary <string, double>
            {
                { "Русский", 0.8 },
                { "Математика", 0.6 },
                { "Информатика", 0.5 }
            };
            var entrantCharacteristic2 = new Dictionary <string, double>
            {
                { "Русский", 0.6 },
                { "Математика", 0.7 },
                { "Информатика", 0.8 }
            };

            var entrantEdLineOneDistance = Math.Abs(0.5 - 0.8) + Math.Abs(0.6 - 0.6) + Math.Abs(0.7 - 0.5); //0.5
            var entrantEdLineTwoDistance = Math.Abs(0.5 - 0.6) + Math.Abs(0.6 - 0.7) + Math.Abs(0.7 - 0.8); //0.3

            educationLineCharacterizer
            .Calculate(educationLine)
            .Returns(Task.FromResult(educationLineCharcteristic));
            entrantCharacterizer
            .Calculate(entrantList[0])
            .Returns(Task.FromResult(entrantCharacteristic1));
            entrantCharacterizer
            .Calculate(entrantList[1])
            .Returns(Task.FromResult(entrantCharacteristic2));

            //Act
            var entrantRecomendator = new EducationLineDistanceRecomendator(entrantCharacterizer,
                                                                            educationLineCharacterizer);
            var taskResult = entrantRecomendator.GetRecomendation(educationLine, entrantList);

            taskResult.Wait();
            var result = taskResult.Result;

            //Assert
            Assert.IsTrue(result.Count == 2);
            Assert.IsTrue(result[entrantList[1]] == entrantEdLineTwoDistance);
            Assert.IsTrue(result[entrantList[0]] == entrantEdLineOneDistance);
        }