Skip to content

Commit

Permalink
export service tamamlandı
Browse files Browse the repository at this point in the history
  • Loading branch information
ilyasbozdemir committed Mar 20, 2024
1 parent 1998b92 commit b38af54
Show file tree
Hide file tree
Showing 2 changed files with 99 additions and 17 deletions.
115 changes: 99 additions & 16 deletions quiz-console-app/Services/ExportService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using quiz_console_app.Enums;
using quiz_console_app.Models;
using quiz_console_app.ViewModels;
using System.Xml.Serialization;

namespace quiz_console_app.Services;

Expand All @@ -24,9 +25,51 @@ public void Export(ExportType exportType)
Console.Write("Kaç kitapçık dışa aktarılacak?: ");
int bookletCount = int.Parse(Console.ReadLine());

Console.Clear();
Console.Write("Kitapçık için İsmi girin?: ");
string bookletName = Console.ReadLine();

Console.WriteLine("Dışa aktarma yöntemi seçin:");
Console.WriteLine("1. Tüm kitapçıkları tek dosyada dışa aktar");
Console.WriteLine("2. Her kitapçık için ayrı dosyada dışa aktar");
Console.Write("Seçiminizi yapın (1 veya 2): ");


int choice;

if (!int.TryParse(Console.ReadLine(), out choice))
{
Console.WriteLine("Geçersiz giriş. Lütfen 1 veya 2 girin.");
return;
}

switch (choice)
{
case 1:
Console.Clear();
Console.Write("Kitapçık için İsmi girin?: ");
string bookletName = Console.ReadLine();
bookletName = $"{bookletName.Trim()}_{DateTime.Now.ToString("yyyyMMddHHmmss")}";

switch (exportType)
{
case ExportType.Json:
ExportToJson(bookletName);
break;
case ExportType.Xml:
ExportToXml(bookletName);
break;
default:
Console.WriteLine("Invalid export type.");
break;
}
break;

case 2:
break;

default:
Console.WriteLine("Geçersiz giriş. Lütfen 1 veya 2 girin.");
break;
}


Console.WriteLine("Kitapçıklar oluşturuluyor.");
_quizService.GenerateBooklets(bookletCount);
Expand All @@ -39,20 +82,8 @@ public void Export(ExportType exportType)
_answerKeys = QuizService.AnswerKeys;
Booklets = QuizService.Booklets;

bookletName = $"{bookletName.Trim()}_{DateTime.Now.ToString("yyyyMMddHHmmss")}";


switch (exportType)
{
case ExportType.Json:
ExportToJson(bookletName);
break;
case ExportType.Xml:
ExportToXml(bookletName);
break;
default:
Console.WriteLine("Invalid export type.");
break;
}
}


Expand All @@ -76,6 +107,58 @@ public void ExportToJson(string bookletName)

Console.ReadLine();
}
public void ExportEachToJson()
{
foreach (var booklet in Booklets)
{
string fileName = $"{booklet.BookletName}.json";
string filePath = GetUniqueFilePath(baseDirectory, fileName, "json");

try
{
using (StreamWriter file = File.CreateText(filePath))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(file, booklet);
}

Console.WriteLine($"Kitapçık '{booklet.BookletName}' JSON olarak başarıyla dışa aktarıldı. Dosya yolu: {filePath}");
}
catch (Exception ex)
{
Console.WriteLine($"JSON olarak dışa aktarma sırasında bir hata oluştu: {ex.Message}");
}
}

Console.ReadLine();
}

public void ExportEachToXml()
{
foreach (var booklet in Booklets)
{
string fileName = $"{booklet.BookletName}.xml";
string filePath = GetUniqueFilePath(baseDirectory, fileName, "xml");

try
{
XmlSerializer serializer = new XmlSerializer(typeof(BookletViewModel));
using (StreamWriter file = new StreamWriter(filePath))
{
serializer.Serialize(file, booklet);
}

Console.WriteLine($"Kitapçık '{booklet.BookletName}' XML olarak başarıyla dışa aktarıldı. Dosya yolu: {filePath}");
}
catch (Exception ex)
{
Console.WriteLine($"XML olarak dışa aktarma sırasında bir hata oluştu: {ex.Message}");
}
}

Console.ReadLine();
}


public void ExportToXml(string bookletName)
{
Expand Down
1 change: 0 additions & 1 deletion quiz-console-app/Views/QuizModeView.cs
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,6 @@ public bool AskForQuizRetry()

if (input == "E")
Environment.Exit(0);

else if (input == "H")
new QuizMainMenuView().Show();

Expand Down

0 comments on commit b38af54

Please sign in to comment.