public byte[] GetTestSettings(int testId) { Debug.Assert(testId > 0); Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian, TestorUserRole.Student, TestorUserRole.Anonymous); var data = Helper.GetTestSettingsData(testId); return(DataCompressor.CompressData(data)); }
public Player() { var options = MulticastConnectionOptions.Create(); _guid = Guid.NewGuid(); _converter = new Converter <DataModel>(); _transmitter = new UdpMulticastConnection(options); _waveIn = new WaveIn { WaveFormat = WaveFormat.CreateIeeeFloatWaveFormat(44100, 2) }; _compressor = new DataCompressor(); }
private void InitSettings() { if (ViewState["StartTime"] == null) { DateTime sDate = CalendarStart.SelectedDate; ViewState["StartTime"] = new DateTime(sDate.Year, sDate.Month, sDate.Day, 0, 0, 0); } if (ViewState["EndTime"] == null) { DateTime eDate = CalendarEnd.SelectedDate; ViewState["EndTime"] = new DateTime(eDate.Year, eDate.Month, eDate.Day, 23, 59, 0); } if (ViewState["SelectedTest"] == null) { if (Request["testId"] == null) { ViewState["SelectedTest"] = "0"; } else { ViewState["SelectedTest"] = Request["testId"]; int testId = 0; if (!int.TryParse(ViewState["SelectedTest"].ToString(), out testId)) { Response.Redirect("~/Default.aspx"); } var testData = DataCompressor.DecompressData <TestorData>(LocalUser.TestEdit.GetTestSettings(testId)); ViewState["sTest"] = testData.CoreTests[0].TestName; } } if (ViewState["SelectedGroup"] == null) { ViewState["SelectedGroup"] = "0"; } if (ViewState["SelectedUser"] == null) { ViewState["SelectedUser"] = 0; } if (ViewState["sUser"] == null) { ViewState["sUser"] = String.Empty; ViewState["sGroup"] = String.Empty; if (ViewState["sTest"] == null) { ViewState["sTest"] = String.Empty; } } }
public byte[] FindUsers(string userInfo, TestorUserRole userRole, TestorUserStatus userStatus, bool getRemoved, int groupId, int takeCount) { if (Provider.CurrentUser.UserRole == TestorUserRole.NotDefined || Provider.CurrentUser.UserRole == TestorUserRole.Anonymous || Provider.CurrentUser.UserRole == TestorUserRole.Student) { if (userRole != TestorUserRole.NotDefined && userRole != TestorUserRole.Anonymous && userRole != TestorUserRole.Student) { Provider.ThrowAccessFaultException(); } } return(DataCompressor.CompressData <TestorCoreUser[]>(UserSearchHelper.FindUsers(userInfo, userRole, userStatus, groupId, getRemoved, takeCount, true))); }
public Package Pack(IEnumerable <DataTable> data) { DataSerializer serializer = new DataSerializer(_serializationStrategy); DataCompressor compressor = new DataCompressor(_compressionStrategy); var turbinesDataJson = serializer.Serialize(data); var turbinesDataBinary = compressor.Compress(turbinesDataJson); return(new Package { DataType = PayloadDataType.Data10Minutes, EncryptionAlgorithm = EncryptionAlgorithmType.AES, Retention = -1, TimeStamp = DateTime.Now, Payload = turbinesDataBinary }); }
public void SetTestSettings(TestorData testorData) { SystemStateManager.OnStateChanged(true); byte[] data = DataCompressor.CompressData(testorData); SynchronizationContext context = SynchronizationContext.Current; _currentThread = new Thread(new ThreadStart(() => { StaticServerProvider.TestEdit.SetTestSettings(data); if ((this.TopLevelControl as Form).IsHandleCreated) { context.Send(d => { SystemStateManager.OnStateChanged(false); }, null); } })); _currentThread.Start(); }
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(); } }
internal override void ProcessQuestion(bool isNewQuestion) { if (_webServerProvider == null) { StartTestParams startParams = StaticServerProvider.TestClient.GetNotCommitedSessions(0, false); if (startParams != null && startParams.AdditionalTime.HasValue) { AdditionalTime = startParams.AdditionalTime.Value; OnTimeChanged(); } } if (isNewQuestion) { InitNextId(0); } if (State == ProviderState.Results) { return; } int qId = _questIds[_index]; try { bool getBlobs = _webServerProvider == null; if (_useCompression) { _currentQuestion = HtmlStore.GetHtmlStore(DataCompressor.DecompressData <TestorData>(TestClient.GetQuestion(qId, getBlobs)), qId); } else { _currentQuestion = HtmlStore.GetHtmlStore(TestClient.GetQuestionData(qId, getBlobs), qId); } } catch (TimeoutException) { _currentQuestion = null; } catch { State = ProviderState.Results; } }
private static void Main() { AppDomain currentDomain = AppDomain.CurrentDomain; currentDomain.UnhandledException += MyHandler; //TODO settings icinde birden fazla source and destination okunabilmeli, tek klasor yedeklenmeyecek. array olmasi gerekiyor var settings = JsonHelper.LoadJson(); //TODO klasor yapisi : DestionationFolder\\2020\\11\05\\SourceFolderName_12_30.zip seklinde olmali foreach (var setting in settings) { var targetFolderName = $"{setting.SourcePath.Substring(setting.SourcePath.LastIndexOf('\\') + 1)}_{DateTime.Now:HH_mm}"; var folderPath = Directory.CreateDirectory(Path.Combine(setting.DestinationPath, DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString(), DateTime.Now.Day.ToString())); if (!File.Exists(Path.Combine(folderPath.FullName, targetFolderName + ".zip"))) { DataCompressor.Compression(setting.SourcePath, Path.Combine(folderPath.FullName, targetFolderName)); } } }
public void GetUsers(TestorUserRole selectedRole, TestorUserStatus status, bool getRemoved) { if (SystemStateManager.TestState()) { return; } this.CurrentBindingSource.DataSource = null; SystemStateManager.OnStateChanged(true); _currentThread = new Thread(new ThreadStart(() => { try { _users.Clear(); _users.InsertRange(0, DataCompressor.DecompressData <TestorCoreUser[]>(StaticServerProvider.UserManagement.FindUsers( String.Empty, selectedRole, status, getRemoved, this.SelectedGroup.ItemId, 0))); if ((this.TopLevelControl as Form).IsHandleCreated) { this.Invoke((Action)(() => { OnUsersGetted(); SystemStateManager.OnStateChanged(false); })); } } catch (Exception ex) { if ((this.TopLevelControl as Form).IsHandleCreated) { this.Invoke((Action)(() => { SystemMessage.ShowErrorMessage(ex); SystemStateManager.OnStateChanged(false); })); } } })); _currentThread.Start(); }
public byte[] GetTestHTML(int testId) { Debug.Assert(testId > 0); Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian); Provider.TestCoreTestsAccess(testId); List <HtmlStore> retValue = new List <HtmlStore>(); using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString)) { var quests = from c in dataContext.CoreQuestions where c.TestId == testId orderby c.QuestionId select c; foreach (var quest in quests) { HtmlStore store = new HtmlStore(); store.Html = quest.Question; foreach (var answer in quest.CoreAnswers) { HtmlStore answerStore = new HtmlStore(); answerStore.Html = answer.Answer; answerStore.IsTrue = answer.IsTrue; store.SubItems.Add(answerStore); } foreach (var blob in quest.CoreBLOBs) { store.Images.Add(blob.BLOBId, blob.BLOBContent.ToArray()); } retValue.Add(store); } return(DataCompressor.CompressData <HtmlStore[]>(retValue.ToArray())); } }
public void TestCompression1() { var samples1_1000 = Sample1.GenerateSamples(100000); //TestSample1Sanity(1000, samples1_1000); Stopwatch w = new Stopwatch(); w.Start(); EnumerationFinder <Sample1> finder = new EnumerationFinder <Sample1>(samples1_1000); finder.GenerateEnumeration(x => x.Category); finder.GenerateEnumeration(x => x.CategoryId); finder.GenerateEnumeration(x => x.Manager); var packedData = DataCompressor <Sample1> .Compress(samples1_1000, finder.Schema, finder.EnumerationList); w.Stop(); var elapsedMillis = w.Elapsed.TotalMilliseconds; var originalJson = JsonUtils.ConvertToJson(samples1_1000).ToCharArray().Length; var compressedJson = JsonUtils.ConvertToJson(packedData).ToCharArray().Length; Assert.IsNotNull(packedData); }
public string Unpack(byte[] payload) { DataCompressor compressor = new DataCompressor(_compressionStrategy); return(compressor.Decompress(payload)); }
public TestorData GetTestSettings(int testId) { byte[] result = StaticServerProvider.TestEdit.GetTestSettings(testId); return DataCompressor.DecompressData<TestorData>(result); }
public void GetTestStatistics() { TestorData td = DataCompressor.DecompressData <TestorData>( LocalUser.TestEdit.GetTestSettings(_testId)); var test = td.CoreTests[0]; lblTest.Text = test.TestName; lblQuestionsNumber.Text = test.QuestionsNumber.ToString(); lblPassingScore.Text = test.PassingScore.ToString(); var tStat = LocalUser.TestClient.GetTestStatistics(_testId, _groupId); if (tStat.AverageScore.HasValue) { lblAverageScore.Text = tStat.AverageScore.Value.ToString("0.00"); } else { lblAverageScore.Text = "-"; } lblPassedPercent.Text = tStat.PassedPercent.ToString("0.00"); if (tStat.TestStatistics.Length > 20) { List <TestStatistics> stat1 = new List <TestStatistics>(); List <TestStatistics> stat2 = new List <TestStatistics>(); int x = tStat.TestStatistics.Length / 2; if (tStat.TestStatistics.Length % 2 > 0) { x++; } for (int i = 0; i < tStat.TestStatistics.Count(); i++) { if (i < x && x > 5) { stat1.Add(tStat.TestStatistics[i]); } else { stat2.Add(tStat.TestStatistics[i]); } } rpScore.DataSource = stat1; rpScoreCount.DataSource = stat1; rpScore.DataBind(); rpScoreCount.DataBind(); rpScore1.DataSource = stat2; rpScoreCount1.DataSource = stat2; rpScore1.DataBind(); rpScoreCount1.DataBind(); phScores.Visible = true; } else { rpScore.DataSource = tStat.TestStatistics; rpScoreCount.DataSource = tStat.TestStatistics; rpScore.DataBind(); rpScoreCount.DataBind(); phScores.Visible = false; } testChart.DataSource = tStat.TestStatistics; testChart.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { if (LocalUser.IsIntranet && !Context.User.Identity.IsAuthenticated) { Response.Redirect("~/Login.aspx"); } StartTestParams ncs = LocalUser.TestClient.GetNotCommitedSessions(0, false); if (ncs != null) { Server.Transfer("~/Testing.aspx"); } MultiViewMain.ActiveViewIndex = 0; LabelTestname.Visible = false; requirementsPanel.Visible = false; if (Context.User.Identity.IsAuthenticated) { var currentUser = LocalUser.SecurityProvider.CurrentUser; if (currentUser == null) { FormsAuthentication.SignOut(); Response.Redirect("~/Login.aspx"); } string userName = String.Format(":: {0} {1} {2}", HtmlStore.GetString(currentUser.LastName), HtmlStore.GetString(currentUser.FirstName), HtmlStore.GetString(currentUser.SecondName)); Label lbl = (this.Master.FindControl("userName") as Label); if (String.IsNullOrEmpty(userName.Trim())) { lbl.Text = currentUser.Login; } else { lbl.Text = userName; } } if (InitPageMode()) { InitTree(); } else { InitTestList(); InitNavigator(); if (_currentItem.ItemType == TestorItemType.Test || _currentItem.ItemType == TestorItemType.MasterTest) { MultiViewMain.ActiveViewIndex = 2; postButton.Text = "Приступить к тестированию"; _currentTest = DataCompressor.DecompressData <TestorData>( LocalUser.TestEdit.GetTestSettings(_currentItem.TestId.Value)); testDetails.Text = HttpHandler.GetPreTestingHtml(_currentTest.CoreTests[0]); TestorData.CoreTestsRow test = _currentTest.CoreTests[0]; LabelTestname.Visible = true; RemoteTestingProvider _provider = new RemoteTestingProvider(LocalUser.WebServerProvider, _currentItem, _currentTest, null, false); if (!_provider.IsTestActive) { postButton.Enabled = false; LabelTestname.ForeColor = Color.Red; LabelTestname.Text = _provider.NotActiveMessage; if (_provider.RequirementsTests != null) { postButton.Enabled = false; LabelTestname.Text = "Перед прохлждением данного теста необходимо пройти предыдущие тесты"; LabelTestname.ForeColor = Color.Red; requirementsPanel.Visible = true; requirementsRepeater.DataSource = _provider.RequirementsTests; requirementsRepeater.DataBind(); } return; } if (LocalUser.SecurityProvider.CurrentUser.UserRole == TestorUserRole.Administrator || LocalUser.SecurityProvider.CurrentUser.UserRole == TestorUserRole.Teacher || LocalUser.SecurityProvider.CurrentUser.UserRole == TestorUserRole.Laboratorian) { LabelTestname.Text = String.Format("Тест: <a href=\"/Manage/Statistics.aspx?testId={0}\">{1}</a>", _currentItem.TestId, _currentItem.ItemName.Trim()); } else { LabelTestname.Text = String.Format("Тест: \"{0}\"", _currentItem.ItemName.Trim()); } if (postButton.Attributes[BUTTON_MODE] == NULL_VALUE) { postButton.Attributes[BUTTON_MODE] = NTMODE_VALUE; } else { postButton.Attributes[BUTTON_MODE] = TESTING_VALUE; } postButton.Attributes[BUTTON_VALUE] = _currentItem.ItemId.ToString(); } } }
static void Main(string[] args) { bool result; Options.Options options = new Options.Options(); Console.WriteLine(options.GetUsage()); do { result = false; try { // если запускаем .exe, а не из коммандной строки if (args == null || args.Length == 0) { string program = Path.GetFileNameWithoutExtension(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName).Split('.')[0]; //получаем имя программы Console.Write("\nВведите команду: "); args = Regex.Split(Console.ReadLine(), @"\s+"); if (args[0].ToLower() == program.ToLower()) { string[] arguments = new string[args.Length - 1]; Array.Copy(args, 1, arguments, 0, arguments.Length); // копируем аргументы командной строки if (CommandLine.Parser.Default.ParseArguments(arguments, options)) { OptionsModel model = new OptionsModel(options); if (model.IsValid()) { if (model.CommandName == "compress") { DataCompressor compressor = new DataCompressor(model.InputPath, model.OutputPath); result = compressor.RunArchive(); } else { DataDecompressor decompressor = new DataDecompressor(model.InputPath, model.OutputPath); result = decompressor.RunUnarchive(); } } else { Console.WriteLine("Входные параметры не действительны! Попробуйте ввести команду заново: "); } } } } else { if (CommandLine.Parser.Default.ParseArguments(args, options)) { OptionsModel model = new OptionsModel(options); if (model.IsValid()) { if (model.CommandName == "compress") { DataCompressor compressor = new DataCompressor(model.InputPath, model.OutputPath); result = compressor.RunArchive(); } else { DataDecompressor decompressor = new DataDecompressor(model.InputPath, model.OutputPath); result = decompressor.RunUnarchive(); } } else { Console.WriteLine("Входные параметры не действительны! Попробуйте ввести команду заново: "); } } } } catch (ArgumentException) { Console.WriteLine("Один или несколько входных параметров не действительны: "); } finally { if (result == true) { Console.WriteLine("Операция успешно выполнена!"); } else { Console.WriteLine("Операция не выполнена"); } options = new Options.Options(); args = null; Console.WriteLine("Нажмите 'Esc' для выхода или любую клавишу для продолжения... : "); } }while (Console.ReadKey().KeyChar != 0x1B); // пока не нажали кнопку "esc"; }
public byte[] GetQuestion(int questId, bool getBLOBs) { Debug.Assert(questId > 0); return(DataCompressor.CompressData <TestorData>(GetQuestion(questId, false, false, getBLOBs))); }
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()); } }
private void saveToolStripMenuItem_Click(object sender, EventArgs e) { if (SystemStateManager.TestState()) { return; } if (treeView.SelectedItem.ItemType != TestorItemType.Test) { SystemMessage.ShowErrorMessage("Выберите тест."); return; } if (saveFileDialog.ShowDialog() == DialogResult.OK) { HtmlStore[] store = DataCompressor.DecompressData <HtmlStore[]>(StaticServerProvider.TestEdit.GetTestHTML(treeView.SelectedItem.TestId.Value)); StringBuilder sb = new StringBuilder(); sb.Append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"); sb.Append("<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/><title>Test</title></head><body>"); int i = 0; foreach (var str in store) { if (i != 0) { sb.Append("<br/>"); } i++; sb.Append(i.ToString() + ". "); sb.Append(str.Html); sb.Append("<br/>"); char cr = 'a'; foreach (var ans in str.SubItems) { sb.Append(cr.ToString() + ")"); if (ans.IsTrue) { sb.Append("!!!"); } sb.Append(ans.Html); sb.Append("<br/>"); cr++; } } sb.Append("</body></html>"); try { FileInfo fi = new FileInfo(saveFileDialog.FileName); DirectoryInfo di = Directory.CreateDirectory(Path.Combine(fi.Directory.FullName, fi.Name + "_files")); foreach (var str in store) { foreach (var image in str.Images) { using (BinaryWriter bw = new BinaryWriter(File.Open(Path.Combine(di.FullName, image.Key.ToString() + ".png"), FileMode.Create))) { bw.Write(image.Value, 0, image.Value.Length); } } } using (TextWriter tw = new StreamWriter(File.Open(saveFileDialog.FileName, FileMode.Create))) { tw.Write(sb.ToString().Replace("#$", di.Name + "/").Replace("#%", ".")); } } catch (Exception ex) { SystemMessage.ShowErrorMessage(ex.Message); } } }