You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.7 KiB

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace FiveLetters.Model
{
public class FileTaskProvider : ITaskProvider
{
private List<FiveLettersTask> _tasks;
public FileTaskProvider()
{
_tasks = new List<FiveLettersTask>();
}
public FiveLettersTask GetTodayTask()
{
var dd = DateTime.Now.Day;
if (_tasks.Count > dd)
{
return _tasks[dd];
}
else
{
return _tasks[0];
}
}
private void h_LoadTasks()
{
_tasks.Clear();
DateTime dtStartMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
string sFn = dtStartMonth.ToString("yyyyMM") + ".txt";
if (File.Exists(sFn))
{
h_LoadTask(sFn, dtStartMonth);
}
else
{
for (int ii = 0; ii < 31; ii++)
{
_tasks.Add(new FiveLettersTask(dtStartMonth, "СЛОВО"));
dtStartMonth = dtStartMonth.AddDays(1);
}
}
}
private void h_LoadTask(string sFn, DateTime dtStartMonth)
{
string[] lines = File.ReadAllLines(sFn);
for (int ii = 0; ii < lines.Length; ii++)
{
_tasks.Add(new FiveLettersTask(dtStartMonth, lines[ii]));
dtStartMonth = dtStartMonth.AddDays(1);
}
}
public FiveLettersTask GetTask(string taskGuid)
{
return _tasks.FirstOrDefault(p => p.TaskGuid.Equals(taskGuid));
}
}
}