Test checking frontend.

This commit is contained in:
Jan Zubrycki 2020-06-20 00:08:54 +02:00
parent 442144c6e6
commit 070c0826a3
10 changed files with 108 additions and 39 deletions

View File

@ -5,6 +5,8 @@ using Microsoft.Extensions.DependencyInjection;
using System.Web.Mvc;
using WebApplication5.Models;
using WebApplication5.Templates;
using System.IO;
using System.Configuration;
namespace WebApplication5.Controllers
{
@ -87,7 +89,7 @@ namespace WebApplication5.Controllers
}
#endregion
#region Delets
#region Deletes
public ActionResult DeleteAnswer(int answerId)
{
var a = _db.Answers.FirstOrDefault(qu => qu.Id == answerId);
@ -158,34 +160,22 @@ namespace WebApplication5.Controllers
return RedirectToAction("AllForTemplate");
}
#endregion
public ActionResult GeneratePDF(TemplatesOrder templatesToGenerate)
#region Check Templates
public ActionResult Tests()
{
var catq1 = new TemplateViewModel()
{
CategoryId = 1,
NumberOfQuestions = 3,
QuestionsIds = new List<int>(){ 1, 2, 3 }
};
var catq2 = new TemplateViewModel()
{
CategoryId = 2,
QuestionsIds = new List<int>(),
NumberOfQuestions = 2
};
templatesToGenerate = new TemplatesOrder()
{
TestName = "Wielki Test1",
NumberOfExamples = 5,
Categories = new List<TemplateViewModel>() { catq1, catq2 }
};
var x = new CheckCards(_db);
x.CheckFolder(@"C:\Users\Janek\Desktop\Tests\scans");
var generator = new TemplateGenerator(_db, templatesToGenerate);
generator.ProcessOrder();
return View();
var path = string.Format("{0}{1}", ConfigurationManager.AppSettings["TestsFolder"], "toCheck");
var listOfFoldersWithTests = Directory.GetDirectories(path);
return View(listOfFoldersWithTests.ToList());
}
public ActionResult CheckTest(string path)
{
var x = new CheckCards(_db);
var results = x.CheckFolder(path);
return View(results);
}
#endregion
}
}

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication5.Models
{
public class Result
{
public int Points { get; set; }
public int PointsMax { get; set; }
public string AnswerFileName { get; set; }
}
}

View File

@ -9,6 +9,7 @@ using Emgu.CV.Structure;
using System.IO;
using ImageMagick;
using System.Drawing;
using WebApplication5.Models;
namespace WebApplication5.Templates
{
@ -19,8 +20,9 @@ namespace WebApplication5.Templates
{
_db = db;
}
public void CheckFolder(string folder)
public List<Result> CheckFolder(string folder)
{
var results = new List<Result>();
string[] fileEntries = Directory.GetFiles(folder);
foreach (string fileName in fileEntries.Where(f => f.EndsWith(".pdf")))
@ -44,7 +46,14 @@ namespace WebApplication5.Templates
if (ta.SequenceEqual(correctRelativeAnswers))
points += q.DefaultScore;
}
results.Add(new Result()
{
AnswerFileName = fileName,
Points = points,
PointsMax = maxPoints
});
}
return results;
}
private List<TemplateAnswer> ProcessFile(string fileName)
{

View File

@ -11,7 +11,6 @@ namespace WebApplication5.Templates
{
private TestsDbContext _db;
private TemplatesOrder _templatesOrder;
private string fileName = Guid.NewGuid().ToString();
private WriterPDF writer= new WriterPDF();
public TemplateGenerator(TestsDbContext db, TemplatesOrder templatesOrder)
@ -21,7 +20,7 @@ namespace WebApplication5.Templates
}
public void ProcessOrder()
{
writer.CreateFile(fileName);
writer.CreateFile(_templatesOrder.TestName);
for (int i = 0; i < _templatesOrder.NumberOfExamples; i++)
{
var questionNumber = 1;
@ -40,10 +39,6 @@ namespace WebApplication5.Templates
}
writer.EndPage();
writer.WriteAnswerTemplate(questions, string.Join("_", questions.Select(q => q.Id)));
//TODO
//wrtie to DB
//QRcode + questions
}
writer.CloseFile();
}

View File

@ -115,8 +115,6 @@ namespace WebApplication5.Writer
writer.Close();
}
public void WriteAnswerTemplate(List<Question> questions, string qrCode)
{
AddUserId();

View File

@ -6,7 +6,7 @@
<h2>@ViewBag.Title</h2>
<div class="row">
<div class="col-md-8">
<div class="col-md-8">
<section id="loginForm">
@using (Html.BeginForm("GenerateTemplate", "CRUD", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{

View File

@ -0,0 +1,31 @@
@using WebApplication5.Models
@model List<Result>
@{
ViewBag.Title = "Rezultaty";
}
<h2>@ViewBag.Title</h2>
<div class="row">
<div class="row">
<div class="col-md-4">Nazwa</div>
<div class="col-md-2">Liczba punktów</div>
<div class="col-md-2">Max punktów</div>
</div>
<hr />
@foreach (var result in Model)
{
<div class="row">
<div class="col-md-4">@result.AnswerFileName</div>
<div class="col-md-2">@result.Points</div>
<div class="col-md-2">@result.PointsMax</div>
</div>
}
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

View File

@ -0,0 +1,28 @@
@model List<string>
@{
ViewBag.Title = "Foldery z wynikami";
}
<h2>@ViewBag.Title</h2>
<div class="row">
<div class="row">
<div class="col-md-4">Nazwa</div>
<div class="col-md-2">Sprawdź folder</div>
</div>
<hr />
@foreach (var result in Model)
{
<div class="row">
<div class="col-md-4">@result</div>
<div class="col-md-2">
<a href="@Url.Action("CheckTest", "Crud", new { path = result })">Sprawdź</a>
</div>
</div>
}
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

View File

@ -23,7 +23,7 @@
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Kategorie", "Categories", "CRUD")</li>
<li>@Html.ActionLink("Generacja", "AllForTemplate", "CRUD")</li>
<li>@Html.ActionLink("Sprawdzanie", "Check", "CRUD")</li>
<li>@Html.ActionLink("Sprawdzanie", "Tests", "CRUD")</li>
</ul>
</div>
</div>

View File

@ -384,6 +384,7 @@
<Compile Include="Controllers\CRUDController.cs" />
<Compile Include="Controllers\HomeController.cs" />
<Compile Include="Controllers\ManageController.cs" />
<Compile Include="Models\Business\Result.cs" />
<Compile Include="Models\EF\DbEntities\Answer.cs" />
<Compile Include="Models\EF\DbEntities\Category.cs" />
<Compile Include="Models\EF\DbEntities\Configurations\AnswerConfig.cs" />
@ -482,6 +483,8 @@
<Content Include="Views\CRUD\Questions.cshtml" />
<Content Include="Views\CRUD\Answers.cshtml" />
<Content Include="Views\CRUD\AllForTemplate.cshtml" />
<Content Include="Views\CRUD\CheckTest.cshtml" />
<Content Include="Views\CRUD\Tests.cshtml" />
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />