using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Globalization;
namespace EcomAnalysis {
/// <summary>
/// ログファイル情報クラス
/// ファイル名から得られる情報の管理
/// </summary>
public class LogFileInfo {
public string Filepath { get; private set; }
public string Filename { get; private set; }
public DateTime ExecDate { get; private set; }
public int Visit { get; private set; }
public string Subject { get; private set; }
public Feedback FB { get; } = new Feedback();
/// <summary>
/// ファイル名からログ情報をセット
/// </summary>
/// <param name="fn"></param>
/// <returns></returns>
public bool Set(string fn) {
Filepath = fn;
Filename = Path.GetFileNameWithoutExtension(fn);
var parseStr = "yyyyMMdd_HHmmss";
DateTime dt;
if (Filename.Length < parseStr.Length) return false;
if (!DateTime.TryParseExact(Filename.Substring(0, parseStr.Length),
parseStr, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) return false;
ExecDate = dt;
var strs = Filename.Split('_');
if (strs.Length < 4) return false;
var visitStr = strs[strs.Length - 1];
if (visitStr.Equals("calib")) return false;
int v;
if (!int.TryParse(visitStr, out v)) return false;
Visit = v;
Subject = Filename.Substring(parseStr.Length + 1,
Filename.Length - parseStr.Length - visitStr.Length - 2);
return true;
}
}
}