public async Task <ApiResponse <bool> > BarberAttendanceBiometric(BarberAttendanceDTO request) { ApiResponse <bool> result = new ApiResponse <bool>(); try { var barberResult = await unitOfWork.BarbersManager.GetAsync(a => a.BarberFingerPrintId == request.BarberFingerprintId); Barber barber = barberResult.FirstOrDefault(); if (barber != null) { if (request.Method == 0) // Login Request . { var barberLoginResult = await unitOfWork.BarberLoginsManager.GetAsync(b => b.BarberId == barber.Id && b.LoginDateTime.Value.Date == request.CheckDate.Date); if (barberLoginResult.FirstOrDefault() == null) { BarberLogin newLogin = new BarberLogin(); newLogin.BarberId = barber.Id; newLogin.LoginDateTime = request.CheckDate; var res = await unitOfWork.BarberLoginsManager.CreateAsync(newLogin); await unitOfWork.SaveChangesAsync(); if (res != null) { result.Succeeded = true; result.Data = true; return(result); } else { result.Succeeded = false; result.Data = false; result.Errors.Add("Failed to sign in barber !"); return(result); } } else { result.Succeeded = false; result.Data = false; result.Errors.Add("Barber already signed in today !"); return(result); } } else // Logout Request . { var barberLoginResult = await unitOfWork.BarberLoginsManager.GetAsync(b => b.BarberId == barber.Id && b.LoginDateTime.Value.Date == request.CheckDate.Date); if (barberLoginResult.FirstOrDefault() == null) { result.Succeeded = false; result.Data = false; result.Errors.Add("Barber hasn't signed in today , Barber needs to sign in first in order to be able to sign out !"); return(result); } else { BarberLogin barberLoginToEdit = barberLoginResult.FirstOrDefault(); barberLoginToEdit.logoutDateTime = request.CheckDate; barber.Status = "Unavailable"; var res = await unitOfWork.BarberLoginsManager.UpdateAsync(barberLoginToEdit); await unitOfWork.SaveChangesAsync(); if (res == true) { result.Succeeded = true; result.Data = true; return(result); } else { result.Succeeded = false; result.Data = false; result.Errors.Add("Failed to sign out barber !"); return(result); } } } } else { result.Succeeded = false; result.Errors.Add("Failed to find specified barber !"); return(result); } } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); return(result); } }
public async Task <IActionResult> BarberAttendanceBiometric(BarberAttendanceDTO request) { return(await AddItemResponseHandler(async() => await service.BarberAttendanceBiometric(request))); }