public async Task <ApiResponse <bool> > EditBarber(EditBarberDTO model)
        {
            ApiResponse <bool> result = new ApiResponse <bool>();

            try
            {
                Barber BarberToEdit = await unitOfWork.BarbersManager.GetByIdAsync(model.Id);

                if (BarberToEdit != null)
                {
                    BarberProfilePhoto barberProfilePhotoToEdit = await unitOfWork.BarberProfilePhotosManager.GetProfilePhotoByBarberId(BarberToEdit.Id);

                    if (barberProfilePhotoToEdit != null)
                    {
                        BarberToEdit.NameAR = model.NameAR;
                        BarberToEdit.NameEN = model.NameEN;
                        BarberToEdit.BarberFingerPrintId = model.BarberFingerprintId;

                        var barberPrintResult = await unitOfWork.BarbersManager.GetAsync(a => a.BarberFingerPrintId == model.BarberFingerprintId);

                        var barber = barberPrintResult.FirstOrDefault();

                        if (barber != null && model.Id != BarberToEdit.Id)
                        {
                            result.Succeeded = false;
                            result.Errors.Add("Finger Print Id is used ! ");
                            return(result);
                        }
                        else
                        {
                            barberProfilePhotoToEdit.AdminPath = model.BarberProfilePhotoPathAdmin;
                            barberProfilePhotoToEdit.UserPath  = model.BarberProfilePhotoPathUser;



                            var barberResult = await unitOfWork.BarbersManager.UpdateAsync(BarberToEdit);

                            var barberProfilePhotoResult = await unitOfWork.BarberProfilePhotosManager.UpdateAsync(barberProfilePhotoToEdit);



                            if (barberResult == true && barberProfilePhotoResult == true)
                            {
                                await unitOfWork.SaveChangesAsync();

                                result.Succeeded = true;
                                result.Data      = true;
                                return(result);
                            }
                            else
                            {
                                result.Succeeded = false;
                                result.Errors.Add("Failed to update barber information ! ");
                                return(result);
                            }
                        }
                    }
                    else
                    {
                        result.Succeeded = false;
                        result.Errors.Add("Unable to find barber profile photo with specified barber id ! ");
                        return(result);
                    }
                }
                else
                {
                    result.Succeeded = false;
                    result.Errors.Add("Unable to find barber with specified id ! ");
                    return(result);
                }
            }
            catch (Exception ex)
            {
                result.Succeeded = false;
                result.Errors.Add(ex.Message);
                return(result);
            }
        }
Example #2
0
 public async Task <IActionResult> EditBarber(EditBarberDTO model)
 {
     return(await AddItemResponseHandler(async() => await service.EditBarber(model)));
 }