using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CarLocalMeter
{
public class FileOption
{
static string dbFile = Path.Combine(AppConfigCache.path, "data/actualDb.data");
///
/// 计量数据写入本地文件
///
///
///
///
public static bool WriterDb(ActualFirstModel actualDb, out string msgInfo)
{
Log lg = Log.GetInstance();
try
{
//判断文件是否存在
if (!File.Exists(dbFile))
{
//不存在则创建文件并直接写入数据
File.WriteAllText(dbFile, JsonConvert.SerializeObject(actualDb));
}
else
{
List ls = new List();
ls.Add(JsonConvert.SerializeObject(actualDb));
File.AppendAllLines(dbFile, ls);
}
msgInfo = "计量完成";
return true;
}
catch (Exception ex)
{
lg.WriteLog(LogType.WriteDbLog, "写入信息失败:" + ex.Message);
msgInfo = "写入数据失败:" + ex.Message;
return false;
}
}
///
/// 读取本地计量数据
///
///
///
///
public static List ReadDb(ref bool readFlag, ref string msgInfo)
{
Log lg = Log.GetInstance();
List list = new List();
try
{
if (File.Exists(dbFile))
{
string[] strs = File.ReadAllLines(dbFile);
foreach (string str in strs)
{
T first = JsonConvert.DeserializeObject(str);
list.Add(first);
}
if (list.Count > 0) readFlag = true;
}
}
catch (Exception ex)
{
lg.WriteLog(LogType.WriteDbLog, "读取失败:" + ex.Message);
msgInfo = "读取失败:" + ex.Message;
readFlag = false;
}
return list;
}
///
/// 清理文件数据
///
public static void clearFile()
{
Log lg = Log.GetInstance();
try
{
if (File.Exists(dbFile))
{
//不存在则创建文件并直接写入数据
File.WriteAllText(dbFile, "");
}
} catch (Exception ex)
{
lg.WriteLog(LogType.WriteDbLog, "数据进行清理失败:" + ex.Message);
}
}
}
}