public async Task <(bool Success, string Message)> UtworzWizyte(User user, WizytaCreate data) { if (data.Date == default || data.Time == default) { return(false, "Niepoprawna data wizyty"); } var dt = new DateTime(data.Date.Year, data.Date.Month, data.Date.Day, data.Time.Hours, data.Time.Minutes, 0); var wizyta = new Wizyta(); wizyta.Pacjent = user; wizyta.Doktor = await _context.Users.Include(x => x.Role).FirstOrDefaultAsync(x => x.Role.Name == Consts.DoktorRoleName && x.Id == data.DoktorId); if (wizyta.Doktor == null) { return(false, "Nie można odnaleźć doktora"); } var juzZajete = await _context.Wizyty.AnyAsync(x => x.Data == dt); if (juzZajete) { return(false, "Podana data jest już zarezerwowana"); } wizyta.Data = dt; await _context.AddAsync(wizyta); await _context.SaveChangesAsync(); return(true, ""); }
public async Task <IActionResult> OnPost([FromForm] WizytaCreate data) { if (data != null) { var email = User.FindFirst(ClaimTypes.NameIdentifier).Value; var user = await _context.Users.FirstAsync(x => x.Email == email); var result = await _service.UtworzWizyte(user, data); if (!result.Success) { TempData["ErrorMessage"] = result.Message; } } return(Redirect("/Index")); }