public async Task <IActionResult> Update([FromBody] DoctorBo model)
 {
     try
     {
         service.Update(model);
         return(Ok(model));
     }
     catch (Exception)
     {
         throw;
     }
 }
 public async void Update(DoctorBo model)
 {
     try
     {
         var @doctor = new Doctor().Create(model.Id, model.FirstName, model.LastName, model.PhoneNo
                                           , model.Hospital, model.ImageUrl, model.Email, model.Description, model.RegistrationNo, model.Address, model.Gender);
         var result = await _context.DoctorRepository.CreateAndSave(@doctor);
     }
     catch (Exception)
     {
         throw;
     }
 }
        public async Task <IActionResult> Post([FromBody] DoctorBo model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                model.Email = model.Email.ToLower();
                if (await securityService.UserExsits(model.Email))
                {
                    return(BadRequest("User Name Already Exists"));
                }
                else
                {
                    var result = await service.Create(model);

                    var claim = new Claim[]
                    {
                        new Claim(ClaimTypes.NameIdentifier, result.Id.ToString()),
                        new Claim(ClaimTypes.Name, result.FirstName),
                        new Claim(ClaimTypes.Role, "Doctor")
                    };
                    var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value));

                    var creds            = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature);
                    var tockenDescripter = new SecurityTokenDescriptor
                    {
                        Subject            = new ClaimsIdentity(claim),
                        Expires            = DateTime.Now.AddDays(1),
                        SigningCredentials = creds
                    };
                    var tokenHandler = new JwtSecurityTokenHandler();
                    var token        = tokenHandler.CreateToken(tockenDescripter);
                    return(Ok(new JsonResult(tokenHandler.WriteToken(token))));
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public async Task <Doctor> Create(DoctorBo model)
        {
            try
            {
                var userModel = new User().Create(model.Email, Enums.UserRoles.Consultant);
                var @user     = await Register(userModel, model.Password);

                var @doctor = new Doctor().Create(@user.Id, model.FirstName, model.LastName, model.PhoneNo
                                                  , model.Hospital, model.ImageUrl, model.Email, model.Description, model.RegistrationNo, model.Address, model.Gender).AddUser(@user);

                return(await _context.DoctorRepository.CreateAndSave(@doctor));

                // using (DataContext contextt = new DataContext())
                //{
                //    var result = await contextt.Doctors.AddAsync(@doctor);
                //    contextt.SaveChangesAsync(
                //}
            }
            catch (Exception ex)
            {
                throw;
            }
        }