Init project
This commit is contained in:
commit
86ff1e0fe9
BIN
QuizMaster/.vs/ProjectEvaluation/quizmaster.metadata.v9.bin
Normal file
BIN
QuizMaster/.vs/ProjectEvaluation/quizmaster.metadata.v9.bin
Normal file
Binary file not shown.
BIN
QuizMaster/.vs/ProjectEvaluation/quizmaster.projects.v9.bin
Normal file
BIN
QuizMaster/.vs/ProjectEvaluation/quizmaster.projects.v9.bin
Normal file
Binary file not shown.
BIN
QuizMaster/.vs/ProjectEvaluation/quizmaster.strings.v9.bin
Normal file
BIN
QuizMaster/.vs/ProjectEvaluation/quizmaster.strings.v9.bin
Normal file
Binary file not shown.
BIN
QuizMaster/.vs/QuizMaster/DesignTimeBuild/.dtbcache.v2
Normal file
BIN
QuizMaster/.vs/QuizMaster/DesignTimeBuild/.dtbcache.v2
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
QuizMaster/.vs/QuizMaster/v17/.futdcache.v2
Normal file
BIN
QuizMaster/.vs/QuizMaster/v17/.futdcache.v2
Normal file
Binary file not shown.
BIN
QuizMaster/.vs/QuizMaster/v17/.suo
Normal file
BIN
QuizMaster/.vs/QuizMaster/v17/.suo
Normal file
Binary file not shown.
223
QuizMaster/.vs/QuizMaster/v17/DocumentLayout.backup.json
Normal file
223
QuizMaster/.vs/QuizMaster/v17/DocumentLayout.backup.json
Normal file
@ -0,0 +1,223 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "D:\\Source\\Test-Jenkins\\QuizMaster\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\test-jenkins\\quizmaster\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\test-jenkins\\quizmaster\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\test-jenkins\\quizmaster\\response\\quiz.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:response\\quiz.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\test-jenkins\\quizmaster\\response\\questionoption.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:response\\questionoption.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\test-jenkins\\quizmaster\\response\\question.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:response\\question.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\test-jenkins\\quizmaster\\service\\datautil.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:service\\datautil.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\test-jenkins\\quizmaster\\dbhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:dbhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\test-jenkins\\quizmaster\\response\\categoryinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:response\\categoryinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|D:\\Source\\Test-Jenkins\\QuizMaster\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\test-jenkins\\quizmaster\\form1.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:form1.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\test-jenkins\\quizmaster\\service\\executeexcelservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:service\\executeexcelservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\test-jenkins\\quizmaster\\service\\excelvalidator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:service\\excelvalidator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 134,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 10,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"Title": "QuestionOption.cs",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\Response\\QuestionOption.cs",
|
||||
"RelativeDocumentMoniker": "Response\\QuestionOption.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\Response\\QuestionOption.cs",
|
||||
"RelativeToolTip": "Response\\QuestionOption.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAcAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-07-02T07:59:06.439Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 7,
|
||||
"Title": "CategoryInfo.cs",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\Response\\CategoryInfo.cs",
|
||||
"RelativeDocumentMoniker": "Response\\CategoryInfo.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\Response\\CategoryInfo.cs",
|
||||
"RelativeToolTip": "Response\\CategoryInfo.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-07-01T03:49:31.648Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 9,
|
||||
"Title": "Form1.Designer.cs",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\Form1.Designer.cs",
|
||||
"RelativeDocumentMoniker": "Form1.Designer.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\Form1.Designer.cs",
|
||||
"RelativeToolTip": "Form1.Designer.cs",
|
||||
"ViewState": "AgIAAG4AAAAAAAAAAAAuwHkAAAAUAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-30T01:51:59.493Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"Title": "Question.cs",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\Response\\Question.cs",
|
||||
"RelativeDocumentMoniker": "Response\\Question.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\Response\\Question.cs",
|
||||
"RelativeToolTip": "Response\\Question.cs",
|
||||
"ViewState": "AgIAAAYAAAAAAAAAAAAuwBAAAAAsAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-29T02:22:22.487Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"Title": "DataUtil.cs",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\Service\\DataUtil.cs",
|
||||
"RelativeDocumentMoniker": "Service\\DataUtil.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\Service\\DataUtil.cs",
|
||||
"RelativeToolTip": "Service\\DataUtil.cs",
|
||||
"ViewState": "AgIAABwAAAAAAAAAAAAQwC4AAAAiAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-29T01:45:12.308Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 11,
|
||||
"Title": "ExcelValidator.cs",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\Service\\ExcelValidator.cs",
|
||||
"RelativeDocumentMoniker": "Service\\ExcelValidator.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\Service\\ExcelValidator.cs",
|
||||
"RelativeToolTip": "Service\\ExcelValidator.cs",
|
||||
"ViewState": "AgIAACIAAAAAAAAAAAAQwDwAAABYAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-28T09:23:05.48Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"Title": "Form1.cs [Design]",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\Form1.cs",
|
||||
"RelativeDocumentMoniker": "Form1.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\Form1.cs [Design]",
|
||||
"RelativeToolTip": "Form1.cs [Design]",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-28T09:15:57.769Z",
|
||||
"EditorCaption": " [Design]"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 10,
|
||||
"Title": "ExecuteExcelService.cs",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\Service\\ExecuteExcelService.cs",
|
||||
"RelativeDocumentMoniker": "Service\\ExecuteExcelService.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\Service\\ExecuteExcelService.cs",
|
||||
"RelativeToolTip": "Service\\ExecuteExcelService.cs",
|
||||
"ViewState": "AgIAAAkAAAAAAAAAAAAAABIAAAAPAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-28T07:42:59.847Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "Quiz.cs",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\Response\\Quiz.cs",
|
||||
"RelativeDocumentMoniker": "Response\\Quiz.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\Response\\Quiz.cs",
|
||||
"RelativeToolTip": "Response\\Quiz.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAuwA8AAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-28T07:41:01.32Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "Form1.cs",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\Form1.cs",
|
||||
"RelativeDocumentMoniker": "Form1.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\Form1.cs",
|
||||
"RelativeToolTip": "Form1.cs",
|
||||
"ViewState": "AgIAACsBAAAAAAAAAAAswDkBAABGAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-26T01:54:54.164Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"Title": "DbHelper.cs",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\DbHelper.cs",
|
||||
"RelativeDocumentMoniker": "DbHelper.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\DbHelper.cs",
|
||||
"RelativeToolTip": "DbHelper.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAdAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-26T01:35:21.294Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "Program.cs",
|
||||
"DocumentMoniker": "D:\\Source\\Test-Jenkins\\QuizMaster\\Program.cs",
|
||||
"RelativeDocumentMoniker": "Program.cs",
|
||||
"ToolTip": "D:\\Source\\Test-Jenkins\\QuizMaster\\Program.cs",
|
||||
"RelativeToolTip": "Program.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAIAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-26T01:32:42.515Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
217
QuizMaster/.vs/QuizMaster/v17/DocumentLayout.json
Normal file
217
QuizMaster/.vs/QuizMaster/v17/DocumentLayout.json
Normal file
@ -0,0 +1,217 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "D:\\Source\\QuizMaster\\QuizMaster\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\quizmaster\\quizmaster\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\quizmaster\\quizmaster\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\quizmaster\\quizmaster\\response\\quiz.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:response\\quiz.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\quizmaster\\quizmaster\\response\\questionoption.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:response\\questionoption.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\quizmaster\\quizmaster\\response\\question.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:response\\question.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\quizmaster\\quizmaster\\service\\datautil.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:service\\datautil.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\quizmaster\\quizmaster\\dbhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:dbhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\quizmaster\\quizmaster\\response\\categoryinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:response\\categoryinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|D:\\Source\\QuizMaster\\QuizMaster\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\quizmaster\\quizmaster\\form1.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:form1.designer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\quizmaster\\quizmaster\\service\\executeexcelservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:service\\executeexcelservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|d:\\source\\quizmaster\\quizmaster\\service\\excelvalidator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{582DBFA6-720D-44B4-B48C-909F4DD98783}|QuizMaster.csproj|solutionrelative:service\\excelvalidator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 134,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 10,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"Title": "QuestionOption.cs",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\Response\\QuestionOption.cs",
|
||||
"RelativeDocumentMoniker": "Response\\QuestionOption.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\Response\\QuestionOption.cs",
|
||||
"RelativeToolTip": "Response\\QuestionOption.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAAcAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-07-02T07:59:06.439Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 7,
|
||||
"Title": "CategoryInfo.cs",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\Response\\CategoryInfo.cs",
|
||||
"RelativeDocumentMoniker": "Response\\CategoryInfo.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\Response\\CategoryInfo.cs",
|
||||
"RelativeToolTip": "Response\\CategoryInfo.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-07-01T03:49:31.648Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 9,
|
||||
"Title": "Form1.Designer.cs",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\Form1.Designer.cs",
|
||||
"RelativeDocumentMoniker": "Form1.Designer.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\Form1.Designer.cs",
|
||||
"RelativeToolTip": "Form1.Designer.cs",
|
||||
"ViewState": "AgIAAG4AAAAAAAAAAAAuwHkAAAAUAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-30T01:51:59.493Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"Title": "Question.cs",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\Response\\Question.cs",
|
||||
"RelativeDocumentMoniker": "Response\\Question.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\Response\\Question.cs",
|
||||
"RelativeToolTip": "Response\\Question.cs",
|
||||
"ViewState": "AgIAAAYAAAAAAAAAAAAuwBAAAAAsAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-29T02:22:22.487Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"Title": "DataUtil.cs",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\Service\\DataUtil.cs",
|
||||
"RelativeDocumentMoniker": "Service\\DataUtil.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\Service\\DataUtil.cs",
|
||||
"RelativeToolTip": "Service\\DataUtil.cs",
|
||||
"ViewState": "AgIAABwAAAAAAAAAAAAQwC4AAAAiAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-29T01:45:12.308Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 11,
|
||||
"Title": "ExcelValidator.cs",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\Service\\ExcelValidator.cs",
|
||||
"RelativeDocumentMoniker": "Service\\ExcelValidator.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\Service\\ExcelValidator.cs",
|
||||
"RelativeToolTip": "Service\\ExcelValidator.cs",
|
||||
"ViewState": "AgIAACIAAAAAAAAAAAAQwDwAAABYAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-28T09:23:05.48Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 8,
|
||||
"Title": "Form1.cs [Design]",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\Form1.cs",
|
||||
"RelativeDocumentMoniker": "Form1.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\Form1.cs [Design]",
|
||||
"RelativeToolTip": "Form1.cs [Design]",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-28T09:15:57.769Z",
|
||||
"EditorCaption": " [Design]"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 10,
|
||||
"Title": "ExecuteExcelService.cs",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\Service\\ExecuteExcelService.cs",
|
||||
"RelativeDocumentMoniker": "Service\\ExecuteExcelService.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\Service\\ExecuteExcelService.cs",
|
||||
"RelativeToolTip": "Service\\ExecuteExcelService.cs",
|
||||
"ViewState": "AgIAAAkAAAAAAAAAAAAAABIAAAAPAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-28T07:42:59.847Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "Quiz.cs",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\Response\\Quiz.cs",
|
||||
"RelativeDocumentMoniker": "Response\\Quiz.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\Response\\Quiz.cs",
|
||||
"RelativeToolTip": "Response\\Quiz.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAuwA8AAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-28T07:41:01.32Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "Form1.cs",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\Form1.cs",
|
||||
"RelativeDocumentMoniker": "Form1.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\Form1.cs",
|
||||
"RelativeToolTip": "Form1.cs",
|
||||
"ViewState": "AgIAACsBAAAAAAAAAAAswD0BAAA2AAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-26T01:54:54.164Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"Title": "DbHelper.cs",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\DbHelper.cs",
|
||||
"RelativeDocumentMoniker": "DbHelper.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\DbHelper.cs",
|
||||
"RelativeToolTip": "DbHelper.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAdAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-26T01:35:21.294Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "Program.cs",
|
||||
"DocumentMoniker": "D:\\Source\\QuizMaster\\QuizMaster\\Program.cs",
|
||||
"RelativeDocumentMoniker": "Program.cs",
|
||||
"ToolTip": "D:\\Source\\QuizMaster\\QuizMaster\\Program.cs",
|
||||
"RelativeToolTip": "Program.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAIAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-26T01:32:42.515Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
77
QuizMaster/DbHelper.cs
Normal file
77
QuizMaster/DbHelper.cs
Normal file
@ -0,0 +1,77 @@
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Reflection;
|
||||
using System.Runtime.Serialization;
|
||||
using Npgsql;
|
||||
using QuizMaster.Response;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace QuizMaster
|
||||
{
|
||||
public static class DbHelper
|
||||
{
|
||||
public static string connectionString = "Host=192.168.10.140;Port=5432;Database=BSH_Quiz;Username=postgres;Password=0SIs7c6EYPsFNwq;Timeout=30;CommandTimeout=30;";
|
||||
|
||||
public static async Task<bool> TestConnection()
|
||||
{
|
||||
try
|
||||
{
|
||||
await using var conn = new NpgsqlConnection(connectionString);
|
||||
await conn.OpenAsync();
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"Lỗi kết nối database: {ex.Message}", "Database Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task<List<T>> ExecuteSelectQuery<T>(string query) where T : new()
|
||||
{
|
||||
DataTable table = new DataTable();
|
||||
|
||||
using (var conn = new NpgsqlConnection(connectionString))
|
||||
{
|
||||
await conn.OpenAsync();
|
||||
using (var cmd = new NpgsqlCommand(query, conn))
|
||||
using (var reader = await cmd.ExecuteReaderAsync())
|
||||
{
|
||||
table.Load(reader);
|
||||
}
|
||||
}
|
||||
|
||||
List<T> list = new List<T>();
|
||||
|
||||
foreach (DataRow row in table.Rows)
|
||||
{
|
||||
T obj = new T();
|
||||
|
||||
foreach (PropertyInfo prop in typeof(T).GetProperties())
|
||||
{
|
||||
if (!prop.CanWrite)
|
||||
continue;
|
||||
|
||||
string columnName = prop.Name;
|
||||
|
||||
var dataMember = prop.GetCustomAttribute<DataMemberAttribute>();
|
||||
if (dataMember != null && !string.IsNullOrEmpty(dataMember.Name))
|
||||
{
|
||||
columnName = dataMember.Name;
|
||||
}
|
||||
|
||||
if (table.Columns.Contains(columnName) && row[columnName] != DBNull.Value)
|
||||
{
|
||||
Type targetType = Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType;
|
||||
object safeValue = Convert.ChangeType(row[columnName], targetType);
|
||||
prop.SetValue(obj, safeValue);
|
||||
}
|
||||
}
|
||||
|
||||
list.Add(obj);
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
148
QuizMaster/Form1.Designer.cs
generated
Normal file
148
QuizMaster/Form1.Designer.cs
generated
Normal file
@ -0,0 +1,148 @@
|
||||
namespace QuizMaster
|
||||
{
|
||||
partial class Form1
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
tabControl1 = new TabControl();
|
||||
tabPage1 = new TabPage();
|
||||
textBox1 = new TextBox();
|
||||
BtnOpen = new Button();
|
||||
label2 = new Label();
|
||||
button1 = new Button();
|
||||
label1 = new Label();
|
||||
tabPage2 = new TabPage();
|
||||
tabControl1.SuspendLayout();
|
||||
tabPage1.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// tabControl1
|
||||
//
|
||||
tabControl1.Controls.Add(tabPage1);
|
||||
tabControl1.Controls.Add(tabPage2);
|
||||
tabControl1.Location = new Point(12, 12);
|
||||
tabControl1.Name = "tabControl1";
|
||||
tabControl1.SelectedIndex = 0;
|
||||
tabControl1.Size = new Size(1499, 955);
|
||||
tabControl1.TabIndex = 0;
|
||||
//
|
||||
// tabPage1
|
||||
//
|
||||
tabPage1.Controls.Add(textBox1);
|
||||
tabPage1.Controls.Add(BtnOpen);
|
||||
tabPage1.Controls.Add(label2);
|
||||
tabPage1.Controls.Add(button1);
|
||||
tabPage1.Controls.Add(label1);
|
||||
tabPage1.Location = new Point(4, 34);
|
||||
tabPage1.Name = "tabPage1";
|
||||
tabPage1.Padding = new Padding(3);
|
||||
tabPage1.Size = new Size(1491, 917);
|
||||
tabPage1.TabIndex = 0;
|
||||
tabPage1.Text = "Tải lên bộ câu hỏi";
|
||||
tabPage1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
textBox1.Location = new Point(195, 84);
|
||||
textBox1.Name = "textBox1";
|
||||
textBox1.Size = new Size(273, 31);
|
||||
textBox1.TabIndex = 7;
|
||||
//
|
||||
// BtnOpen
|
||||
//
|
||||
BtnOpen.Location = new Point(469, 83);
|
||||
BtnOpen.Name = "BtnOpen";
|
||||
BtnOpen.Size = new Size(92, 34);
|
||||
BtnOpen.TabIndex = 6;
|
||||
BtnOpen.Text = "open";
|
||||
BtnOpen.UseVisualStyleBackColor = true;
|
||||
BtnOpen.Click += btnOpen_Click;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.Location = new Point(28, 92);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(159, 25);
|
||||
label2.TabIndex = 5;
|
||||
label2.Text = "Upload bộ câu hỏi";
|
||||
//
|
||||
// button1
|
||||
//
|
||||
button1.Location = new Point(195, 20);
|
||||
button1.Name = "button1";
|
||||
button1.Size = new Size(112, 34);
|
||||
button1.TabIndex = 4;
|
||||
button1.Text = "Download";
|
||||
button1.UseVisualStyleBackColor = true;
|
||||
button1.Click += button1_Click;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new Point(28, 25);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(125, 25);
|
||||
label1.TabIndex = 3;
|
||||
label1.Text = "Tải về file mẫu";
|
||||
//
|
||||
// tabPage2
|
||||
//
|
||||
tabPage2.Location = new Point(4, 34);
|
||||
tabPage2.Name = "tabPage2";
|
||||
tabPage2.Padding = new Padding(3);
|
||||
tabPage2.Size = new Size(1491, 917);
|
||||
tabPage2.TabIndex = 1;
|
||||
tabPage2.Text = "Tạo bộ câu hỏi ngẫu nhiên";
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(10F, 25F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(1515, 971);
|
||||
Controls.Add(tabControl1);
|
||||
Name = "Form1";
|
||||
Text = "Form1";
|
||||
Load += Form1_Load;
|
||||
tabControl1.ResumeLayout(false);
|
||||
tabPage1.ResumeLayout(false);
|
||||
tabPage1.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private TabControl tabControl1;
|
||||
private TabPage tabPage1;
|
||||
private TabPage tabPage2;
|
||||
private Label label2;
|
||||
private Button button1;
|
||||
private Label label1;
|
||||
private TextBox textBox1;
|
||||
private Button BtnOpen;
|
||||
}
|
||||
}
|
||||
393
QuizMaster/Form1.cs
Normal file
393
QuizMaster/Form1.cs
Normal file
@ -0,0 +1,393 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing.Printing;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using OfficeOpenXml;
|
||||
using QuizMaster.Response;
|
||||
using QuizMaster.Service;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
using static System.Windows.Forms.AxHost;
|
||||
|
||||
namespace QuizMaster
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private static string defaultCombobox = "Chọn lĩnh vực";
|
||||
|
||||
private List<string> categorys = new List<string>();
|
||||
|
||||
private List<string> lstDep = new List<string>
|
||||
{
|
||||
"Ban CNTT",
|
||||
"Ban XCG",
|
||||
"Ban TCHC",
|
||||
"Ban PTĐT"
|
||||
};
|
||||
|
||||
private static string dfDep = "Chọn phòng ban";
|
||||
private bool isUpdating = false;
|
||||
List<Button> buttons = new List<Button>();
|
||||
private List<ComboBox> comboBoxes = new List<ComboBox>();
|
||||
private List<TextBox> textBoxes = new List<TextBox>();
|
||||
public static int startY = 27; // Vị trí Y bắt đầu
|
||||
public static int spacing = 40; // Khoảng cách giữa các ComboBox
|
||||
public static int pointX = 19;
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
private async void Form1_Load(object sender, EventArgs e)
|
||||
{
|
||||
List<string> deps = new List<string>() { dfDep };
|
||||
deps.AddRange(lstDep);
|
||||
ComboBox comboMain = new ComboBox();
|
||||
comboMain.Location = new Point(pointX, startY);
|
||||
comboMain.Size = new Size(182, 33);
|
||||
comboMain.Name = $"comboMain";
|
||||
comboMain.DataSource = deps;
|
||||
comboMain.SelectedIndexChanged += comboBoxMain_SelectedIndexChanged;
|
||||
comboMain.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
tabPage2.Controls.Add(comboMain);
|
||||
|
||||
try
|
||||
{
|
||||
categorys = await DataUtil.GetCategoriesAsync();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"Lỗi khi tải danh sách lĩnh vực: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
categorys = new List<string>(); // Khởi tạo list rỗng nếu có lỗi
|
||||
}
|
||||
}
|
||||
|
||||
private void ComboBox_SelectedIndexChanged(object? sender, EventArgs e)
|
||||
{
|
||||
if (isUpdating || sender == null) return; // Đang cập nhật hoặc sender là null, bỏ qua
|
||||
|
||||
isUpdating = true; // Bắt đầu cập nhật
|
||||
|
||||
var cbbChange = sender as ComboBox;
|
||||
if (cbbChange == null)
|
||||
{
|
||||
isUpdating = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// Lấy các giá trị đã được chọn, bỏ qua "-- Chọn --"
|
||||
var daChon = comboBoxes
|
||||
.Where(cb => cb != null && cb.SelectedIndex > 0 && cb.SelectedItem != null)
|
||||
.Select(cb => cb.SelectedItem.ToString())
|
||||
.Where(s => s != null)
|
||||
.ToList();
|
||||
|
||||
foreach (var cb in comboBoxes.Where(cb => cb != null))
|
||||
{
|
||||
if (cb == cbbChange) continue; // KHÔNG cập nhật lại ComboBox đang thay đổi
|
||||
|
||||
var oldSelected = cb.SelectedItem?.ToString();
|
||||
|
||||
var danhSachMoi = categorys
|
||||
.Where(x => !daChon.Contains(x) || x == oldSelected)
|
||||
.Prepend(defaultCombobox)
|
||||
.ToList();
|
||||
|
||||
cb.DataSource = null; // Tránh sự kiện SelectedIndexChanged bị gọi lại giữa chừng
|
||||
cb.DataSource = danhSachMoi;
|
||||
|
||||
int index = danhSachMoi.IndexOf(oldSelected ?? "");
|
||||
cb.SelectedIndex = index >= 0 ? index : 0;
|
||||
}
|
||||
|
||||
// Ẩn combobox thừa
|
||||
int soLuongDaChon = daChon.Count;
|
||||
for (int i = 0; i < comboBoxes.Count; i++)
|
||||
{
|
||||
if (comboBoxes[i] != null)
|
||||
{
|
||||
// Chỉ hiện tối đa số lượng mục gốc
|
||||
comboBoxes[i].Visible = i < categorys.Count;
|
||||
}
|
||||
}
|
||||
// ======= THÊM PHẦN HIỂN THỊ TEXTBOX TƯƠNG ỨNG =======
|
||||
int indexCombo = comboBoxes.IndexOf(cbbChange);
|
||||
string selectedText = cbbChange.SelectedItem?.ToString() ?? "";
|
||||
//string txtBoxName = $"txtBox_{indexCombo}";
|
||||
string txtBoxName = selectedText;
|
||||
|
||||
// Nếu chọn khác "-- Chọn --" thì hiển thị TextBox
|
||||
if (selectedText != defaultCombobox)
|
||||
{
|
||||
var existingTextBox = tabPage2.Controls.Find(txtBoxName, true).FirstOrDefault();
|
||||
|
||||
if (existingTextBox == null)
|
||||
{
|
||||
TextBox txt = new TextBox();
|
||||
txt.Name = txtBoxName;
|
||||
txt.Size = new Size(300, 34);
|
||||
txt.Location = new Point(cbbChange.Right + 10, cbbChange.Top);
|
||||
txt.PlaceholderText = $"Nhập số câu hỏi về {selectedText}";
|
||||
txt.TextAlign = HorizontalAlignment.Right;
|
||||
txt.KeyPress += OnlyAllowPositiveIntegers;
|
||||
tabPage2.Controls.Add(txt);
|
||||
txt.BringToFront();
|
||||
textBoxes.Add(txt);
|
||||
}
|
||||
else
|
||||
{
|
||||
((TextBox)existingTextBox).PlaceholderText = $"Nhập số câu hỏi về {selectedText}";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Nếu chọn lại "-- Chọn --", thì xóa TextBox tương ứng nếu có
|
||||
var toRemove = tabPage2.Controls.Find(txtBoxName, true).FirstOrDefault();
|
||||
if (toRemove != null)
|
||||
{
|
||||
tabPage2.Controls.Remove(toRemove);
|
||||
toRemove.Dispose();
|
||||
}
|
||||
// Xóa khỏi danh sách textBoxes
|
||||
var txtToRemove = textBoxes.FirstOrDefault(tb => tb.Name == txtBoxName);
|
||||
if (txtToRemove != null)
|
||||
{
|
||||
textBoxes.Remove(txtToRemove);
|
||||
}
|
||||
}
|
||||
|
||||
// ==============================================
|
||||
isUpdating = false; // Kết thúc cập nhật
|
||||
}
|
||||
|
||||
private void comboBoxMain_SelectedIndexChanged(object? sender, EventArgs e)
|
||||
{
|
||||
ComboBox? comboBoxMain = sender as ComboBox;
|
||||
string? selected = comboBoxMain?.SelectedItem?.ToString();
|
||||
if (selected == null || selected == dfDep)
|
||||
{
|
||||
// Xóa các ComboBox đã thêm trước đó khỏi giao diện
|
||||
foreach (var cb in comboBoxes)
|
||||
{
|
||||
tabPage2.Controls.Remove(cb);
|
||||
cb.Dispose();
|
||||
}
|
||||
|
||||
// Xóa các ComboBox đã thêm trước đó khỏi giao diện
|
||||
foreach (var btn in buttons)
|
||||
{
|
||||
tabPage2.Controls.Remove(btn);
|
||||
btn.Dispose();
|
||||
}
|
||||
|
||||
// Xóa các ComboBox đã thêm trước đó khỏi giao diện
|
||||
foreach (var txt in textBoxes)
|
||||
{
|
||||
tabPage2.Controls.Remove(txt);
|
||||
txt.Dispose();
|
||||
}
|
||||
|
||||
buttons.Clear();
|
||||
|
||||
textBoxes.Clear();
|
||||
|
||||
comboBoxes.Clear(); // Xóa khỏi danh sách quản lý
|
||||
return;
|
||||
}
|
||||
|
||||
List<string> initCombobox = new List<string> { defaultCombobox };
|
||||
initCombobox.AddRange(categorys);
|
||||
// Tạo các ComboBox mới dựa trên số lượng phần tử trong lstCategory
|
||||
|
||||
for (int i = 0; i < categorys.Count; i++)
|
||||
{
|
||||
ComboBox cb = new ComboBox();
|
||||
cb.Location = new Point(pointX, startY + spacing + (i * spacing));
|
||||
cb.Size = new Size(182, 33);
|
||||
cb.Name = $"comboBox{i + 1}";
|
||||
cb.TabIndex = i;
|
||||
cb.FormattingEnabled = true;
|
||||
cb.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
cb.SelectedIndexChanged += ComboBox_SelectedIndexChanged;
|
||||
|
||||
// Gán danh sách ban đầu
|
||||
cb.DataSource = new List<string>(initCombobox);
|
||||
|
||||
// Thêm vào tabPage2 và danh sách quản lý
|
||||
tabPage2.Controls.Add(cb);
|
||||
comboBoxes.Add(cb);
|
||||
}
|
||||
|
||||
if (comboBoxes.Count > 0)
|
||||
{
|
||||
int lastCbb = comboBoxes.Last().Location.Y;
|
||||
int heightCbb = comboBoxes.Last().Height;
|
||||
int rightCbb = comboBoxes.Last().Right;
|
||||
Button btGenerate = new Button();
|
||||
btGenerate.Location = new Point(rightCbb, lastCbb + heightCbb + 20);
|
||||
btGenerate.Size = new Size(182, 33);
|
||||
btGenerate.Text = "Generate";
|
||||
btGenerate.Click += btnGenClick;
|
||||
buttons.Add(btGenerate);
|
||||
tabPage2.Controls.Add(btGenerate);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnlyAllowPositiveIntegers(object? sender, KeyPressEventArgs e)
|
||||
{
|
||||
// Cho phép phím số và phím điều hướng (Backspace)
|
||||
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
|
||||
{
|
||||
e.Handled = true; // Chặn ký tự không hợp lệ
|
||||
}
|
||||
}
|
||||
|
||||
private async void btnGenClick(object? sender, EventArgs e)
|
||||
{
|
||||
// validate không được bỏ trống ô textbox
|
||||
Dictionary<string, string> lstCategory = new Dictionary<string, string>();
|
||||
foreach (var txt in textBoxes)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(txt.Text))
|
||||
{
|
||||
txt.Focus();
|
||||
await FlashControl(txt);
|
||||
return;
|
||||
}
|
||||
lstCategory.Add(txt.Name, txt.Text);
|
||||
}
|
||||
|
||||
// validate số câu hỏi cần gen phải nhỏ hơn số câu có trong DB
|
||||
var totalCategory = await DataUtil.GetTotalCategoriesAsync(lstCategory.Keys.ToList());
|
||||
var aaa = await DataUtil.getAllQA("SQL");
|
||||
// Get all câu hỏi và câu trả lời
|
||||
var grouped = aaa
|
||||
.GroupBy(q => new { q.QuestionId, q.Question })
|
||||
.Select(group => new
|
||||
{
|
||||
QuestionId = group.Key.QuestionId,
|
||||
Question = group.Key.Question,
|
||||
Options = group.Select(o => new
|
||||
{
|
||||
Text = o.Option,
|
||||
IsCorrect = o.IsCorrect == 1
|
||||
}).ToList()
|
||||
})
|
||||
.ToList();
|
||||
|
||||
// Thực hiện generate ra bộ đề test
|
||||
Console.WriteLine("a");
|
||||
}
|
||||
|
||||
private HashSet<Control> flashingControls = new HashSet<Control>();
|
||||
private async Task FlashControl(Control control)
|
||||
{
|
||||
if (flashingControls.Contains(control))
|
||||
return; // Đã nhấp nháy => bỏ qua
|
||||
|
||||
flashingControls.Add(control);
|
||||
var originalColor = control.BackColor;
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
control.BackColor = Color.LightPink;
|
||||
await Task.Delay(200);
|
||||
control.BackColor = originalColor;
|
||||
await Task.Delay(200);
|
||||
}
|
||||
|
||||
flashingControls.Remove(control);
|
||||
}
|
||||
|
||||
private async void btnOpen_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (OpenFileDialog openFileDialog = new OpenFileDialog())
|
||||
{
|
||||
openFileDialog.InitialDirectory = "c:\\"; // hoặc thư mục mặc định bạn muốn
|
||||
openFileDialog.Filter = "Excel Files (*.xlsx)|*.xlsx";
|
||||
openFileDialog.FilterIndex = 1;
|
||||
openFileDialog.RestoreDirectory = true;
|
||||
openFileDialog.CheckFileExists = true;
|
||||
openFileDialog.CheckPathExists = true;
|
||||
|
||||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
// Lấy đường dẫn file đã chọn
|
||||
string filePath = openFileDialog.FileName;
|
||||
|
||||
List<string> errors = ExcelValidator.ValidateExcel(filePath);
|
||||
|
||||
// Đọc toàn bộ dữ liệu
|
||||
List<Quiz> result = ExecuteExcelService.ReadExcelFile(filePath);
|
||||
|
||||
if (errors != null && errors.Count > 0)
|
||||
{
|
||||
// Hiển thị các lỗi nối thành chuỗi, mỗi lỗi trên một dòng
|
||||
string errorMessage = string.Join(Environment.NewLine, errors);
|
||||
|
||||
DialogResult dialogResult = MessageBox.Show(
|
||||
errorMessage + "\n\nBạn có muốn tiếp tục và bỏ qua các dòng bị lỗi không?",
|
||||
"Lỗi validate file Excel",
|
||||
MessageBoxButtons.YesNo,
|
||||
MessageBoxIcon.Warning
|
||||
);
|
||||
|
||||
if (dialogResult == DialogResult.No)
|
||||
{
|
||||
return; // Dừng nếu người dùng chọn No
|
||||
}
|
||||
|
||||
// Tách ra số dòng bị lỗi từ danh sách lỗi, ví dụ "Row 3:"
|
||||
HashSet<int> errorRows = new HashSet<int>();
|
||||
foreach (string error in errors)
|
||||
{
|
||||
Match match = Regex.Match(error, @"Dòng\s+(\d+)", RegexOptions.IgnoreCase);
|
||||
if (match.Success && int.TryParse(match.Groups[1].Value, out int rowNumber))
|
||||
{
|
||||
errorRows.Add(rowNumber);
|
||||
}
|
||||
}
|
||||
|
||||
// Loại bỏ dòng bị lỗi (giả sử index = rowNumber - 2 do header ở dòng 1)
|
||||
result = result
|
||||
.Where((q, index) => !errorRows.Contains(index + 2)) // +2 nếu dòng header là dòng 1
|
||||
.ToList();
|
||||
}
|
||||
|
||||
// Get new list Quiz after check exits in database
|
||||
List<Quiz> insertQuiz = new List<Quiz>();
|
||||
|
||||
foreach (Quiz quiz in result)
|
||||
{
|
||||
string compositeKey = $"{quiz.CauHoi}__{quiz.A}__{quiz.B}__{quiz.C}__{quiz.D}";
|
||||
var existRecord = await DataUtil.QuestionAndAnswersExistAsync(quiz.CauHoi, compositeKey, DbHelper.connectionString);
|
||||
if (!existRecord)
|
||||
{
|
||||
insertQuiz.Add(quiz);
|
||||
}
|
||||
}
|
||||
|
||||
if (insertQuiz.Count > 0)
|
||||
{
|
||||
bool success = await DataUtil.InsertQuestionAndAnswersAsync(insertQuiz);
|
||||
if (success)
|
||||
{
|
||||
MessageBox.Show($"Đã thêm thành công {insertQuiz.Count} câu hỏi và đáp án vào database.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Không có câu hỏi mới nào cần thêm vào database.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
120
QuizMaster/Form1.resx
Normal file
120
QuizMaster/Form1.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
20
QuizMaster/Program.cs
Normal file
20
QuizMaster/Program.cs
Normal file
@ -0,0 +1,20 @@
|
||||
using OfficeOpenXml;
|
||||
|
||||
namespace QuizMaster
|
||||
{
|
||||
internal static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
|
||||
// To customize application configuration such as set high DPI settings or default font,
|
||||
// see https://aka.ms/applicationconfiguration.
|
||||
ApplicationConfiguration.Initialize();
|
||||
Application.Run(new Form1());
|
||||
}
|
||||
}
|
||||
}
|
||||
73
QuizMaster/Properties/Resources.Designer.cs
generated
Normal file
73
QuizMaster/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,73 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace QuizMaster.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("QuizMaster.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap folder {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("folder", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
124
QuizMaster/Properties/Resources.resx
Normal file
124
QuizMaster/Properties/Resources.resx
Normal file
@ -0,0 +1,124 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="folder" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\folder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
32
QuizMaster/QuizMaster.csproj
Normal file
32
QuizMaster/QuizMaster.csproj
Normal file
@ -0,0 +1,32 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net7.0-windows</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Update="Properties\Resources.Designer.cs">
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="EPPlus" Version="7.0.8" />
|
||||
<PackageReference Include="Npgsql" Version="9.0.3" />
|
||||
<PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
8
QuizMaster/QuizMaster.csproj.user
Normal file
8
QuizMaster/QuizMaster.csproj.user
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Compile Update="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
25
QuizMaster/QuizMaster.sln
Normal file
25
QuizMaster/QuizMaster.sln
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.13.35931.197 d17.13
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuizMaster", "QuizMaster.csproj", "{582DBFA6-720D-44B4-B48C-909F4DD98783}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{582DBFA6-720D-44B4-B48C-909F4DD98783}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{582DBFA6-720D-44B4-B48C-909F4DD98783}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{582DBFA6-720D-44B4-B48C-909F4DD98783}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{582DBFA6-720D-44B4-B48C-909F4DD98783}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {B63E2517-7189-410C-85C3-D4FDE0FF78E3}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
QuizMaster/Resources/folder.png
Normal file
BIN
QuizMaster/Resources/folder.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
8
QuizMaster/Response/CategoryInfo.cs
Normal file
8
QuizMaster/Response/CategoryInfo.cs
Normal file
@ -0,0 +1,8 @@
|
||||
namespace QuizMaster.Response
|
||||
{
|
||||
internal class CategoryInfo
|
||||
{
|
||||
public string Category { get; set; } = "";
|
||||
public int Total { get; set; }
|
||||
}
|
||||
}
|
||||
29
QuizMaster/Response/Question.cs
Normal file
29
QuizMaster/Response/Question.cs
Normal file
@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace QuizMaster.Response
|
||||
{
|
||||
[DataContract]
|
||||
public class Question
|
||||
{
|
||||
[DataMember(Name = "id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
[DataMember(Name = "content")]
|
||||
public string? Content { get; set; }
|
||||
|
||||
[DataMember(Name = "category")]
|
||||
public string? Category { get; set; }
|
||||
|
||||
[DataMember(Name = "answercombo")]
|
||||
public string? AnswerCombo { get; set; }
|
||||
|
||||
[DataMember(Name = "createdat")]
|
||||
public DateTime? CreatedAt { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
10
QuizMaster/Response/QuestionOption.cs
Normal file
10
QuizMaster/Response/QuestionOption.cs
Normal file
@ -0,0 +1,10 @@
|
||||
namespace QuizMaster.Response
|
||||
{
|
||||
internal class QuestionOption
|
||||
{
|
||||
public int QuestionId { get; set; }
|
||||
public string Question { get; set; }
|
||||
public string Option { get; set; }
|
||||
public int IsCorrect { get; set; } // 1 = đúng, 0 = sai
|
||||
}
|
||||
}
|
||||
15
QuizMaster/Response/Quiz.cs
Normal file
15
QuizMaster/Response/Quiz.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace QuizMaster.Response
|
||||
{
|
||||
public class Quiz
|
||||
{
|
||||
public required string LinhVuc { get; set; }
|
||||
public required string CauHoi { get; set; }
|
||||
public string? A { get; set; }
|
||||
public string? B { get; set; }
|
||||
public string? C { get; set; }
|
||||
public string? D { get; set; }
|
||||
public required string DapAn { get; set; }
|
||||
}
|
||||
}
|
||||
249
QuizMaster/Service/DataUtil.cs
Normal file
249
QuizMaster/Service/DataUtil.cs
Normal file
@ -0,0 +1,249 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection.Metadata;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Npgsql;
|
||||
using QuizMaster.Response;
|
||||
|
||||
namespace QuizMaster.Service
|
||||
{
|
||||
internal class DataUtil
|
||||
{
|
||||
public static async Task<bool> QuestionAndAnswersExistAsync(
|
||||
string questionContent,
|
||||
string answerContents,
|
||||
string connectionString)
|
||||
{
|
||||
await using var conn = new NpgsqlConnection(connectionString);
|
||||
await conn.OpenAsync();
|
||||
|
||||
// 1. Kiểm tra xem câu hỏi đã tồn tại chưa
|
||||
var questionIdCmd = new NpgsqlCommand(@"
|
||||
SELECT Id FROM Question WHERE Content = @content AND AnswerCombo = @answerCombo;
|
||||
", conn);
|
||||
|
||||
questionIdCmd.Parameters.AddWithValue("content", questionContent);
|
||||
questionIdCmd.Parameters.AddWithValue("answerCombo", answerContents);
|
||||
var questionIdObj = await questionIdCmd.ExecuteScalarAsync();
|
||||
|
||||
if (questionIdObj == null)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static async Task<List<string>> GetCategoriesAsync()
|
||||
{
|
||||
List<string> categories = new List<string>();
|
||||
using var conn = new NpgsqlConnection(DbHelper.connectionString);
|
||||
_ = conn.OpenAsync();
|
||||
|
||||
try
|
||||
{
|
||||
var cmd = new NpgsqlCommand(@"
|
||||
SELECT DISTINCT Category
|
||||
FROM Question
|
||||
WHERE Category IS NOT NULL
|
||||
ORDER BY Category;
|
||||
", conn);
|
||||
|
||||
await using var reader = await cmd.ExecuteReaderAsync();
|
||||
while (await reader.ReadAsync())
|
||||
{
|
||||
var category = reader.GetString(0);
|
||||
if (!string.IsNullOrEmpty(category))
|
||||
{
|
||||
categories.Add(category);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"Lỗi khi lấy danh sách category: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
throw;
|
||||
}
|
||||
|
||||
return categories;
|
||||
}
|
||||
|
||||
public static async Task<List<CategoryInfo>> GetTotalCategoriesAsync(List<string> lstCategory)
|
||||
{
|
||||
var categories = new List<CategoryInfo>();
|
||||
if (lstCategory == null || lstCategory.Count == 0)
|
||||
{
|
||||
return categories;
|
||||
}
|
||||
string whereCate = string.Join(",", lstCategory.Select(c => $"'{c.Replace("'", "''")}'"));
|
||||
await using var conn = new NpgsqlConnection(DbHelper.connectionString);
|
||||
await conn.OpenAsync();
|
||||
|
||||
try
|
||||
{
|
||||
var cmd = new NpgsqlCommand(@"
|
||||
SELECT category, COUNT(*) AS Total
|
||||
FROM question
|
||||
WHERE category IN (" + whereCate + ") GROUP BY category ;", conn);
|
||||
|
||||
await using var reader = await cmd.ExecuteReaderAsync();
|
||||
while (await reader.ReadAsync())
|
||||
{
|
||||
categories.Add(new CategoryInfo
|
||||
{
|
||||
Category = reader.GetString(0),
|
||||
Total = reader.GetInt32(1)
|
||||
});
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"Lỗi khi lấy danh sách category: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
throw;
|
||||
}
|
||||
|
||||
return categories;
|
||||
}
|
||||
|
||||
public static async Task<List<QuestionOption>> getAllQA(string Category)
|
||||
{
|
||||
var questionOption = new List<QuestionOption>();
|
||||
|
||||
await using var conn = new NpgsqlConnection(DbHelper.connectionString);
|
||||
await conn.OpenAsync();
|
||||
|
||||
try
|
||||
{
|
||||
var cmd = new NpgsqlCommand(@"
|
||||
select q.id ,q.content, a.content,a.iscorrect from answer a inner join question q on a.questionid =q.id where q.category = '" + Category + "';", conn);
|
||||
|
||||
await using var reader = await cmd.ExecuteReaderAsync();
|
||||
while (await reader.ReadAsync())
|
||||
{
|
||||
questionOption.Add(new QuestionOption
|
||||
{
|
||||
QuestionId = reader.IsDBNull(0) ? 0 : reader.GetInt32(0),
|
||||
Question = reader.IsDBNull(1) ? string.Empty : reader.GetString(1),
|
||||
Option = reader.IsDBNull(2) ? string.Empty : reader.GetString(2),
|
||||
IsCorrect = reader.IsDBNull(3) ? 0 : reader.GetInt32(3)
|
||||
});
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"Lỗi khi lấy danh sách category: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
throw;
|
||||
}
|
||||
|
||||
return questionOption;
|
||||
}
|
||||
|
||||
public static async Task<bool> InsertQuestionAndAnswersAsync(List<Quiz> questions)
|
||||
{
|
||||
await using var conn = new NpgsqlConnection(DbHelper.connectionString);
|
||||
await conn.OpenAsync();
|
||||
await using var transaction = await conn.BeginTransactionAsync();
|
||||
|
||||
try
|
||||
{
|
||||
// Dictionary để lưu mapping giữa compositeKey và questionId
|
||||
var questionIdMap = new Dictionary<string, int>();
|
||||
|
||||
// Insert questions
|
||||
foreach (var q in questions)
|
||||
{
|
||||
string compositeKey = $"{q.CauHoi}__{q.A}__{q.B}__{q.C}__{q.D}";
|
||||
|
||||
// Insert question
|
||||
var cmdQuestion = new NpgsqlCommand(@"
|
||||
INSERT INTO Question (Content, Category, AnswerCombo)
|
||||
VALUES (@content, @category, @answerCombo)
|
||||
RETURNING Id;
|
||||
", conn, transaction);
|
||||
|
||||
cmdQuestion.Parameters.AddWithValue("content", q.CauHoi);
|
||||
cmdQuestion.Parameters.AddWithValue("category", q.LinhVuc);
|
||||
cmdQuestion.Parameters.AddWithValue("answerCombo", compositeKey);
|
||||
|
||||
var questionId = (int?)await cmdQuestion.ExecuteScalarAsync();
|
||||
|
||||
if (!questionId.HasValue)
|
||||
{
|
||||
throw new Exception($"Không thể insert câu hỏi: {q.CauHoi}");
|
||||
}
|
||||
|
||||
questionIdMap[compositeKey] = questionId.Value;
|
||||
|
||||
// Insert answers
|
||||
var answerOptions = new Dictionary<string, string?>
|
||||
{
|
||||
{ "A", q.A },
|
||||
{ "B", q.B },
|
||||
{ "C", q.C },
|
||||
{ "D", q.D }
|
||||
};
|
||||
|
||||
foreach (var opt in answerOptions)
|
||||
{
|
||||
var cmdAnswer = new NpgsqlCommand(@"
|
||||
INSERT INTO Answer (QuestionId, Content, IsCorrect)
|
||||
VALUES (@questionId, @content, @isCorrect);
|
||||
", conn, transaction);
|
||||
|
||||
cmdAnswer.Parameters.AddWithValue("questionId", questionId.Value);
|
||||
cmdAnswer.Parameters.AddWithValue("content", opt.Value ?? (object)DBNull.Value);
|
||||
cmdAnswer.Parameters.AddWithValue("isCorrect", opt.Key == q.DapAn ? 1 : 0);
|
||||
|
||||
await cmdAnswer.ExecuteNonQueryAsync();
|
||||
}
|
||||
}
|
||||
|
||||
await transaction.CommitAsync();
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
await transaction.RollbackAsync();
|
||||
MessageBox.Show($"Lỗi khi thêm câu hỏi và đáp án: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task<int> GetTotalQuestionCount()
|
||||
{
|
||||
string query = "SELECT COUNT(*) FROM Question";
|
||||
|
||||
await using var conn = new NpgsqlConnection(DbHelper.connectionString);
|
||||
await conn.OpenAsync();
|
||||
await using var cmd = new NpgsqlCommand(query, conn);
|
||||
|
||||
var result = await cmd.ExecuteScalarAsync();
|
||||
if (result == null || result == DBNull.Value)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return Convert.ToInt32(result);
|
||||
}
|
||||
|
||||
public static async Task<List<Question>> GetRandomQuestions(int requestedCount)
|
||||
{
|
||||
int totalCount = await GetTotalQuestionCount();
|
||||
|
||||
if (requestedCount <= 0)
|
||||
{
|
||||
MessageBox.Show("Vui lòng nhập số lượng lớn hơn 0.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return new List<Question>();
|
||||
}
|
||||
|
||||
if (requestedCount > totalCount)
|
||||
{
|
||||
MessageBox.Show($"Chỉ có {totalCount} câu hỏi trong cơ sở dữ liệu.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return new List<Question>();
|
||||
}
|
||||
|
||||
string query = $"SELECT * FROM Question ORDER BY RANDOM() LIMIT {requestedCount}";
|
||||
return await DbHelper.ExecuteSelectQuery<Question>(query);
|
||||
}
|
||||
}
|
||||
}
|
||||
96
QuizMaster/Service/ExcelValidator.cs
Normal file
96
QuizMaster/Service/ExcelValidator.cs
Normal file
@ -0,0 +1,96 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using OfficeOpenXml;
|
||||
|
||||
namespace QuizMaster.Service
|
||||
{
|
||||
public static class ExcelValidator
|
||||
{
|
||||
private static readonly List<string> ExpectedHeaders = new()
|
||||
{
|
||||
"Lĩnh vực", "Câu hỏi", "A", "B", "C", "D", "Đáp án"
|
||||
};
|
||||
|
||||
public static List<string> ValidateExcel(string filePath)
|
||||
{
|
||||
var errors = new List<string>();
|
||||
var questionOptionDict = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
|
||||
|
||||
using var package = new ExcelPackage(new FileInfo(filePath));
|
||||
var worksheet = package.Workbook.Worksheets[0]; // Sheet đầu tiên
|
||||
|
||||
// 1. Kiểm tra header
|
||||
for (int i = 0; i < ExpectedHeaders.Count; i++)
|
||||
{
|
||||
string cellValue = worksheet.Cells[1, i + 1].Text.Trim();
|
||||
if (cellValue != ExpectedHeaders[i])
|
||||
{
|
||||
errors.Add($"Cột {i + 1} phải là '{ExpectedHeaders[i]}', nhưng là '{cellValue}'");
|
||||
}
|
||||
}
|
||||
|
||||
// 2. Kiểm tra từng dòng dữ liệu
|
||||
int row = 2;
|
||||
while (true)
|
||||
{
|
||||
var firstCell = worksheet.Cells[row, 1];
|
||||
if (string.IsNullOrWhiteSpace(firstCell.Text)) break; // Dòng trống → kết thúc
|
||||
|
||||
string field = worksheet.Cells[row, 1].Text.Trim();
|
||||
string question = worksheet.Cells[row, 2].Text.Trim();
|
||||
string ansA = worksheet.Cells[row, 3].Text.Trim();
|
||||
string ansB = worksheet.Cells[row, 4].Text.Trim();
|
||||
string ansC = worksheet.Cells[row, 5].Text.Trim();
|
||||
string ansD = worksheet.Cells[row, 6].Text.Trim();
|
||||
string answer = worksheet.Cells[row, 7].Text.Trim().ToUpper();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(field))
|
||||
errors.Add($"Dòng {row}: 'Lĩnh vực' không được trống");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(question))
|
||||
{
|
||||
errors.Add($"Dòng {row}: 'Câu hỏi' không được trống");
|
||||
}
|
||||
else
|
||||
{
|
||||
string compositeKey = $"{question}__{ansA}__{ansB}__{ansC}__{ansD}";
|
||||
if (questionOptionDict.TryGetValue(compositeKey, out int existingRow))
|
||||
{
|
||||
errors.Add($"Dòng {row}: Câu hỏi và các đáp án A–D trùng với dòng {existingRow}");
|
||||
}
|
||||
else
|
||||
{
|
||||
questionOptionDict[compositeKey] = row;
|
||||
}
|
||||
}
|
||||
|
||||
// Phải có ít nhất 1 trong các phương án A-D
|
||||
if (string.IsNullOrWhiteSpace(ansA) &&
|
||||
string.IsNullOrWhiteSpace(ansB) &&
|
||||
string.IsNullOrWhiteSpace(ansC) &&
|
||||
string.IsNullOrWhiteSpace(ansD))
|
||||
{
|
||||
errors.Add($"Dòng {row}: Cần ít nhất 1 phương án A, B, C hoặc D");
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(answer))
|
||||
{
|
||||
errors.Add($"Dòng {row}: 'Đáp án' không được trống");
|
||||
}
|
||||
else if (!new[] { "A", "B", "C", "D" }.Contains(answer))
|
||||
{
|
||||
errors.Add($"Dòng {row}: 'Đáp án' phải là A, B, C hoặc D (hiện tại là '{answer}')");
|
||||
}
|
||||
|
||||
row++;
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
}
|
||||
}
|
||||
42
QuizMaster/Service/ExecuteExcelService.cs
Normal file
42
QuizMaster/Service/ExecuteExcelService.cs
Normal file
@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using OfficeOpenXml;
|
||||
using QuizMaster.Response;
|
||||
|
||||
namespace QuizMaster.Service
|
||||
{
|
||||
public static class ExecuteExcelService
|
||||
{
|
||||
public static List<Quiz> ReadExcelFile(string filePath)
|
||||
{
|
||||
var result = new List<Quiz>();
|
||||
|
||||
using (var package = new ExcelPackage(new FileInfo(filePath)))
|
||||
{
|
||||
var worksheet = package.Workbook.Worksheets[0]; // Sheet đầu tiên
|
||||
int rowCount = worksheet.Dimension.Rows;
|
||||
|
||||
for (int row = 2; row <= rowCount; row++) // Bắt đầu từ dòng 2, bỏ dòng tiêu đề
|
||||
{
|
||||
var ch = new Quiz
|
||||
{
|
||||
LinhVuc = worksheet.Cells[row, 1].Text,
|
||||
CauHoi = worksheet.Cells[row, 2].Text,
|
||||
A = worksheet.Cells[row, 3].Text,
|
||||
B = worksheet.Cells[row, 4].Text,
|
||||
C = worksheet.Cells[row, 5].Text,
|
||||
D = worksheet.Cells[row, 6].Text,
|
||||
DapAn = worksheet.Cells[row, 7].Text
|
||||
};
|
||||
|
||||
result.Add(ch);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
QuizMaster/bin/Debug/net7.0-windows/EPPlus.Interfaces.dll
Normal file
BIN
QuizMaster/bin/Debug/net7.0-windows/EPPlus.Interfaces.dll
Normal file
Binary file not shown.
BIN
QuizMaster/bin/Debug/net7.0-windows/EPPlus.System.Drawing.dll
Normal file
BIN
QuizMaster/bin/Debug/net7.0-windows/EPPlus.System.Drawing.dll
Normal file
Binary file not shown.
BIN
QuizMaster/bin/Debug/net7.0-windows/EPPlus.dll
Normal file
BIN
QuizMaster/bin/Debug/net7.0-windows/EPPlus.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
QuizMaster/bin/Debug/net7.0-windows/Npgsql.dll
Normal file
BIN
QuizMaster/bin/Debug/net7.0-windows/Npgsql.dll
Normal file
Binary file not shown.
533
QuizMaster/bin/Debug/net7.0-windows/QuizMaster.deps.json
Normal file
533
QuizMaster/bin/Debug/net7.0-windows/QuizMaster.deps.json
Normal file
@ -0,0 +1,533 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v7.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v7.0": {
|
||||
"QuizMaster/1.0.0": {
|
||||
"dependencies": {
|
||||
"EPPlus": "7.0.8",
|
||||
"Npgsql": "9.0.3",
|
||||
"System.Data.SqlClient": "4.9.0"
|
||||
},
|
||||
"runtime": {
|
||||
"QuizMaster.dll": {}
|
||||
}
|
||||
},
|
||||
"EPPlus/7.0.8": {
|
||||
"dependencies": {
|
||||
"EPPlus.Interfaces": "6.1.1",
|
||||
"EPPlus.System.Drawing": "6.1.1",
|
||||
"Microsoft.Extensions.Configuration.Json": "7.0.0",
|
||||
"Microsoft.IO.RecyclableMemoryStream": "3.0.0",
|
||||
"System.ComponentModel.Annotations": "5.0.0",
|
||||
"System.Security.Cryptography.Pkcs": "7.0.3",
|
||||
"System.Text.Encoding.CodePages": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/EPPlus.dll": {
|
||||
"assemblyVersion": "7.0.8.0",
|
||||
"fileVersion": "7.0.8.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"EPPlus.Interfaces/6.1.1": {
|
||||
"runtime": {
|
||||
"lib/net7.0/EPPlus.Interfaces.dll": {
|
||||
"assemblyVersion": "6.1.1.0",
|
||||
"fileVersion": "6.1.1.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"EPPlus.System.Drawing/6.1.1": {
|
||||
"dependencies": {
|
||||
"EPPlus.Interfaces": "6.1.1",
|
||||
"System.Drawing.Common": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/EPPlus.System.Drawing.dll": {
|
||||
"assemblyVersion": "6.1.1.0",
|
||||
"fileVersion": "6.1.1.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
|
||||
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Configuration.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.FileExtensions/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "7.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "7.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Physical": "7.0.0",
|
||||
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Configuration.FileExtensions.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Json/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "7.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
|
||||
"Microsoft.Extensions.Configuration.FileExtensions": "7.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "7.0.0",
|
||||
"System.Text.Json": "8.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Configuration.Json.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.1024.46610"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Abstractions/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Physical/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "7.0.0",
|
||||
"Microsoft.Extensions.FileSystemGlobbing": "7.0.0",
|
||||
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.FileProviders.Physical.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.FileSystemGlobbing/7.0.0": {
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
|
||||
"System.Diagnostics.DiagnosticSource": "8.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.1024.46610"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/7.0.0": {
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.IO.RecyclableMemoryStream/3.0.0": {
|
||||
"runtime": {
|
||||
"lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll": {
|
||||
"assemblyVersion": "3.0.0.0",
|
||||
"fileVersion": "3.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Win32.SystemEvents/7.0.0": {},
|
||||
"Npgsql/9.0.3": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "8.0.2",
|
||||
"System.Diagnostics.DiagnosticSource": "8.0.1",
|
||||
"System.Runtime.CompilerServices.Unsafe": "6.0.0",
|
||||
"System.Text.Json": "8.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net6.0/Npgsql.dll": {
|
||||
"assemblyVersion": "9.0.3.0",
|
||||
"fileVersion": "9.0.3.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"dependencies": {
|
||||
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
|
||||
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
|
||||
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
|
||||
}
|
||||
},
|
||||
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"runtimeTargets": {
|
||||
"runtimes/win-arm64/native/sni.dll": {
|
||||
"rid": "win-arm64",
|
||||
"assetType": "native",
|
||||
"fileVersion": "4.6.25512.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"runtimeTargets": {
|
||||
"runtimes/win-x64/native/sni.dll": {
|
||||
"rid": "win-x64",
|
||||
"assetType": "native",
|
||||
"fileVersion": "4.6.25512.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"runtimeTargets": {
|
||||
"runtimes/win-x86/native/sni.dll": {
|
||||
"rid": "win-x86",
|
||||
"assetType": "native",
|
||||
"fileVersion": "4.6.25512.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.ComponentModel.Annotations/5.0.0": {},
|
||||
"System.Data.SqlClient/4.9.0": {
|
||||
"dependencies": {
|
||||
"runtime.native.System.Data.SqlClient.sni": "4.4.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net6.0/System.Data.SqlClient.dll": {
|
||||
"assemblyVersion": "4.6.1.6",
|
||||
"fileVersion": "4.900.24.56208"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/unix/lib/net6.0/System.Data.SqlClient.dll": {
|
||||
"rid": "unix",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "4.6.1.6",
|
||||
"fileVersion": "4.900.24.56208"
|
||||
},
|
||||
"runtimes/win/lib/net6.0/System.Data.SqlClient.dll": {
|
||||
"rid": "win",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "4.6.1.6",
|
||||
"fileVersion": "4.900.24.56208"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Diagnostics.DiagnosticSource/8.0.1": {
|
||||
"runtime": {
|
||||
"lib/net7.0/System.Diagnostics.DiagnosticSource.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.424.16909"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Drawing.Common/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Win32.SystemEvents": "7.0.0"
|
||||
}
|
||||
},
|
||||
"System.Formats.Asn1/7.0.0": {},
|
||||
"System.Runtime.CompilerServices.Unsafe/6.0.0": {},
|
||||
"System.Security.Cryptography.Pkcs/7.0.3": {
|
||||
"dependencies": {
|
||||
"System.Formats.Asn1": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/System.Security.Cryptography.Pkcs.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.823.31807"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/win/lib/net7.0/System.Security.Cryptography.Pkcs.dll": {
|
||||
"rid": "win",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.823.31807"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Text.Encoding.CodePages/7.0.0": {},
|
||||
"System.Text.Encodings.Web/8.0.0": {
|
||||
"runtime": {
|
||||
"lib/net7.0/System.Text.Encodings.Web.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.23.53103"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/browser/lib/net7.0/System.Text.Encodings.Web.dll": {
|
||||
"rid": "browser",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.23.53103"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Text.Json/8.0.5": {
|
||||
"dependencies": {
|
||||
"System.Text.Encodings.Web": "8.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/System.Text.Json.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.1024.46610"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"QuizMaster/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"EPPlus/7.0.8": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-q9shaL3LMVtfUHC7KtCWTn40cO5kjirfxkUo1Hloe2ZqZmP/3UFT70JBnIhTMTh1i/dZ8ynrkd9gxLuzqfriQQ==",
|
||||
"path": "epplus/7.0.8",
|
||||
"hashPath": "epplus.7.0.8.nupkg.sha512"
|
||||
},
|
||||
"EPPlus.Interfaces/6.1.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-y7dkrOoE1ZR9Vgy1Jf2rEIaTf3SHlUjYt01NklP+F5Qh7S2ruPbzTcpYLRWMeXiG8XL8h2jqX4CyIkFt3NQGZw==",
|
||||
"path": "epplus.interfaces/6.1.1",
|
||||
"hashPath": "epplus.interfaces.6.1.1.nupkg.sha512"
|
||||
},
|
||||
"EPPlus.System.Drawing/6.1.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-lRF5gHYrmkHOOiLMI0t6q8zNYjUrzRgAM5BCXumv5xiqXko8fx3AWI+HCNZfhEqVFGOop+42KfR5GiUcCoyoMw==",
|
||||
"path": "epplus.system.drawing/6.1.1",
|
||||
"hashPath": "epplus.system.drawing.6.1.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-tldQUBWt/xeH2K7/hMPPo5g8zuLc3Ro9I5d4o/XrxvxOCA2EZBtW7bCHHTc49fcBtvB8tLAb/Qsmfrq+2SJ4vA==",
|
||||
"path": "microsoft.extensions.configuration/7.0.0",
|
||||
"hashPath": "microsoft.extensions.configuration.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==",
|
||||
"path": "microsoft.extensions.configuration.abstractions/7.0.0",
|
||||
"hashPath": "microsoft.extensions.configuration.abstractions.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.FileExtensions/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-xk2lRJ1RDuqe57BmgvRPyCt6zyePKUmvT6iuXqiHR+/OIIgWVR8Ff5k2p6DwmqY8a17hx/OnrekEhziEIeQP6Q==",
|
||||
"path": "microsoft.extensions.configuration.fileextensions/7.0.0",
|
||||
"hashPath": "microsoft.extensions.configuration.fileextensions.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Json/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-LDNYe3uw76W35Jci+be4LDf2lkQZe0A7EEYQVChFbc509CpZ4Iupod8li4PUXPBhEUOFI/rlQNf5xkzJRQGvtA==",
|
||||
"path": "microsoft.extensions.configuration.json/7.0.0",
|
||||
"hashPath": "microsoft.extensions.configuration.json.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==",
|
||||
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Abstractions/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-NyawiW9ZT/liQb34k9YqBSNPLuuPkrjMgQZ24Y/xXX1RoiBkLUdPMaQTmxhZ5TYu8ZKZ9qayzil75JX95vGQUg==",
|
||||
"path": "microsoft.extensions.fileproviders.abstractions/7.0.0",
|
||||
"hashPath": "microsoft.extensions.fileproviders.abstractions.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Physical/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-K8D2MTR+EtzkbZ8z80LrG7Ur64R7ZZdRLt1J5cgpc/pUWl0C6IkAUapPuK28oionHueCPELUqq0oYEvZfalNdg==",
|
||||
"path": "microsoft.extensions.fileproviders.physical/7.0.0",
|
||||
"hashPath": "microsoft.extensions.fileproviders.physical.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.FileSystemGlobbing/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-2jONjKHiF+E92ynz2ZFcr9OvxIw+rTGMPEH+UZGeHTEComVav93jQUWGkso8yWwVBcEJGcNcZAaqY01FFJcj7w==",
|
||||
"path": "microsoft.extensions.filesystemglobbing/7.0.0",
|
||||
"hashPath": "microsoft.extensions.filesystemglobbing.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==",
|
||||
"path": "microsoft.extensions.logging.abstractions/8.0.2",
|
||||
"hashPath": "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==",
|
||||
"path": "microsoft.extensions.primitives/7.0.0",
|
||||
"hashPath": "microsoft.extensions.primitives.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.IO.RecyclableMemoryStream/3.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-irv0HuqoH8Ig5i2fO+8dmDNdFdsrO+DoQcedwIlb810qpZHBNQHZLW7C/AHBQDgLLpw2T96vmMAy/aE4Yj55Sg==",
|
||||
"path": "microsoft.io.recyclablememorystream/3.0.0",
|
||||
"hashPath": "microsoft.io.recyclablememorystream.3.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Win32.SystemEvents/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ==",
|
||||
"path": "microsoft.win32.systemevents/7.0.0",
|
||||
"hashPath": "microsoft.win32.systemevents.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Npgsql/9.0.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-tPvY61CxOAWxNsKLEBg+oR646X4Bc8UmyQ/tJszL/7mEmIXQnnBhVJZrZEEUv0Bstu0mEsHZD5At3EO8zQRAYw==",
|
||||
"path": "npgsql/9.0.3",
|
||||
"hashPath": "npgsql.9.0.3.nupkg.sha512"
|
||||
},
|
||||
"runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-A8v6PGmk+UGbfWo5Ixup0lPM4swuSwOiayJExZwKIOjTlFFQIsu3QnDXECosBEyrWSPryxBVrdqtJyhK3BaupQ==",
|
||||
"path": "runtime.native.system.data.sqlclient.sni/4.4.0",
|
||||
"hashPath": "runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
|
||||
},
|
||||
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg==",
|
||||
"path": "runtime.win-arm64.runtime.native.system.data.sqlclient.sni/4.4.0",
|
||||
"hashPath": "runtime.win-arm64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
|
||||
},
|
||||
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ==",
|
||||
"path": "runtime.win-x64.runtime.native.system.data.sqlclient.sni/4.4.0",
|
||||
"hashPath": "runtime.win-x64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
|
||||
},
|
||||
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA==",
|
||||
"path": "runtime.win-x86.runtime.native.system.data.sqlclient.sni/4.4.0",
|
||||
"hashPath": "runtime.win-x86.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
|
||||
},
|
||||
"System.ComponentModel.Annotations/5.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg==",
|
||||
"path": "system.componentmodel.annotations/5.0.0",
|
||||
"hashPath": "system.componentmodel.annotations.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Data.SqlClient/4.9.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-j4KJO+vC62NyUtNHz854njEqXbT8OmAa5jb1nrGfYWBOcggyYUQE0w/snXeaCjdvkSKWuUD+hfvlbN8pTrJTXg==",
|
||||
"path": "system.data.sqlclient/4.9.0",
|
||||
"hashPath": "system.data.sqlclient.4.9.0.nupkg.sha512"
|
||||
},
|
||||
"System.Diagnostics.DiagnosticSource/8.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-vaoWjvkG1aenR2XdjaVivlCV9fADfgyhW5bZtXT23qaEea0lWiUljdQuze4E31vKM7ZWJaSUsbYIKE3rnzfZUg==",
|
||||
"path": "system.diagnostics.diagnosticsource/8.0.1",
|
||||
"hashPath": "system.diagnostics.diagnosticsource.8.0.1.nupkg.sha512"
|
||||
},
|
||||
"System.Drawing.Common/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KIX+oBU38pxkKPxvLcLfIkOV5Ien8ReN78wro7OF5/erwcmortzeFx+iBswlh2Vz6gVne0khocQudGwaO1Ey6A==",
|
||||
"path": "system.drawing.common/7.0.0",
|
||||
"hashPath": "system.drawing.common.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Formats.Asn1/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-+nfpV0afLmvJW8+pLlHxRjz3oZJw4fkyU9MMEaMhCsHi/SN9bGF9q79ROubDiwTiCHezmK0uCWkPP7tGFP/4yg==",
|
||||
"path": "system.formats.asn1/7.0.0",
|
||||
"hashPath": "system.formats.asn1.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Runtime.CompilerServices.Unsafe/6.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
|
||||
"path": "system.runtime.compilerservices.unsafe/6.0.0",
|
||||
"hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Security.Cryptography.Pkcs/7.0.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-yhwEHH5Gzl/VoADrXtt5XC95OFoSjNSWLHNutE7GwdOgefZVRvEXRSooSpL8HHm3qmdd9epqzsWg28UJemt22w==",
|
||||
"path": "system.security.cryptography.pkcs/7.0.3",
|
||||
"hashPath": "system.security.cryptography.pkcs.7.0.3.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Encoding.CodePages/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==",
|
||||
"path": "system.text.encoding.codepages/7.0.0",
|
||||
"hashPath": "system.text.encoding.codepages.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Encodings.Web/8.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
|
||||
"path": "system.text.encodings.web/8.0.0",
|
||||
"hashPath": "system.text.encodings.web.8.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Json/8.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==",
|
||||
"path": "system.text.json/8.0.5",
|
||||
"hashPath": "system.text.json.8.0.5.nupkg.sha512"
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
QuizMaster/bin/Debug/net7.0-windows/QuizMaster.dll
Normal file
BIN
QuizMaster/bin/Debug/net7.0-windows/QuizMaster.dll
Normal file
Binary file not shown.
BIN
QuizMaster/bin/Debug/net7.0-windows/QuizMaster.exe
Normal file
BIN
QuizMaster/bin/Debug/net7.0-windows/QuizMaster.exe
Normal file
Binary file not shown.
BIN
QuizMaster/bin/Debug/net7.0-windows/QuizMaster.pdb
Normal file
BIN
QuizMaster/bin/Debug/net7.0-windows/QuizMaster.pdb
Normal file
Binary file not shown.
@ -0,0 +1,18 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net7.0",
|
||||
"frameworks": [
|
||||
{
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "7.0.0"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.WindowsDesktop.App",
|
||||
"version": "7.0.0"
|
||||
}
|
||||
],
|
||||
"configProperties": {
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
QuizMaster/bin/Debug/net7.0-windows/System.Data.SqlClient.dll
Normal file
BIN
QuizMaster/bin/Debug/net7.0-windows/System.Data.SqlClient.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
QuizMaster/bin/Debug/net7.0-windows/System.Text.Json.dll
Normal file
BIN
QuizMaster/bin/Debug/net7.0-windows/System.Text.Json.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v7.0", FrameworkDisplayName = ".NET 7.0")]
|
||||
@ -0,0 +1,25 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("QuizMaster")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("QuizMaster")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("QuizMaster")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
@ -0,0 +1 @@
|
||||
494fffa1eeb40e7e0419966a151483d3d31c2dba1ddb4309e45467716a0e9bf9
|
||||
BIN
QuizMaster/obj/Debug/net7.0-windows/QuizMaster.Form1.resources
Normal file
BIN
QuizMaster/obj/Debug/net7.0-windows/QuizMaster.Form1.resources
Normal file
Binary file not shown.
@ -0,0 +1,22 @@
|
||||
is_global = true
|
||||
build_property.ApplicationManifest =
|
||||
build_property.StartupObject =
|
||||
build_property.ApplicationDefaultFont =
|
||||
build_property.ApplicationHighDpiMode =
|
||||
build_property.ApplicationUseCompatibleTextRendering =
|
||||
build_property.ApplicationVisualStyles =
|
||||
build_property.TargetFramework = net7.0-windows
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = QuizMaster
|
||||
build_property.ProjectDir = D:\Source\QuizMaster\QuizMaster\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.CsWinRTUseWindowsUIXamlProjections = false
|
||||
build_property.EffectiveAnalysisLevelStyle = 7.0
|
||||
build_property.EnableCodeStyleSeverity =
|
||||
@ -0,0 +1,10 @@
|
||||
// <auto-generated/>
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.Drawing;
|
||||
global using global::System.IO;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Net.Http;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
global using global::System.Windows.Forms;
|
||||
Binary file not shown.
BIN
QuizMaster/obj/Debug/net7.0-windows/QuizMaster.assets.cache
Normal file
BIN
QuizMaster/obj/Debug/net7.0-windows/QuizMaster.assets.cache
Normal file
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
8712f44c8eee950bceab57adf5a77fda0756bc0f1b7366d94ebd5636f210a8d6
|
||||
@ -0,0 +1,46 @@
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\QuizMaster.exe
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\QuizMaster.deps.json
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\QuizMaster.runtimeconfig.json
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\QuizMaster.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\QuizMaster.pdb
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.Form1.resources
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.csproj.GenerateResource.cache
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.GeneratedMSBuildEditorConfig.editorconfig
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.AssemblyInfoInputs.cache
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.AssemblyInfo.cs
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.csproj.CoreCompileInputs.cache
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\refint\QuizMaster.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.pdb
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.genruntimeconfig.cache
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\ref\QuizMaster.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.Properties.Resources.resources
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Microsoft.Extensions.Logging.Abstractions.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Npgsql.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\System.Data.SqlClient.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\System.Diagnostics.DiagnosticSource.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\System.Text.Encodings.Web.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\System.Text.Json.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\runtimes\win-arm64\native\sni.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\runtimes\win-x64\native\sni.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\runtimes\win-x86\native\sni.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\runtimes\unix\lib\net6.0\System.Data.SqlClient.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\runtimes\win\lib\net6.0\System.Data.SqlClient.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\runtimes\browser\lib\net7.0\System.Text.Encodings.Web.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.csproj.AssemblyReference.cache
|
||||
D:\Source\Test-Jenkins\QuizMaster\obj\Debug\net7.0-windows\QuizMaster.csproj.Up2Date
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\EPPlus.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\EPPlus.Interfaces.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\EPPlus.System.Drawing.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Microsoft.Extensions.Configuration.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Microsoft.Extensions.Configuration.Abstractions.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Microsoft.Extensions.Configuration.FileExtensions.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Microsoft.Extensions.Configuration.Json.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Microsoft.Extensions.FileProviders.Abstractions.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Microsoft.Extensions.FileProviders.Physical.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Microsoft.Extensions.FileSystemGlobbing.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Microsoft.Extensions.Primitives.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\Microsoft.IO.RecyclableMemoryStream.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\System.Security.Cryptography.Pkcs.dll
|
||||
D:\Source\Test-Jenkins\QuizMaster\bin\Debug\net7.0-windows\runtimes\win\lib\net7.0\System.Security.Cryptography.Pkcs.dll
|
||||
Binary file not shown.
@ -0,0 +1,583 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v7.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v7.0": {
|
||||
"EPPlus/7.0.8": {
|
||||
"dependencies": {
|
||||
"EPPlus.Interfaces": "6.1.1",
|
||||
"EPPlus.System.Drawing": "6.1.1",
|
||||
"Microsoft.Extensions.Configuration.Json": "7.0.0",
|
||||
"Microsoft.IO.RecyclableMemoryStream": "3.0.0",
|
||||
"System.ComponentModel.Annotations": "5.0.0",
|
||||
"System.Security.Cryptography.Pkcs": "7.0.3",
|
||||
"System.Text.Encoding.CodePages": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/EPPlus.dll": {
|
||||
"assemblyVersion": "7.0.8.0",
|
||||
"fileVersion": "7.0.8.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"EPPlus.Interfaces/6.1.1": {
|
||||
"runtime": {
|
||||
"lib/net7.0/EPPlus.Interfaces.dll": {
|
||||
"assemblyVersion": "6.1.1.0",
|
||||
"fileVersion": "6.1.1.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"EPPlus.System.Drawing/6.1.1": {
|
||||
"dependencies": {
|
||||
"EPPlus.Interfaces": "6.1.1",
|
||||
"System.Drawing.Common": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/EPPlus.System.Drawing.dll": {
|
||||
"assemblyVersion": "6.1.1.0",
|
||||
"fileVersion": "6.1.1.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
|
||||
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Configuration.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.FileExtensions/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "7.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "7.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Physical": "7.0.0",
|
||||
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Configuration.FileExtensions.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Json/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "7.0.0",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "7.0.0",
|
||||
"Microsoft.Extensions.Configuration.FileExtensions": "7.0.0",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "7.0.0",
|
||||
"System.Text.Json": "8.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Configuration.Json.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.1024.46610"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Abstractions/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Physical/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "7.0.0",
|
||||
"Microsoft.Extensions.FileSystemGlobbing": "7.0.0",
|
||||
"Microsoft.Extensions.Primitives": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.FileProviders.Physical.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.FileSystemGlobbing/7.0.0": {
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
|
||||
"System.Diagnostics.DiagnosticSource": "8.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.1024.46610"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/7.0.0": {
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.IO.RecyclableMemoryStream/3.0.0": {
|
||||
"runtime": {
|
||||
"lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll": {
|
||||
"assemblyVersion": "3.0.0.0",
|
||||
"fileVersion": "3.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Win32.SystemEvents/7.0.0": {
|
||||
"runtime": {
|
||||
"lib/net7.0/Microsoft.Win32.SystemEvents.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/win/lib/net7.0/Microsoft.Win32.SystemEvents.dll": {
|
||||
"rid": "win",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Npgsql/9.0.3": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Logging.Abstractions": "8.0.2",
|
||||
"System.Diagnostics.DiagnosticSource": "8.0.1",
|
||||
"System.Runtime.CompilerServices.Unsafe": "6.0.0",
|
||||
"System.Text.Json": "8.0.5"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net6.0/Npgsql.dll": {
|
||||
"assemblyVersion": "9.0.3.0",
|
||||
"fileVersion": "9.0.3.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"dependencies": {
|
||||
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
|
||||
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
|
||||
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
|
||||
}
|
||||
},
|
||||
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"runtimeTargets": {
|
||||
"runtimes/win-arm64/native/sni.dll": {
|
||||
"rid": "win-arm64",
|
||||
"assetType": "native",
|
||||
"fileVersion": "4.6.25512.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"runtimeTargets": {
|
||||
"runtimes/win-x64/native/sni.dll": {
|
||||
"rid": "win-x64",
|
||||
"assetType": "native",
|
||||
"fileVersion": "4.6.25512.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"runtimeTargets": {
|
||||
"runtimes/win-x86/native/sni.dll": {
|
||||
"rid": "win-x86",
|
||||
"assetType": "native",
|
||||
"fileVersion": "4.6.25512.1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.ComponentModel.Annotations/5.0.0": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.1/System.ComponentModel.Annotations.dll": {
|
||||
"assemblyVersion": "5.0.0.0",
|
||||
"fileVersion": "5.0.20.51904"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Data.SqlClient/4.9.0": {
|
||||
"dependencies": {
|
||||
"runtime.native.System.Data.SqlClient.sni": "4.4.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net6.0/System.Data.SqlClient.dll": {
|
||||
"assemblyVersion": "4.6.1.6",
|
||||
"fileVersion": "4.900.24.56208"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/unix/lib/net6.0/System.Data.SqlClient.dll": {
|
||||
"rid": "unix",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "4.6.1.6",
|
||||
"fileVersion": "4.900.24.56208"
|
||||
},
|
||||
"runtimes/win/lib/net6.0/System.Data.SqlClient.dll": {
|
||||
"rid": "win",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "4.6.1.6",
|
||||
"fileVersion": "4.900.24.56208"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Diagnostics.DiagnosticSource/8.0.1": {
|
||||
"runtime": {
|
||||
"lib/net7.0/System.Diagnostics.DiagnosticSource.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.424.16909"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Drawing.Common/7.0.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.Win32.SystemEvents": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/System.Drawing.Common.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/win/lib/net7.0/System.Drawing.Common.dll": {
|
||||
"rid": "win",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Formats.Asn1/7.0.0": {
|
||||
"runtime": {
|
||||
"lib/net7.0/System.Formats.Asn1.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Runtime.CompilerServices.Unsafe/6.0.0": {
|
||||
"runtime": {
|
||||
"lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": {
|
||||
"assemblyVersion": "6.0.0.0",
|
||||
"fileVersion": "6.0.21.52210"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.Pkcs/7.0.3": {
|
||||
"dependencies": {
|
||||
"System.Formats.Asn1": "7.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/System.Security.Cryptography.Pkcs.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.823.31807"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/win/lib/net7.0/System.Security.Cryptography.Pkcs.dll": {
|
||||
"rid": "win",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.823.31807"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Text.Encoding.CodePages/7.0.0": {
|
||||
"runtime": {
|
||||
"lib/net7.0/System.Text.Encoding.CodePages.dll": {
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/win/lib/net7.0/System.Text.Encoding.CodePages.dll": {
|
||||
"rid": "win",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "7.0.0.0",
|
||||
"fileVersion": "7.0.22.51805"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Text.Encodings.Web/8.0.0": {
|
||||
"runtime": {
|
||||
"lib/net7.0/System.Text.Encodings.Web.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.23.53103"
|
||||
}
|
||||
},
|
||||
"runtimeTargets": {
|
||||
"runtimes/browser/lib/net7.0/System.Text.Encodings.Web.dll": {
|
||||
"rid": "browser",
|
||||
"assetType": "runtime",
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.23.53103"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Text.Json/8.0.5": {
|
||||
"dependencies": {
|
||||
"System.Text.Encodings.Web": "8.0.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/System.Text.Json.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.0.1024.46610"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"EPPlus/7.0.8": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-q9shaL3LMVtfUHC7KtCWTn40cO5kjirfxkUo1Hloe2ZqZmP/3UFT70JBnIhTMTh1i/dZ8ynrkd9gxLuzqfriQQ==",
|
||||
"path": "epplus/7.0.8",
|
||||
"hashPath": "epplus.7.0.8.nupkg.sha512"
|
||||
},
|
||||
"EPPlus.Interfaces/6.1.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-y7dkrOoE1ZR9Vgy1Jf2rEIaTf3SHlUjYt01NklP+F5Qh7S2ruPbzTcpYLRWMeXiG8XL8h2jqX4CyIkFt3NQGZw==",
|
||||
"path": "epplus.interfaces/6.1.1",
|
||||
"hashPath": "epplus.interfaces.6.1.1.nupkg.sha512"
|
||||
},
|
||||
"EPPlus.System.Drawing/6.1.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-lRF5gHYrmkHOOiLMI0t6q8zNYjUrzRgAM5BCXumv5xiqXko8fx3AWI+HCNZfhEqVFGOop+42KfR5GiUcCoyoMw==",
|
||||
"path": "epplus.system.drawing/6.1.1",
|
||||
"hashPath": "epplus.system.drawing.6.1.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-tldQUBWt/xeH2K7/hMPPo5g8zuLc3Ro9I5d4o/XrxvxOCA2EZBtW7bCHHTc49fcBtvB8tLAb/Qsmfrq+2SJ4vA==",
|
||||
"path": "microsoft.extensions.configuration/7.0.0",
|
||||
"hashPath": "microsoft.extensions.configuration.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==",
|
||||
"path": "microsoft.extensions.configuration.abstractions/7.0.0",
|
||||
"hashPath": "microsoft.extensions.configuration.abstractions.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.FileExtensions/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-xk2lRJ1RDuqe57BmgvRPyCt6zyePKUmvT6iuXqiHR+/OIIgWVR8Ff5k2p6DwmqY8a17hx/OnrekEhziEIeQP6Q==",
|
||||
"path": "microsoft.extensions.configuration.fileextensions/7.0.0",
|
||||
"hashPath": "microsoft.extensions.configuration.fileextensions.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Json/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-LDNYe3uw76W35Jci+be4LDf2lkQZe0A7EEYQVChFbc509CpZ4Iupod8li4PUXPBhEUOFI/rlQNf5xkzJRQGvtA==",
|
||||
"path": "microsoft.extensions.configuration.json/7.0.0",
|
||||
"hashPath": "microsoft.extensions.configuration.json.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==",
|
||||
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Abstractions/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-NyawiW9ZT/liQb34k9YqBSNPLuuPkrjMgQZ24Y/xXX1RoiBkLUdPMaQTmxhZ5TYu8ZKZ9qayzil75JX95vGQUg==",
|
||||
"path": "microsoft.extensions.fileproviders.abstractions/7.0.0",
|
||||
"hashPath": "microsoft.extensions.fileproviders.abstractions.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.FileProviders.Physical/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-K8D2MTR+EtzkbZ8z80LrG7Ur64R7ZZdRLt1J5cgpc/pUWl0C6IkAUapPuK28oionHueCPELUqq0oYEvZfalNdg==",
|
||||
"path": "microsoft.extensions.fileproviders.physical/7.0.0",
|
||||
"hashPath": "microsoft.extensions.fileproviders.physical.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.FileSystemGlobbing/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-2jONjKHiF+E92ynz2ZFcr9OvxIw+rTGMPEH+UZGeHTEComVav93jQUWGkso8yWwVBcEJGcNcZAaqY01FFJcj7w==",
|
||||
"path": "microsoft.extensions.filesystemglobbing/7.0.0",
|
||||
"hashPath": "microsoft.extensions.filesystemglobbing.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==",
|
||||
"path": "microsoft.extensions.logging.abstractions/8.0.2",
|
||||
"hashPath": "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==",
|
||||
"path": "microsoft.extensions.primitives/7.0.0",
|
||||
"hashPath": "microsoft.extensions.primitives.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.IO.RecyclableMemoryStream/3.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-irv0HuqoH8Ig5i2fO+8dmDNdFdsrO+DoQcedwIlb810qpZHBNQHZLW7C/AHBQDgLLpw2T96vmMAy/aE4Yj55Sg==",
|
||||
"path": "microsoft.io.recyclablememorystream/3.0.0",
|
||||
"hashPath": "microsoft.io.recyclablememorystream.3.0.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Win32.SystemEvents/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ==",
|
||||
"path": "microsoft.win32.systemevents/7.0.0",
|
||||
"hashPath": "microsoft.win32.systemevents.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"Npgsql/9.0.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-tPvY61CxOAWxNsKLEBg+oR646X4Bc8UmyQ/tJszL/7mEmIXQnnBhVJZrZEEUv0Bstu0mEsHZD5At3EO8zQRAYw==",
|
||||
"path": "npgsql/9.0.3",
|
||||
"hashPath": "npgsql.9.0.3.nupkg.sha512"
|
||||
},
|
||||
"runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-A8v6PGmk+UGbfWo5Ixup0lPM4swuSwOiayJExZwKIOjTlFFQIsu3QnDXECosBEyrWSPryxBVrdqtJyhK3BaupQ==",
|
||||
"path": "runtime.native.system.data.sqlclient.sni/4.4.0",
|
||||
"hashPath": "runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
|
||||
},
|
||||
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg==",
|
||||
"path": "runtime.win-arm64.runtime.native.system.data.sqlclient.sni/4.4.0",
|
||||
"hashPath": "runtime.win-arm64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
|
||||
},
|
||||
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ==",
|
||||
"path": "runtime.win-x64.runtime.native.system.data.sqlclient.sni/4.4.0",
|
||||
"hashPath": "runtime.win-x64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
|
||||
},
|
||||
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA==",
|
||||
"path": "runtime.win-x86.runtime.native.system.data.sqlclient.sni/4.4.0",
|
||||
"hashPath": "runtime.win-x86.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
|
||||
},
|
||||
"System.ComponentModel.Annotations/5.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg==",
|
||||
"path": "system.componentmodel.annotations/5.0.0",
|
||||
"hashPath": "system.componentmodel.annotations.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Data.SqlClient/4.9.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-j4KJO+vC62NyUtNHz854njEqXbT8OmAa5jb1nrGfYWBOcggyYUQE0w/snXeaCjdvkSKWuUD+hfvlbN8pTrJTXg==",
|
||||
"path": "system.data.sqlclient/4.9.0",
|
||||
"hashPath": "system.data.sqlclient.4.9.0.nupkg.sha512"
|
||||
},
|
||||
"System.Diagnostics.DiagnosticSource/8.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-vaoWjvkG1aenR2XdjaVivlCV9fADfgyhW5bZtXT23qaEea0lWiUljdQuze4E31vKM7ZWJaSUsbYIKE3rnzfZUg==",
|
||||
"path": "system.diagnostics.diagnosticsource/8.0.1",
|
||||
"hashPath": "system.diagnostics.diagnosticsource.8.0.1.nupkg.sha512"
|
||||
},
|
||||
"System.Drawing.Common/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KIX+oBU38pxkKPxvLcLfIkOV5Ien8ReN78wro7OF5/erwcmortzeFx+iBswlh2Vz6gVne0khocQudGwaO1Ey6A==",
|
||||
"path": "system.drawing.common/7.0.0",
|
||||
"hashPath": "system.drawing.common.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Formats.Asn1/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-+nfpV0afLmvJW8+pLlHxRjz3oZJw4fkyU9MMEaMhCsHi/SN9bGF9q79ROubDiwTiCHezmK0uCWkPP7tGFP/4yg==",
|
||||
"path": "system.formats.asn1/7.0.0",
|
||||
"hashPath": "system.formats.asn1.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Runtime.CompilerServices.Unsafe/6.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
|
||||
"path": "system.runtime.compilerservices.unsafe/6.0.0",
|
||||
"hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Security.Cryptography.Pkcs/7.0.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-yhwEHH5Gzl/VoADrXtt5XC95OFoSjNSWLHNutE7GwdOgefZVRvEXRSooSpL8HHm3qmdd9epqzsWg28UJemt22w==",
|
||||
"path": "system.security.cryptography.pkcs/7.0.3",
|
||||
"hashPath": "system.security.cryptography.pkcs.7.0.3.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Encoding.CodePages/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==",
|
||||
"path": "system.text.encoding.codepages/7.0.0",
|
||||
"hashPath": "system.text.encoding.codepages.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Encodings.Web/8.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
|
||||
"path": "system.text.encodings.web/8.0.0",
|
||||
"hashPath": "system.text.encodings.web.8.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Json/8.0.5": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==",
|
||||
"path": "system.text.json/8.0.5",
|
||||
"hashPath": "system.text.json.8.0.5.nupkg.sha512"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net7.0",
|
||||
"frameworks": [
|
||||
{
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "7.0.0"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.WindowsDesktop.App",
|
||||
"version": "7.0.0"
|
||||
}
|
||||
],
|
||||
"additionalProbingPaths": [
|
||||
"C:\\Users\\admin\\.dotnet\\store\\|arch|\\|tfm|",
|
||||
"C:\\Users\\admin\\.nuget\\packages",
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configProperties": {
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true,
|
||||
"Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
QuizMaster/obj/Debug/net7.0-windows/QuizMaster.dll
Normal file
BIN
QuizMaster/obj/Debug/net7.0-windows/QuizMaster.dll
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
238fb3e101dff2cb7cc029d455d9a077821b0d73582df6327d7c0245af1b9b1c
|
||||
BIN
QuizMaster/obj/Debug/net7.0-windows/QuizMaster.pdb
Normal file
BIN
QuizMaster/obj/Debug/net7.0-windows/QuizMaster.pdb
Normal file
Binary file not shown.
Binary file not shown.
BIN
QuizMaster/obj/Debug/net7.0-windows/apphost.exe
Normal file
BIN
QuizMaster/obj/Debug/net7.0-windows/apphost.exe
Normal file
Binary file not shown.
BIN
QuizMaster/obj/Debug/net7.0-windows/ref/QuizMaster.dll
Normal file
BIN
QuizMaster/obj/Debug/net7.0-windows/ref/QuizMaster.dll
Normal file
Binary file not shown.
BIN
QuizMaster/obj/Debug/net7.0-windows/refint/QuizMaster.dll
Normal file
BIN
QuizMaster/obj/Debug/net7.0-windows/refint/QuizMaster.dll
Normal file
Binary file not shown.
90
QuizMaster/obj/QuizMaster.csproj.nuget.dgspec.json
Normal file
90
QuizMaster/obj/QuizMaster.csproj.nuget.dgspec.json
Normal file
@ -0,0 +1,90 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"D:\\Source\\Test-Jenkins\\QuizMaster\\QuizMaster.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"D:\\Source\\Test-Jenkins\\QuizMaster\\QuizMaster.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "D:\\Source\\Test-Jenkins\\QuizMaster\\QuizMaster.csproj",
|
||||
"projectName": "QuizMaster",
|
||||
"projectPath": "D:\\Source\\Test-Jenkins\\QuizMaster\\QuizMaster.csproj",
|
||||
"packagesPath": "C:\\Users\\admin\\.nuget\\packages\\",
|
||||
"outputPath": "D:\\Source\\Test-Jenkins\\QuizMaster\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\admin\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net7.0-windows"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net7.0-windows7.0": {
|
||||
"targetAlias": "net7.0-windows",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.200"
|
||||
},
|
||||
"frameworks": {
|
||||
"net7.0-windows7.0": {
|
||||
"targetAlias": "net7.0-windows",
|
||||
"dependencies": {
|
||||
"EPPlus": {
|
||||
"target": "Package",
|
||||
"version": "[7.0.8, )"
|
||||
},
|
||||
"Npgsql": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.3, )"
|
||||
},
|
||||
"System.Data.SqlClient": {
|
||||
"target": "Package",
|
||||
"version": "[4.9.0, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
},
|
||||
"Microsoft.WindowsDesktop.App.WindowsForms": {
|
||||
"privateAssets": "none"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.203\\RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
16
QuizMaster/obj/QuizMaster.csproj.nuget.g.props
Normal file
16
QuizMaster/obj/QuizMaster.csproj.nuget.g.props
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\admin\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.13.2</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\admin\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
7
QuizMaster/obj/QuizMaster.csproj.nuget.g.targets
Normal file
7
QuizMaster/obj/QuizMaster.csproj.nuget.g.targets
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)system.text.json\8.0.5\buildTransitive\net6.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\8.0.5\buildTransitive\net6.0\System.Text.Json.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\8.0.2\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
1571
QuizMaster/obj/project.assets.json
Normal file
1571
QuizMaster/obj/project.assets.json
Normal file
File diff suppressed because it is too large
Load Diff
39
QuizMaster/obj/project.nuget.cache
Normal file
39
QuizMaster/obj/project.nuget.cache
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "9ykJdn/zYVk=",
|
||||
"success": true,
|
||||
"projectFilePath": "D:\\Source\\Test-Jenkins\\QuizMaster\\QuizMaster.csproj",
|
||||
"expectedPackageFiles": [
|
||||
"C:\\Users\\admin\\.nuget\\packages\\epplus\\7.0.8\\epplus.7.0.8.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\epplus.interfaces\\6.1.1\\epplus.interfaces.6.1.1.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\epplus.system.drawing\\6.1.1\\epplus.system.drawing.6.1.1.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.extensions.configuration\\7.0.0\\microsoft.extensions.configuration.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\7.0.0\\microsoft.extensions.configuration.abstractions.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\7.0.0\\microsoft.extensions.configuration.fileextensions.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.extensions.configuration.json\\7.0.0\\microsoft.extensions.configuration.json.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\7.0.0\\microsoft.extensions.fileproviders.abstractions.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\7.0.0\\microsoft.extensions.fileproviders.physical.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\7.0.0\\microsoft.extensions.filesystemglobbing.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.extensions.primitives\\7.0.0\\microsoft.extensions.primitives.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.io.recyclablememorystream\\3.0.0\\microsoft.io.recyclablememorystream.3.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\microsoft.win32.systemevents\\7.0.0\\microsoft.win32.systemevents.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\npgsql\\9.0.3\\npgsql.9.0.3.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\runtime.win-arm64.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-arm64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\runtime.win-x64.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-x64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\runtime.win-x86.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-x86.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\system.componentmodel.annotations\\5.0.0\\system.componentmodel.annotations.5.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\system.data.sqlclient\\4.9.0\\system.data.sqlclient.4.9.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\system.diagnostics.diagnosticsource\\8.0.1\\system.diagnostics.diagnosticsource.8.0.1.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\system.drawing.common\\7.0.0\\system.drawing.common.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\system.formats.asn1\\7.0.0\\system.formats.asn1.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\system.security.cryptography.pkcs\\7.0.3\\system.security.cryptography.pkcs.7.0.3.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\system.text.encoding.codepages\\7.0.0\\system.text.encoding.codepages.7.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\system.text.encodings.web\\8.0.0\\system.text.encodings.web.8.0.0.nupkg.sha512",
|
||||
"C:\\Users\\admin\\.nuget\\packages\\system.text.json\\8.0.5\\system.text.json.8.0.5.nupkg.sha512"
|
||||
],
|
||||
"logs": []
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user