|
|
|
@ -11,6 +11,7 @@ using Microsoft.AspNetCore.Components.Forms;
|
|
|
|
|
using Blazor.Modals;
|
|
|
|
|
using Blazored.Modal;
|
|
|
|
|
using Blazor.Pages.Admins;
|
|
|
|
|
using System.Text.RegularExpressions;
|
|
|
|
|
|
|
|
|
|
namespace Blazor.Pages.Questions;
|
|
|
|
|
|
|
|
|
@ -114,7 +115,7 @@ public partial class Questions
|
|
|
|
|
private async void Export()
|
|
|
|
|
{
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
HttpResponseMessage response = await Http.GetAsync("https://trusting-panini.87-106-126-109.plesk.page/api/chapters");
|
|
|
|
|
HttpResponseMessage response = await Http.GetAsync("https://trusting-panini.87-106-126-109.plesk.page/api/questionsExport");
|
|
|
|
|
var json = await response.Content.ReadAsStringAsync();
|
|
|
|
|
using (var jsonFile = ChoJSONReader.LoadText(json))
|
|
|
|
|
{
|
|
|
|
@ -131,6 +132,7 @@ public partial class Questions
|
|
|
|
|
await IJSRuntime.InvokeVoidAsync("downloadFileFromStream", "data.csv", streamRef);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task SingleUpload(InputFileChangeEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
using (MemoryStream ms = new MemoryStream())
|
|
|
|
@ -139,53 +141,51 @@ public partial class Questions
|
|
|
|
|
var bytes = ms.ToArray();
|
|
|
|
|
string s = Encoding.UTF8.GetString(bytes);
|
|
|
|
|
|
|
|
|
|
char[] invalidChars = { '1', '2', '3', '4', '5', '6', '7', '8', '9', '\r', '\n', ',', ' ' };
|
|
|
|
|
|
|
|
|
|
List<string> filteredStrings = new List<string>();
|
|
|
|
|
StringBuilder filteredString = new StringBuilder();
|
|
|
|
|
s = s.Replace("\r\n", "\n");
|
|
|
|
|
var rows = s.Split('\n');
|
|
|
|
|
rows = rows.Skip(1).ToArray();
|
|
|
|
|
|
|
|
|
|
foreach (var c in s)
|
|
|
|
|
foreach (var row in rows)
|
|
|
|
|
{
|
|
|
|
|
if (!invalidChars.Contains(c))
|
|
|
|
|
var field = row.Split(';');
|
|
|
|
|
var formData = new List<KeyValuePair<string, string>>();
|
|
|
|
|
formData.Add(new KeyValuePair<string, string>("content", field[0]));
|
|
|
|
|
formData.Add(new KeyValuePair<string, string>("answerContent1", field[2]));
|
|
|
|
|
formData.Add(new KeyValuePair<string, string>("answerContent2", field[3]));
|
|
|
|
|
formData.Add(new KeyValuePair<string, string>("answerContent3", field[4]));
|
|
|
|
|
formData.Add(new KeyValuePair<string, string>("answerContent4", field[5]));
|
|
|
|
|
formData.Add(new KeyValuePair<string, string>("idanswergood", field[6]));
|
|
|
|
|
|
|
|
|
|
string apiUri = "https://trusting-panini.87-106-126-109.plesk.page/api/chapters/name/"+field[1];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var response = await Http.GetAsync(apiUri);
|
|
|
|
|
|
|
|
|
|
if (response.IsSuccessStatusCode)
|
|
|
|
|
{
|
|
|
|
|
filteredString.Append(c);
|
|
|
|
|
var responseBody = await response.Content.ReadAsStringAsync();
|
|
|
|
|
Match match = Regex.Match(responseBody, @"\d+");
|
|
|
|
|
int result = int.Parse(match.Value);
|
|
|
|
|
formData.Add(new KeyValuePair<string, string>("idchapter", result.ToString()));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (filteredString.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
filteredStrings.Add(filteredString.ToString());
|
|
|
|
|
filteredString.Clear();
|
|
|
|
|
}
|
|
|
|
|
var errorResponse = await response.Content.ReadAsStringAsync();
|
|
|
|
|
formData.Add(new KeyValuePair<string, string>("idchapter", "Unknown_Chapter_Error"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (filteredString.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
filteredStrings.Add(filteredString.ToString());
|
|
|
|
|
}
|
|
|
|
|
foreach (var filteredStr in filteredStrings)
|
|
|
|
|
{
|
|
|
|
|
var formData = new List<KeyValuePair<string, string>>();
|
|
|
|
|
formData.Add(new KeyValuePair<string, string>("name", filteredStr));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var formContent = new FormUrlEncodedContent(formData);
|
|
|
|
|
apiUri = "https://trusting-panini.87-106-126-109.plesk.page/api/add/questions";
|
|
|
|
|
|
|
|
|
|
string apiUri = "https://trusting-panini.87-106-126-109.plesk.page/api/add/chapters";
|
|
|
|
|
response = await Http.PostAsync(apiUri, formContent);
|
|
|
|
|
|
|
|
|
|
using (var httpClient = new HttpClient())
|
|
|
|
|
if (response.IsSuccessStatusCode)
|
|
|
|
|
{
|
|
|
|
|
var responseBody = await response.Content.ReadAsStringAsync();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var response = await httpClient.PostAsync(apiUri, formContent);
|
|
|
|
|
|
|
|
|
|
if (response.IsSuccessStatusCode)
|
|
|
|
|
{
|
|
|
|
|
var responseBody = await response.Content.ReadAsStringAsync();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var errorResponse = await response.Content.ReadAsStringAsync();
|
|
|
|
|
}
|
|
|
|
|
var errorResponse = await response.Content.ReadAsStringAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|