Сохранение даты / времени последнего запуска приложения - PullRequest
2 голосов
/ 25 ноября 2010

Я сейчас работаю с консольным приложением (C #).Он извлекает файлы из базы данных и сохраняет их в соответствующих папках на диске С. на локальном компьютере.

В настоящий момент каждый раз, когда я запускаю консольное приложение, он извлекает ВСЕ файлы избаза данных.

То, что я хотел бы сделать, это каждый раз, когда я запускаю его, он извлекает только те файлы, которые были отправлены с момента моего последнего запуска консольного приложения.В настоящее время это оператор linq, который извлекает файлы из базы данных.

var titleObjects = ctn.Titles.Where(t => !t.Deleted && t.SubmissionState == 2 &&(t.Approved.HasValue && t.Approved.Value)).Select(t => t);

В идеале я хотел бы что-то вроде следующего, где где-то хранятся дата и время последнего запуска приложения:

var titleObjects = ctn.Titles.Where(t => !t.Deleted && t.SubmissionState == 2 && t.CreatedDate >= LastAppRun && t.CreatedDate <= DateTime.Now  && (t.Approved.HasValue && t.Approved.Value)).Select(t => t);

Я не уверен, как этого добиться.Если бы у кого-нибудь был какой-нибудь совет по этому поводу, я был бы очень признателен:)

Ответы [ 3 ]

5 голосов
/ 25 ноября 2010

Вы можете использовать app.settings для этого. Немного проще просто создать значение и установить его как

Properties.Settings.Default.lastRunTime = DateTime.Now;
Properties.Settings.Default.Save();

Гораздо проще, когда вы используете приложение с базой данных или без нее

Вы также можете зашифровать настройки. Google для шифрования.

2 голосов
/ 25 ноября 2010

Почему бы просто не создать таблицу в базе данных и вставить запись, которая содержит время последнего выполнения. Затем update извлекает значение из записи при каждом запуске и обновляет его после завершения.

Или вы можете вставить запись для каждого прогона, чтобы отслеживать, когда прогоны произошли, и выбрать запись с максимальным временем даты для каждого прогона, чтобы отработать, когда был последний прогон.

0 голосов
/ 25 ноября 2010

Что если в вашей базе данных будет несколько консольных клиентов?Похоже, что сохранение LastAppRun является задачей на стороне клиента.

Вы можете сериализовать LastAppRun в файл и сохранить его в IsolatedStorageFile.

Другой (более уродливый) вариант - перейти наключ реестра.

...