mirror of
https://gitea.tendokyu.moe/Kayori/Medusa.net.git
synced 2026-09-29 02:08:04 +03:00
49 lines
1.4 KiB
C#
49 lines
1.4 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Linq;
|
|
|
|
namespace Abstractions.Services;
|
|
|
|
public class XmlLogService : IXmlLogService
|
|
{
|
|
private readonly string _fileName = GenerateNextFileName();
|
|
|
|
private static string GenerateNextFileName()
|
|
{
|
|
var nextNumber = 1;
|
|
const string basePattern = "ResponseXml_*.xml";
|
|
|
|
var existingFiles = Directory.GetFiles(Environment.CurrentDirectory, basePattern);
|
|
|
|
if (existingFiles.Length != 0)
|
|
{
|
|
nextNumber = existingFiles
|
|
.Select(Path.GetFileNameWithoutExtension)
|
|
.Where(file => file != null && file.StartsWith("ResponseXml_"))
|
|
.Select(file =>
|
|
{
|
|
var numberPart = file?["ResponseXml_".Length..];
|
|
return int.TryParse(numberPart, out var num) ? num : 0;
|
|
})
|
|
.Max() + 1;
|
|
}
|
|
return Path.Combine(Environment.CurrentDirectory, $"ResponseXml_{nextNumber}.xml");
|
|
}
|
|
|
|
public void LogResponse(string response)
|
|
{
|
|
if (!File.Exists(_fileName))
|
|
{
|
|
File.WriteAllText(_fileName, "");
|
|
}
|
|
|
|
try
|
|
{
|
|
File.AppendAllText(_fileName, $"{response} \n\n");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine($"Failed to write to file: {ex}");
|
|
}
|
|
}
|
|
} |