.NET Core MVC - экономьте время, затрачиваемое на задачу - PullRequest
0 голосов
/ 28 апреля 2018

Мне нужно сэкономить время, затраченное на задачу, двумя категориями: Перерыв и Работа .
Я не могу использовать JS для этого. Я работаю с ASP.NET Core 2 MVC.
У меня есть решение, но, возможно, есть лучшее.

Мое решение - создать кнопки Work и Break в представлении "/ Task / Details / {id}".

  • Когда пользователь нажимает кнопку Работа , он создает запись в БД (модель ниже) где DateTime Start равно текущему времени.
  • Когда пользователь нажимает Кнопка Break , она находит последнюю запись в БД на TaskID из вида и сохраняет текущее время в DateTime End.

Затем я могу выбрать все Time записей с определенным TaskID и вычислить разницу между Start и End.

public class Time
{
  public int ID { get; set; }
  public int TaskID { get; set; } // Foreign key
  public string Category { get; set; };
  public DateTime Start { get; set; };
  public DateTime End { get; set; }

  public Task Task // Navigation property
}

1 Ответ

0 голосов
/ 04 мая 2018
  1. Если вам нужна только разница во времени, почему бы не сохранить только эту разницу? Вам понадобится на один столбец меньше. Вы можете хранить там отметку времени UNIX . При вставке хранить метку времени UNIX текущей даты и времени, при обновлении заменить это значение на разницу текущей и сохраненной метки времени. Огромное значение - более 1524949098 секунд - указывает, что столбец содержит начальную дату / время, небольшое значение - меньше, чем, скажем, 1 год в секундах - указывает, что столбец содержит длительность интервала.
  2. Если вам нужно время начала и окончания, рассмотрите DateTimeOffset тип свойства вместо DateTime.
  3. Полагаю, лучше переименовать класс в WorkInterval или аналогичный.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...