@ -13,6 +13,7 @@ using Blazored.Modal;
using System.Text.RegularExpressions ;
using System.Text.RegularExpressions ;
using Blazor.Components ;
using Blazor.Components ;
using Microsoft.Extensions.Localization ;
using Microsoft.Extensions.Localization ;
using SuperConvert.Extensions ;
namespace Blazor.Pages.Questions ;
namespace Blazor.Pages.Questions ;
@ -100,8 +101,10 @@ public partial class Questions
selectedQuestions . Add ( questions [ i ] ) ;
selectedQuestions . Add ( questions [ i ] ) ;
}
}
questions = selectedQuestions ;
questions = selectedQuestions ;
if ( ! response . IsNullOrEmpty ( ) )
totalQuestion = response [ 0 ] . total_questions ;
{
totalQuestion = response [ 0 ] . total_questions ;
}
}
}
}
}
@ -110,15 +113,9 @@ public partial class Questions
StringBuilder sb = new StringBuilder ( ) ;
StringBuilder sb = new StringBuilder ( ) ;
HttpResponseMessage response = await Http . GetAsync ( API . API_URL + "questionsExport/" + API . TOKEN ) ;
HttpResponseMessage response = await Http . GetAsync ( API . API_URL + "questionsExport/" + API . TOKEN ) ;
var json = await response . Content . ReadAsStringAsync ( ) ;
var json = await response . Content . ReadAsStringAsync ( ) ;
using ( var jsonFile = ChoJSONReader . LoadText ( json ) )
byte [ ] csv = json . ToCsv ( ';' ) ;
{
string csvString = Encoding . Unicode . GetString ( csv ) ;
using ( var csvFile = new ChoCSVWriter ( sb ) . WithFirstLineHeader ( ) )
var sentFile = new MemoryStream ( Encoding . Unicode . GetBytes ( csvString ) ) ;
{
csvFile . Write ( jsonFile ) ;
}
}
var sentFile = new MemoryStream ( Encoding . Unicode . GetBytes ( sb . ToString ( ) ) ) ;
using ( var streamRef = new DotNetStreamReference ( stream : sentFile ) )
using ( var streamRef = new DotNetStreamReference ( stream : sentFile ) )
{
{
await IJSRuntime . InvokeVoidAsync ( "downloadFileFromStream" , "data.csv" , streamRef ) ;
await IJSRuntime . InvokeVoidAsync ( "downloadFileFromStream" , "data.csv" , streamRef ) ;
@ -131,22 +128,24 @@ public partial class Questions
{
{
await e . File . OpenReadStream ( ) . CopyToAsync ( ms ) ;
await e . File . OpenReadStream ( ) . CopyToAsync ( ms ) ;
var bytes = ms . ToArray ( ) ;
var bytes = ms . ToArray ( ) ;
string s = Encoding . U TF8 . GetString ( bytes ) ;
string s = Encoding . U nicode . GetString ( bytes ) ;
s = s . Replace ( "\r\n" , "\n" ) ;
s = s . Replace ( "\"" , string . Empty ) ;
s = s . Replace ( "\0" , string . Empty ) ;
var rows = s . Split ( '\n' ) ;
var rows = s . Split ( '\n' ) ;
rows = rows . Skip ( 1 ) . ToArray ( ) ;
rows = rows . Skip ( 1 ) . ToArray ( ) ;
foreach ( var row in rows )
foreach ( var row in rows )
{
{
var field = row . Split ( ';' ) ;
var field = row . Split ( ';' ) ;
field [ 1 ] = field [ 1 ] . Replace ( " " , "+" ) ;
var formData = new List < KeyValuePair < string , string > > ( ) ;
var formData = new List < KeyValuePair < string , string > > ( ) ;
formData . Add ( new KeyValuePair < string , string > ( "content" , field [ 0 ] ) ) ;
formData . Add ( new KeyValuePair < string , string > ( "content" , field [ 0 ] ) ) ;
formData . Add ( new KeyValuePair < string , string > ( "answerContent1" , field [ 2 ] ) ) ;
formData . Add ( new KeyValuePair < string , string > ( "answerContent1" , field [ 3 ] ) ) ;
formData . Add ( new KeyValuePair < string , string > ( "answerContent2" , field [ 3 ] ) ) ;
formData . Add ( new KeyValuePair < string , string > ( "answerContent2" , field [ 4 ] ) ) ;
formData . Add ( new KeyValuePair < string , string > ( "answerContent3" , field [ 4 ] ) ) ;
formData . Add ( new KeyValuePair < string , string > ( "answerContent3" , field [ 5 ] ) ) ;
formData . Add ( new KeyValuePair < string , string > ( "answerContent4" , field [ 5 ] ) ) ;
formData . Add ( new KeyValuePair < string , string > ( "answerContent4" , field [ 6 ] ) ) ;
formData . Add ( new KeyValuePair < string , string > ( "idanswergood" , field [ 6 ] ) ) ;
formData . Add ( new KeyValuePair < string , string > ( "idanswergood" , field [ 2 ] ) ) ;
string apiUri = API . API_URL + "chapters/name/" + field [ 1 ] + "/" + API . TOKEN ;
string apiUri = API . API_URL + "chapters/name/" + field [ 1 ] + "/" + API . TOKEN ;
@ -167,7 +166,7 @@ public partial class Questions
}
}
var formContent = new FormUrlEncodedContent ( formData ) ;
var formContent = new FormUrlEncodedContent ( formData ) ;
apiUri = API . API_URL + "add/question s /"+ API . TOKEN ;
apiUri = API . API_URL + "add/question /"+ API . TOKEN ;
response = await Http . PostAsync ( apiUri , formContent ) ;
response = await Http . PostAsync ( apiUri , formContent ) ;