public void StartWorkEvent(int? id, string TimeStart)
{
var worker = uOW.WorkshiftHistoryRepo.Get(s => s.DriverId == id).LastOrDefault(); // get the last entry for a current user
var mappedworker = Mapper.Map<WorkshiftHistoryDTO>(worker);
if (mappedworker == null) // if entry is empty (if no entry at all)
{
NewWorkerShift(id); // creating new entry (starting workshift)
}
else if (worker.WorkEnded == null) // if that last entry is unfinished (no end of workshift)
{
//var dbworker = Mapper.Map<WorkshiftHistory>(mappedworker);
uOW.WorkshiftHistoryRepo.SetStateModified(worker); // finishing that shift
worker.WorkEnded = DateTime.ParseExact(TimeStart, "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture);
uOW.Save();
NewWorkerShift(id); // starting new shift.
}
else // if entries are exist but all finished - create new entry
{
NewWorkerShift(id);
}
}