コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        public async Task <ApiResponse <bool> > SignOutBarberAdmin(BarberLogoutRequestAdminDTO 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)
                    {
                        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();
                        var            info            = TimeZoneInfo.FindSystemTimeZoneById("Egypt Standard Time");
                        DateTimeOffset localServerTime = DateTimeOffset.Now;
                        DateTimeOffset localTime       = TimeZoneInfo.ConvertTime(localServerTime, info);
                        request.Time = localTime.DateTime;
                        barberLoginToEdit.logoutDateTime = request.Time;

                        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);
            }
        }
コード例 #4
0
        public async Task <ApiResponse <BarberDTO> > ChangeBarberStatus(CheckBarber checkBarber)
        {
            ApiResponse <BarberDTO> result = new ApiResponse <BarberDTO>();

            try
            {
                Barber barberToEdit = await unitOfWork.BarbersManager.GetByIdAsync(checkBarber.Id);

                if (barberToEdit != null)
                {
                    var            info            = TimeZoneInfo.FindSystemTimeZoneById("Egypt Standard Time");
                    DateTimeOffset localServerTime = DateTimeOffset.Now;
                    DateTimeOffset localTime       = TimeZoneInfo.ConvertTime(localServerTime, info);

                    DateTime date = localTime.DateTime;
                    var      barberLoginsResult = await unitOfWork.BarberLoginsManager.GetAsync(result => result.BarberId == checkBarber.Id && result.LoginDateTime.Value.Date == checkBarber.Date.Value.Date);

                    BarberLogin login = barberLoginsResult.FirstOrDefault();



                    if (login != null)
                    {
                        if (login.logoutDateTime == null)
                        {
                            if (barberToEdit.Status == "Available")
                            {
                                barberToEdit.Status = "Unavailable";
                            }
                            else
                            {
                                barberToEdit.Status = "Available";
                            }

                            var res = await unitOfWork.BarbersManager.UpdateAsync(barberToEdit);

                            await unitOfWork.SaveChangesAsync();

                            if (res == true)
                            {
                                result.Succeeded = true;
                                result.Data      = mapper.Map <BarberDTO>(barberToEdit);
                                return(result);
                            }
                            else
                            {
                                result.Succeeded = false;
                                result.Errors.Add("Failed to update barber status !");
                                return(result);
                            }
                        }
                        else
                        {
                            result.Succeeded = false;
                            result.Errors.Add("A barber is already Sign Out !");
                            return(result);
                        }
                    }


                    else
                    {
                        result.Succeeded = false;
                        result.Errors.Add("barber is not logged in !");
                        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);
            }
        }