Witam,
Prośba o pomoc z zapytaniem. Mój model:
Surname, Name, StartDateJobe, StartHourJob, EndHourJob.
W kontrolerze napisałem funkcję StartJob, która dodaje do tabeli dane zalogowanego użytkownika wraz z aktualną datą i godziną. Działała by dobrze, gdybym poprawnie zakodował warunek, że jeżeli istnieje rekord w tabeli o takie samej dacie i nazwisku to zwracany jest błąd. Niestety po wielu "kombinacjach" nie udaje mi się to.
Kod z kontrolera:
public async Task<IActionResult> StartJob([Bind("Name,Surname,StartJobDate,StartJobHour,EndJobHour")] Ecp ecp)
{
string name = GetName();
string surname = GetSurname();
DateTime startDateTime = DateTime.Today;
var checkStartJobTodayQuery = from e in _context.Ecps
where e.StartJobDate == startDateTime
&& e.Name == name
&& e.Surname == surname
select e;
try
{
ecp.Name = GetName();
ecp.Surname = GetSurname();
ecp.StartJobDate = DateTime.Today;
ecp.StartJobHour = DateTime.Now;
if (ModelState.IsValid && checkStartJobTodayQuery == null)
{
_context.Add(ecp);
await _context.SaveChangesAsync();
}
else
{
ViewBag.Message = string.Format("Już pracujesz");
}
}
catch(Exception)
{
throw;
}
return RedirectToAction(nameof(Index));
}
Z góry serdeczne dzięki za pomoc