public async Task <GenericResponse> Put(long id, UserRoleDto dto)
        {
            if (id != dto.Id)
            {
                return(GenericResponse.Error(ResultType.Error, "Ids are mismatch!", "UR_PT_01", StatusCodes.Status500InternalServerError));
            }
            try
            {
                UserRoleBo    bo            = UserRoleBo.ConvertToBusinessObject(dto);
                ServiceResult serviceResult = await serviceManager.UserRole_Service.UpdateAsync(id, bo);

                if (serviceResult.Success)
                {
                    await serviceManager.CommitAsync();

                    return(GenericResponse.Ok());
                }
                else
                {
                    return(GenericResponse.Error(ResultType.Error, serviceResult.Error, "UR_PT_02", StatusCodes.Status500InternalServerError));
                }
            }
            catch (Exception ex)
            {
                Log(ex.Message, LogLevel.Error, this.ControllerContext.RouteData.Values);
                return(GenericResponse.Error(ResultType.Error, ex.Message, "UR_PT_03", StatusCodes.Status500InternalServerError));
            }
        }
        public async Task <GenericResponse <UserDto> > Post([FromBody] UserDto dto)
        {
            UserBo bo = UserBo.ConvertToBusinessObject(dto);

            // Yetki kontrolü yapılıyor
            ServiceResult <bool> resultAutorized = await GetAutorizedUserStatusById(bo);

            if (!resultAutorized.Success || !resultAutorized.Data)
            {
                return(GenericResponse <UserDto> .Error(ResultType.Error, "Not Autorized Access!", "U_PST_01", StatusCodes.Status203NonAuthoritative));
            }

            ServiceResult <UserBo> result = await serviceManager.User_Service.CreateAsync(bo);

            if (result.Success)
            {
                bo     = result.Data;
                dto.Id = bo.Id;

                if (dto.Role != null && dto.Role.Count > 0)
                {
                    UserRoleBo userRoleBo;
                    foreach (var role in dto.Role)
                    {
                        userRoleBo = new UserRoleBo()
                        {
                            UserId = dto.Id, RoleId = role.Id
                        };
                        await serviceManager.UserRole_Service.CreateAsync(userRoleBo);
                    }
                }

                await serviceManager.CommitAsync();
            }
            else
            {
                return(GenericResponse <UserDto> .Error(ResultType.Error, result.Error, "U_PST_02", StatusCodes.Status500InternalServerError));
            }

            return(GenericResponse <UserDto> .Ok(dto));
        }
        public async Task <GenericResponse <UserRoleDto> > Get(long id)
        {
            UserRoleBo bo = null;
            ServiceResult <UserRoleBo> result = await serviceManager.UserRole_Service.GetByIdAsync(id);

            if (result.Success)
            {
                bo = result.Data;
            }
            else
            {
                Log(result.Error, LogLevel.Error, this.ControllerContext.RouteData.Values);
            }

            if (bo == null)
            {
                return(GenericResponse <UserRoleDto> .Error(ResultType.Error, "Not Found!", "UR_G_01", StatusCodes.Status404NotFound));
            }

            return(GenericResponse <UserRoleDto> .Ok(UserRoleBo.ConvertToDto(bo)));
        }
        public async Task <GenericResponse <UserRoleDto> > Post([FromBody] UserRoleDto dto)
        {
            UserRoleBo bo = UserRoleBo.ConvertToBusinessObject(dto);
            ServiceResult <UserRoleBo> result = await serviceManager.UserRole_Service.CreateAsync(bo);

            if (result.Success)
            {
                bo = result.Data;

                await serviceManager.CommitAsync();
            }
            else
            {
                return(GenericResponse <UserRoleDto> .Error(ResultType.Error, result.Error, "UR_PST_01", StatusCodes.Status500InternalServerError));
            }

            if (bo == null)
            {
                return(GenericResponse <UserRoleDto> .Error(ResultType.Error, "Not Found!", "UR_PST_02", StatusCodes.Status404NotFound));
            }

            return(GenericResponse <UserRoleDto> .Ok(UserRoleBo.ConvertToDto(bo)));
        }
        public async Task <GenericResponse> Put(long id, UserDto dto)
        {
            if (id != dto.Id)
            {
                return(GenericResponse.Error(ResultType.Error, "Ids are mismatch!", "U_PT_01", StatusCodes.Status500InternalServerError));
            }
            try
            {
                UserBo bo = UserBo.ConvertToBusinessObject(dto);

                // Yetki kontrolü yapılıyor
                ServiceResult <bool> resultAutorized = await GetAutorizedUserStatusById(bo);

                if (!resultAutorized.Success || !resultAutorized.Data)
                {
                    return(GenericResponse.Error(ResultType.Error, "Not Autorized Access!", "U_PT_02", StatusCodes.Status203NonAuthoritative));
                }

                ServiceResult serviceResult = await serviceManager.User_Service.UpdateAsync(id, bo);

                if (serviceResult.Success)
                {
                    if (dto.Role != null && dto.Role.Count > 0)
                    {
                        await serviceManager.UserRole_Service.DeleteByUserIdAsync(dto.Id);

                        UserRoleBo userRole;
                        foreach (var role in dto.Role)
                        {
                            userRole = new UserRoleBo()
                            {
                                UserId = dto.Id, RoleId = role.Id
                            };
                            await serviceManager.UserRole_Service.CreateAsync(userRole);
                        }
                    }

                    await serviceManager.CommitAsync();

                    return(GenericResponse.Ok());
                }
                else
                {
                    return(GenericResponse.Error(ResultType.Error, serviceResult.Error, "U_PT_03", StatusCodes.Status500InternalServerError));
                }
            }
            catch (DbUpdateConcurrencyException ex)
            {
                Log(ex.Message, LogLevel.Error, this.ControllerContext.RouteData.Values);

                bool exist = await UserExists(id);

                if (!exist)
                {
                    return(GenericResponse.Error(ResultType.Error, "Not Found!", "U_PT_04", StatusCodes.Status404NotFound));
                }
                else
                {
                    return(GenericResponse.Error(ResultType.Error, ex.Message, "U_PT_05", StatusCodes.Status500InternalServerError));
                }
            }
        }