示例#1
0
        private static ICoreDstDependencies CreateNewDst(Random random)
        {
            DateTime     dateTime = CoreTest.RandomDateTime(random);
            MetadataNode vfsroot  = new(VirtualFSInterop.MakeNewDirectoryMetadata("dst", dateTime), null);

            IDstFSInterop dstFSInterop = VirtualFSInterop.InitializeNewDst(vfsroot, new BPlusTree <byte[]>(10), "");

            return(CoreDstDependencies.InitializeNew("test", false, dstFSInterop));
        }
示例#2
0
        // This is the main entry point of the application.
        static void Main(string[] args)
        {
            //do it asap
            DLogger.Initialize(AppHelper.Paths.WorkingRootFolder);

            CoreTest.Initialize();

            // if you want to use a different Application Delegate class from "AppDelegate"
            // you can specify it here.
            UIApplication.Main(args, null, "AppDelegate");
        }
示例#3
0
        private static ICoreSrcDependencies CreateNewSrc(Random random)
        {
            DateTime           dateTime  = CoreTest.RandomDateTime(random);
            MetadataNode       vfsroot   = new(VirtualFSInterop.MakeNewDirectoryMetadata("src", dateTime), null);
            BPlusTree <byte[]> datastore = new(10);

            CoreTest.AddStandardVFSFiles(vfsroot, datastore, random);

            IFSInterop srcFSInterop = new VirtualFSInterop(vfsroot, datastore);

            return(FSCoreSrcDependencies.InitializeNew("test", "", srcFSInterop));
        }
示例#4
0
 public TestorData GetTestSettingsData(int testId)
 {
     using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString))
     {
         CoreTest   test = dataContext.CoreTests.Where(c => c.TestId == testId).FirstOrDefault();
         TestorData data = new TestorData();
         TestorData.CoreTestsRow coreTestRow = data.CoreTests.NewCoreTestsRow();
         coreTestRow.AllowAdmitQuestions = test.AllowAdmitQuestions;
         coreTestRow.BeginTime           = test.BeginTime;
         coreTestRow.Description         = test.Description;
         coreTestRow.EndTime             = test.EndTime;
         coreTestRow.IsActive            = test.IsActive;
         coreTestRow.IsMasterTest        = test.IsMasterTest;
         coreTestRow.PassagesNumber      = test.PassagesNumber;
         coreTestRow.PassingScore        = test.PassingScore;
         coreTestRow.QuestionsNumber     = test.QuestionsNumber;
         coreTestRow.IsDeleted           = test.IsDeleted;
         if (coreTestRow.QuestionsNumber == 0)
         {
             if (test.IsMasterTest)
             {
                 var masterParts = dataContext.CoreMasterParts.Where(c => c.MasterTestId == testId);
                 if (masterParts.Count() > 0)
                 {
                     coreTestRow.QuestionsNumber = (short)masterParts.Sum(c => c.QuestionsNumber);
                 }
                 else
                 {
                     coreTestRow.QuestionsNumber = 0;
                 }
             }
             else
             {
                 coreTestRow.QuestionsNumber = (short)test.CoreQuestions.Count();
             }
         }
         coreTestRow.ShowRightAnswersCount = test.ShowRightAnswersCount;
         coreTestRow.ShowTestResult        = test.ShowTestResult;
         coreTestRow.ShowDetailsTestResult = test.ShowDetailsTestResult;
         coreTestRow.TestId       = test.TestId;
         coreTestRow.TestKey      = test.TestKey;
         coreTestRow.TestName     = test.TestName;
         coreTestRow.TimeLimit    = test.TimeLimit;
         coreTestRow.VariantsMode = test.VariantsMode;
         coreTestRow.AdaptiveMode = test.AdaptiveMode;
         data.CoreTests.AddCoreTestsRow(coreTestRow);
         return(data);
     }
 }
示例#5
0
        protected override void OnCreate(Bundle bundle)
        {
            // tests can be inside the main assembly
            //AddTest(Assembly.GetExecutingAssembly());

            // or in any reference assemblies
            // AddTest (typeof (Your.Library.TestClass).Assembly);

            AddTest(typeof(CoreTest).Assembly);
            AddTest(typeof(EncryptorDecryptorTest).Assembly);

            CoreTest.Initialize(this);

            // Once you called base.OnCreate(), you cannot add more assemblies.
            base.OnCreate(bundle);
        }
示例#6
0
        public void SetTestSettings(byte[] testSettings)
        {
            Debug.Assert(testSettings != null);

            Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian);

            using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString))
            {
                TestorData data = DataCompressor.DecompressData <TestorData>(testSettings);
                TestorData.CoreTestsRow test = data.CoreTests[0];

                Provider.TestCoreTestsAccess(test.TestId);

                CoreTest coreTest = dataContext.CoreTests.Where(c => c.TestId == test.TestId).FirstOrDefault();
                CreateCoreTest(test, coreTest);
                dataContext.SubmitChanges();
            }
        }
示例#7
0
 //Не является операцией сервиса
 private void CreateCoreTest(TestorData.CoreTestsRow coreTest, CoreTest test)
 {
     test.TestName              = coreTest.TestName;
     test.Description           = coreTest.Description;
     test.QuestionsNumber       = coreTest.QuestionsNumber;
     test.VariantsMode          = coreTest.VariantsMode;
     test.PassagesNumber        = coreTest.PassagesNumber;
     test.PassingScore          = coreTest.PassingScore;
     test.TimeLimit             = coreTest.TimeLimit;
     test.BeginTime             = coreTest.BeginTime;
     test.EndTime               = coreTest.EndTime;
     test.AllowAdmitQuestions   = coreTest.AllowAdmitQuestions;
     test.ShowTestResult        = coreTest.ShowTestResult;
     test.ShowDetailsTestResult = coreTest.ShowDetailsTestResult;
     test.ShowRightAnswersCount = coreTest.ShowRightAnswersCount;
     test.IsActive              = coreTest.IsActive;
     test.AdaptiveMode          = coreTest.AdaptiveMode;
 }
示例#8
0
        public TestorTreeItem CreateFolder(int parentId, string folderName)
        {
            Debug.Assert(parentId >= 0);
            Debug.Assert(!String.IsNullOrEmpty(folderName));

            Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian);

            using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString))
            {
                TestorData td = new TestorData();
                TestorData.CoreTestsRow testRow = HtmlStore.CreateCoreTest(td, folderName);
                CoreTest coreTest = new CoreTest();
                CreateCoreTest(testRow, coreTest);
                dataContext.CoreTests.InsertOnSubmit(coreTest);
                dataContext.SubmitChanges();
                int            result   = dataContext.AddTestTreeItem(GetId(parentId), (int)TestorItemType.Folder, coreTest.TestId, Provider.CurrentUser.UserId);
                TestorTreeItem retValue = new TestorTreeItem(
                    result, coreTest.TestId, folderName, TestorItemType.Folder, new TestorTreeItem[] { });
                retValue.ItemOwner = Provider.CurrentUser.UserId;
                return(retValue);
            }
        }
示例#9
0
        public void MultiDestinationTest()
        {
            Random r      = new(420);
            var    source = CreateNewSrc(r);

            var destinations = Enumerable.Range(0, 5)
                               .Select(_ => CreateNewDst(r))
                               .ToList();

            // Backup to destination #1
            Core core = new(source, destinations.GetRange(0, 1));

            core.RunBackup("test", "to destination 1");

            // Add some more data
            var(hash, file) = CoreTest.MakeRandomFile(1000, r);
            source.OverwriteOrCreateFile("mdTestFile", file);

            // Backup to all
            core = new(source, destinations);
            core.RunBackup("test", "to all destinations");

            // Remove a file
            source.DeleteFile("mdTestFile");

            // Backup to destination #2
            core = new(source, destinations.GetRange(1, 1));
            core.RunBackup("test", "to destination 2");

            // Backup to all again
            core = new(source, destinations);
            core.RunBackup("test", "to all destinations again");

            System.Collections.Generic.List <BackupRecord> backupRecords = destinations[3].Backups.GetAllBackupRecords(
                new LagernCore.Models.BackupSetReference("test", false, false, false));

            Assert.IsTrue(backupRecords.Count == 2);
        }
示例#10
0
        //Не является операцией сервиса
        private List <TestSessionQuestion> GetQuestsFromTest(TestSession session, CoreTest coreTest,
                                                             CoreMasterPart masterPart, DataClassesTestorCoreDataContext dataContext)
        {
            Dictionary <Guid, int>     realQuests = new Dictionary <Guid, int>();
            List <TestSessionQuestion> retValue   = new List <TestSessionQuestion>();

            if (coreTest == null)
            {
                coreTest = masterPart.CoreTest1;
            }
            int count = 0;

            if (masterPart == null)
            {
                count = coreTest.QuestionsNumber;
                if (count == 0)
                {
                    count = coreTest.CoreQuestions.Count();
                }
            }
            else
            {
                count = masterPart.QuestionsNumber;
            }
            if (count == 0)
            {
                return new List <TestSessionQuestion>
                       {
                       }
            }
            ;
            if (masterPart == null)
            {
                var quests = from x in dataContext.CoreQuestions
                             where x.TestId == coreTest.TestId
                             select x.QuestionId;

                foreach (var quest in quests)
                {
                    realQuests.Add(Guid.NewGuid(), quest);
                }
            }
            else
            {
                var quests = from x in dataContext.CoreQuestions
                             where x.TestId == masterPart.PartTestId
                             select x.QuestionId;
                foreach (var quest in quests)
                {
                    realQuests.Add(Guid.NewGuid(), quest);
                }
            }
            Random rnd = new Random((int)(DateTime.Now.TimeOfDay.TotalMilliseconds + DateTime.Now.TimeOfDay.TotalSeconds));
            var    xq  = realQuests.OrderBy(c => c.Key).OrderBy(c => rnd.Next(1, 1000)).Take(count);

            foreach (var quest in xq)
            {
                TestSessionQuestion newQuestion = new TestSessionQuestion();
                newQuestion.TestSession = session;
                newQuestion.QuestionId  = quest.Value;
                retValue.Add(newQuestion);
            }
            return(retValue);
        }
示例#11
0
        public TestorTreeItem[] SendTests(byte[] testorData, int folderId, int[] groupIds)
        {
            Debug.Assert(testorData != null);
            Debug.Assert(folderId >= 0);

            Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian);

            using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString))
            {
                TestorData data = DataCompressor.DecompressData <TestorData>(testorData);

                //data.WriteXml("C:/locator.xml", System.Data.XmlWriteMode.IgnoreSchema);

                Dictionary <int, CoreTest> xTests = new Dictionary <int, CoreTest>();
                foreach (TestorData.CoreTestsRow coreTest in data.CoreTests)
                {
                    CoreTest test = new CoreTest();
                    test.TestKey      = coreTest.TestKey;
                    test.IsMasterTest = coreTest.IsMasterTest;
                    CreateCoreTest(coreTest, test);
                    xTests.Add(coreTest.TestId, test);
                    dataContext.CoreTests.InsertOnSubmit(test);
                    foreach (int groupId in groupIds)
                    {
                        TestGroup group = new TestGroup();
                        group.CoreTest = test;
                        group.GroupId  = groupId;
                        dataContext.TestGroups.InsertOnSubmit(group);
                    }
                    foreach (var coreQuest in coreTest.GetCoreQuestionsRows())
                    {
                        CoreQuestion quest = new CoreQuestion();
                        quest.CoreTest     = test;
                        quest.QuestionType = coreQuest.QuestionType;
                        quest.Question     = coreQuest.Question;
                        quest.QuestionMark = coreQuest.QuestionMark;
                        try
                        {
                            if (!Convert.IsDBNull(coreQuest.QuestionMetadata))
                            {
                                quest.QuestionMetadata = coreQuest.QuestionMetadata;
                            }
                        }
                        catch
                        {
                            quest.QuestionMetadata = null;
                        }
                        dataContext.CoreQuestions.InsertOnSubmit(quest);
                        foreach (var coreAnswer in coreQuest.GetCoreAnswersRows())
                        {
                            CoreAnswer answer = new CoreAnswer();
                            answer.CoreQuestion = quest;
                            answer.Answer       = coreAnswer.Answer;
                            answer.IsTrue       = coreAnswer.IsTrue;
                            try
                            {
                                if (!Convert.IsDBNull(coreAnswer.AnswerMetadata))
                                {
                                    answer.AnswerMetadata = coreAnswer.AnswerMetadata;
                                }
                            }
                            catch
                            {
                                answer.AnswerMetadata = null;
                            }
                            dataContext.CoreAnswers.InsertOnSubmit(answer);
                        }
                        foreach (var coreBlob in coreQuest.GetCoreBLOBsRows())
                        {
                            CoreBLOB blob = new CoreBLOB();
                            blob.CoreQuestion = quest;
                            blob.BLOBId       = coreBlob.BLOBId;
                            blob.BLOBContent  = coreBlob.BLOBContent;
                            dataContext.CoreBLOBs.InsertOnSubmit(blob);
                        }
                    }
                }
                foreach (var masterTest in data.CoreTests.Where(c => c.IsMasterTest == true))
                {
                    var parts = data.CoreMasterParts.Where(c => c.MasterTestId == masterTest.TestId);
                    var test  = xTests.Where(c => c.Value.TestKey == masterTest.TestKey).FirstOrDefault();
                    foreach (var part in parts)
                    {
                        CoreMasterPart masterPart = new CoreMasterPart();
                        masterPart.CoreTest1 = test.Value;
                        masterPart.CoreTest  = xTests.Where(
                            c => c.Key == part.PartTestId).FirstOrDefault().Value;
                        masterPart.QuestionsNumber = part.QuestionsNumber;
                        dataContext.CoreMasterParts.InsertOnSubmit(masterPart);
                    }
                }
                foreach (var coreReq in data.CoreRequirements)
                {
                    CoreRequirement req     = new CoreRequirement();
                    Guid            testKey = data.CoreTests.Where(c => c.TestId == coreReq.TestId).FirstOrDefault().TestKey;
                    Guid            reqKey  = data.CoreTests.Where(c => c.TestId == coreReq.Requirement).FirstOrDefault().TestKey;
                    req.CoreTest  = xTests.Where(c => c.Value.TestKey == testKey).FirstOrDefault().Value;
                    req.CoreTest1 = xTests.Where(c => c.Value.TestKey == reqKey).FirstOrDefault().Value;
                    dataContext.CoreRequirements.InsertOnSubmit(req);
                }
                try
                {
                    dataContext.SubmitChanges();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                List <TestorTreeItem> retValue = new List <TestorTreeItem>();
                foreach (var test in xTests)
                {
                    CoreTest       coreTest = test.Value;
                    TestorItemType type     = TestorItemType.Test;
                    if (coreTest.IsMasterTest)
                    {
                        type = TestorItemType.MasterTest;
                    }
                    int            result = dataContext.AddTestTreeItem(GetId(folderId), (byte)type, coreTest.TestId, Provider.CurrentUser.UserId);
                    TestorTreeItem item   = new TestorTreeItem(result, coreTest.TestId,
                                                               coreTest.TestName, type, null);
                    retValue.Add(item);
                }
                return(retValue.ToArray());
            }
        }