├── .dockerignore ├── .gitignore ├── DotNetConf.Api ├── Controllers │ ├── Base │ │ └── BaseController.cs │ ├── IdentityController.cs │ ├── RepositoryController.cs │ ├── UserController.cs │ └── Version2 │ │ ├── RepositoryController.cs │ │ └── UserController.cs ├── Dockerfile ├── DotNetConf.Api.csproj ├── Entities │ ├── Common │ │ └── BaseEntity.cs │ ├── RepositoryEntity.cs │ └── UserEntity.cs ├── Enums │ ├── IssueStatuses.cs │ ├── LicenseTypes.cs │ └── RecordStatuses.cs ├── Features │ ├── Identity │ │ ├── Commands │ │ │ └── CreateJwtTokenCommand.cs │ │ └── Models │ │ │ ├── IdentityRequestModel.cs │ │ │ ├── IdentityResponseModel.cs │ │ │ └── IdentitySettingModel.cs │ ├── Repository │ │ ├── Commands │ │ │ ├── ChangeVisibilityRepositoryCommand.cs │ │ │ ├── CreateRepositoryCommand.cs │ │ │ ├── DeleteRepositoryCommand.cs │ │ │ └── UpdateRepositoryCommand.cs │ │ ├── Models │ │ │ └── RepositoryModel.cs │ │ ├── Queries │ │ │ ├── ExistNameQuery.cs │ │ │ ├── GetRepositoriesQuery.cs │ │ │ └── GetRepositoryQuery.cs │ │ └── Validators │ │ │ ├── ChangeVisibilityRepositoryValidator.cs │ │ │ ├── CreateRepositoryValidator.cs │ │ │ ├── DeleteRepositoryValidator.cs │ │ │ └── UpdateRepositoryValidator.cs │ └── User │ │ ├── Commands │ │ ├── CreateUserCommand.cs │ │ ├── DeleteUserCommand.cs │ │ └── UpdateUserCommand.cs │ │ ├── Models │ │ └── UserModel.cs │ │ ├── Queries │ │ ├── ExistUsernameQuery.cs │ │ ├── GetUserQuery.cs │ │ └── GetUsersQuery.cs │ │ └── Validators │ │ ├── CreateUserValidator.cs │ │ ├── DeleteUserValidator.cs │ │ └── UpdateUserValidator.cs ├── Infrastructures │ ├── Database │ │ ├── DotNetConfDbContext.cs │ │ ├── SeedDataGenerator.cs │ │ └── Service.cs │ ├── Mapper │ │ ├── AutoMapperProfile.cs │ │ └── IMapping.cs │ ├── Middlewares │ │ └── ExceptionHandlingMiddleware.cs │ └── Swaggers │ │ ├── ConfigureSwaggerOptions.cs │ │ └── SwaggerDefaultValues.cs ├── Models │ ├── BaseResponseModel.cs │ ├── Exceptions │ │ ├── BadRequestException.cs │ │ ├── BaseException.cs │ │ ├── InternalServerError.cs │ │ ├── NotAcceptableException.cs │ │ ├── NotFoundException.cs │ │ ├── UnauthorizedException.cs │ │ └── UnprocessableException.cs │ └── LinkModel.cs ├── Program.cs ├── Properties │ └── launchSettings.json ├── Startup.cs ├── appsettings.Development.json └── appsettings.json ├── DotNetConf.sln ├── LICENSE ├── Presentation └── RestfulApiDesignSunum.pptx └── README.md /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/.dockerignore -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/.gitignore -------------------------------------------------------------------------------- /DotNetConf.Api/Controllers/Base/BaseController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Controllers/Base/BaseController.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Controllers/IdentityController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Controllers/IdentityController.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Controllers/RepositoryController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Controllers/RepositoryController.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Controllers/UserController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Controllers/UserController.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Controllers/Version2/RepositoryController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Controllers/Version2/RepositoryController.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Controllers/Version2/UserController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Controllers/Version2/UserController.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Dockerfile -------------------------------------------------------------------------------- /DotNetConf.Api/DotNetConf.Api.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/DotNetConf.Api.csproj -------------------------------------------------------------------------------- /DotNetConf.Api/Entities/Common/BaseEntity.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Entities/Common/BaseEntity.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Entities/RepositoryEntity.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Entities/RepositoryEntity.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Entities/UserEntity.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Entities/UserEntity.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Enums/IssueStatuses.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Enums/IssueStatuses.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Enums/LicenseTypes.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Enums/LicenseTypes.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Enums/RecordStatuses.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Enums/RecordStatuses.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Identity/Commands/CreateJwtTokenCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Identity/Commands/CreateJwtTokenCommand.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Identity/Models/IdentityRequestModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Identity/Models/IdentityRequestModel.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Identity/Models/IdentityResponseModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Identity/Models/IdentityResponseModel.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Identity/Models/IdentitySettingModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Identity/Models/IdentitySettingModel.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Commands/ChangeVisibilityRepositoryCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Commands/ChangeVisibilityRepositoryCommand.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Commands/CreateRepositoryCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Commands/CreateRepositoryCommand.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Commands/DeleteRepositoryCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Commands/DeleteRepositoryCommand.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Commands/UpdateRepositoryCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Commands/UpdateRepositoryCommand.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Models/RepositoryModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Models/RepositoryModel.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Queries/ExistNameQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Queries/ExistNameQuery.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Queries/GetRepositoriesQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Queries/GetRepositoriesQuery.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Queries/GetRepositoryQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Queries/GetRepositoryQuery.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Validators/ChangeVisibilityRepositoryValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Validators/ChangeVisibilityRepositoryValidator.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Validators/CreateRepositoryValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Validators/CreateRepositoryValidator.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Validators/DeleteRepositoryValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Validators/DeleteRepositoryValidator.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/Repository/Validators/UpdateRepositoryValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/Repository/Validators/UpdateRepositoryValidator.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/User/Commands/CreateUserCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/User/Commands/CreateUserCommand.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/User/Commands/DeleteUserCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/User/Commands/DeleteUserCommand.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/User/Commands/UpdateUserCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/User/Commands/UpdateUserCommand.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/User/Models/UserModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/User/Models/UserModel.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/User/Queries/ExistUsernameQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/User/Queries/ExistUsernameQuery.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/User/Queries/GetUserQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/User/Queries/GetUserQuery.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/User/Queries/GetUsersQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/User/Queries/GetUsersQuery.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/User/Validators/CreateUserValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/User/Validators/CreateUserValidator.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/User/Validators/DeleteUserValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/User/Validators/DeleteUserValidator.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Features/User/Validators/UpdateUserValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Features/User/Validators/UpdateUserValidator.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Infrastructures/Database/DotNetConfDbContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Infrastructures/Database/DotNetConfDbContext.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Infrastructures/Database/SeedDataGenerator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Infrastructures/Database/SeedDataGenerator.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Infrastructures/Database/Service.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Infrastructures/Database/Service.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Infrastructures/Mapper/AutoMapperProfile.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Infrastructures/Mapper/AutoMapperProfile.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Infrastructures/Mapper/IMapping.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Infrastructures/Mapper/IMapping.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Infrastructures/Middlewares/ExceptionHandlingMiddleware.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Infrastructures/Middlewares/ExceptionHandlingMiddleware.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Infrastructures/Swaggers/ConfigureSwaggerOptions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Infrastructures/Swaggers/ConfigureSwaggerOptions.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Infrastructures/Swaggers/SwaggerDefaultValues.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Infrastructures/Swaggers/SwaggerDefaultValues.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Models/BaseResponseModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Models/BaseResponseModel.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Models/Exceptions/BadRequestException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Models/Exceptions/BadRequestException.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Models/Exceptions/BaseException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Models/Exceptions/BaseException.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Models/Exceptions/InternalServerError.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Models/Exceptions/InternalServerError.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Models/Exceptions/NotAcceptableException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Models/Exceptions/NotAcceptableException.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Models/Exceptions/NotFoundException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Models/Exceptions/NotFoundException.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Models/Exceptions/UnauthorizedException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Models/Exceptions/UnauthorizedException.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Models/Exceptions/UnprocessableException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Models/Exceptions/UnprocessableException.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Models/LinkModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Models/LinkModel.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Program.cs -------------------------------------------------------------------------------- /DotNetConf.Api/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Properties/launchSettings.json -------------------------------------------------------------------------------- /DotNetConf.Api/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/Startup.cs -------------------------------------------------------------------------------- /DotNetConf.Api/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/appsettings.Development.json -------------------------------------------------------------------------------- /DotNetConf.Api/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.Api/appsettings.json -------------------------------------------------------------------------------- /DotNetConf.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/DotNetConf.sln -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/LICENSE -------------------------------------------------------------------------------- /Presentation/RestfulApiDesignSunum.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BerkEmreCabuk/dotnet-conf-restful-api-design/HEAD/Presentation/RestfulApiDesignSunum.pptx -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dotnet-conf-2021 --------------------------------------------------------------------------------