public async Task <ApiResponse <bool> > SignInBarberAdmin(BarberLoginRequestAdminDTO request) { ApiResponse <bool> result = new ApiResponse <bool>(); try { Barber barber = await unitOfWork.BarbersManager.GetByIdAsync(request.BarberId); if (barber != null) { var barberLoginResult = await unitOfWork.BarberLoginsManager.GetAsync(b => b.BarberId == request.BarberId && b.LoginDateTime.Value.Date == request.Time.Date); if (barberLoginResult.FirstOrDefault() == null) { var info = TimeZoneInfo.FindSystemTimeZoneById("Egypt Standard Time"); DateTimeOffset localServerTime = DateTimeOffset.Now; DateTimeOffset localTime = TimeZoneInfo.ConvertTime(localServerTime, info); request.Time = localTime.DateTime; BarberLogin newLogin = new BarberLogin(); newLogin.BarberId = barber.Id; newLogin.LoginDateTime = request.Time; 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 { 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> SignInBarber(BarberLoginRequestAdminDTO request) { return(await AddItemResponseHandler(async() => await service.SignInBarberAdmin(request))); }