public async Task <ResponseModel> CreateSpecialtyAsync(SpecialtyManageModel specialtyManageModel)
        {
            var checkName = await _specialtyRepository.GetAll().FirstOrDefaultAsync(x => x.Name == specialtyManageModel.Name);

            if (checkName != null)
            {
                return(new ResponseModel
                {
                    StatusCode = System.Net.HttpStatusCode.BadRequest,
                    Message = "This Specialty's name is exist!"
                });
            }

            var specialty = _mapper.Map <Specialty>(specialtyManageModel);

            await _specialtyRepository.InsertAsync(specialty);

            specialty = await GetAll().FirstOrDefaultAsync(x => x.Id == specialty.Id);

            return(new ResponseModel()
            {
                StatusCode = System.Net.HttpStatusCode.OK,
                Data = new SpecialtyViewModel(specialty)
            });
        }
        public async Task <ResponseModel> UpdateSpecialtyAsync(Guid id, SpecialtyManageModel specialtyManageModel)
        {
            var specialty = await _specialtyRepository.GetByIdAsync(id);

            if (specialty == null)
            {
                return(new ResponseModel
                {
                    StatusCode = System.Net.HttpStatusCode.NotFound,
                    Message = "This Specialty is not exist!"
                });
            }
            else
            {
                var checkName = await _specialtyRepository.GetAll().FirstOrDefaultAsync(x => x.Name == specialtyManageModel.Name && x.Id != id);

                if (checkName != null)
                {
                    return(new ResponseModel
                    {
                        StatusCode = System.Net.HttpStatusCode.NotFound,
                        Message = "This Specialty's name is exist!"
                    });
                }

                specialtyManageModel.GetSpecialtyFromModel(specialty);
                return(await _specialtyRepository.UpdateAsync(specialty));
            }
        }
        public async Task <IActionResult> Update(Guid id, [FromBody] SpecialtyManageModel specialtyManageModel)
        {
            var response = await _specialtyService.UpdateSpecialtyAsync(id, specialtyManageModel);

            return(new CustomActionResult(response));
        }
        public async Task <IActionResult> Create([FromBody] SpecialtyManageModel specialtyManageModel)
        {
            var response = await _specialtyService.CreateSpecialtyAsync(specialtyManageModel);

            return(new CustomActionResult(response));
        }