From 14f9092f63a357bede984dd863470100d162a6f7 Mon Sep 17 00:00:00 2001 From: prtsie Date: Mon, 12 Aug 2024 15:22:26 +0300 Subject: [PATCH] Created project --- .editorconfig | 273 ++++++++++++++++++ .gitignore | 35 +++ SchengenVisaApi/SchengenVisaApi.sln | 16 + .../Controllers/WeatherForecastController.cs | 32 ++ SchengenVisaApi/SchengenVisaApi/Program.cs | 34 +++ .../Properties/launchSettings.json | 41 +++ .../SchengenVisaApi/SchengenVisaApi.csproj | 14 + .../SchengenVisaApi/SchengenVisaApi.http | 6 + .../SchengenVisaApi/WeatherForecast.cs | 12 + .../appsettings.Development.json | 8 + .../SchengenVisaApi/appsettings.json | 9 + 11 files changed, 480 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 SchengenVisaApi/SchengenVisaApi.sln create mode 100644 SchengenVisaApi/SchengenVisaApi/Controllers/WeatherForecastController.cs create mode 100644 SchengenVisaApi/SchengenVisaApi/Program.cs create mode 100644 SchengenVisaApi/SchengenVisaApi/Properties/launchSettings.json create mode 100644 SchengenVisaApi/SchengenVisaApi/SchengenVisaApi.csproj create mode 100644 SchengenVisaApi/SchengenVisaApi/SchengenVisaApi.http create mode 100644 SchengenVisaApi/SchengenVisaApi/WeatherForecast.cs create mode 100644 SchengenVisaApi/SchengenVisaApi/appsettings.Development.json create mode 100644 SchengenVisaApi/SchengenVisaApi/appsettings.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..eef5df6 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,273 @@ +# Rules in this file were initially inferred by Visual Studio IntelliCode from the D:\Projects\3Cats\monitor\RocketMon.Monitor codebase based on best match to current usage at 15.04.2022 +# You can modify the rules from these initially generated values to suit your own policies +# You can learn more about editorconfig here: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference +[*.cs] +dotnet_diagnostic.MA0053.severity = suggestion +# Report public classes without inheritors (default: false) +MA0053.public_class_should_be_sealed = true +# Report class without inheritors even if there is virtual members (default: false) +MA0053.class_with_virtual_member_shoud_be_sealed = true + +#Core editorconfig formatting - indentation + +#use soft tabs (spaces) for indentation +indent_style = space + +#Formatting - new line options + +#require members of object intializers to be on separate lines +csharp_new_line_before_members_in_object_initializers = true + +#Formatting - spacing options + +#require NO space between a cast and the value +csharp_space_after_cast = false +#require a space after a keyword in a control flow statement such as a for loop +csharp_space_after_keywords_in_control_flow_statements = true +#do not place space characters after the opening parenthesis and before the closing parenthesis of a method call +csharp_space_between_method_call_parameter_list_parentheses = false +#place a space character after the opening parenthesis and before the closing parenthesis of a method declaration parameter list. +csharp_space_between_method_declaration_parameter_list_parentheses = false + +#Formatting - wrapping options + +#leave code block on single line +csharp_preserve_single_line_blocks = true + +#Style - expression bodied member options + +#prefer block bodies for constructors +csharp_style_expression_bodied_constructors = false:suggestion +#prefer block bodies for methods +csharp_style_expression_bodied_methods = false:suggestion +#prefer expression-bodied members for properties +csharp_style_expression_bodied_properties = true:suggestion + +#Style - Expression-level preferences + +#prefer objects to be initialized using object initializers when possible +dotnet_style_object_initializer = true:suggestion + +#Style - implicit and explicit types + +#prefer var over explicit type in all cases, unless overridden by another code style rule +csharp_style_var_elsewhere = true:suggestion + +#Style - language keyword and framework type options + +#prefer the language keyword for local variables, method parameters, and class members, instead of the type name, for types that have a keyword to represent them +dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion + +#Style - modifier options + +#prefer accessibility modifiers to be declared except for public interface members. This will currently not differ from always and will act as future proofing for if C# adds default interface methods. +dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion + +#Style - Modifier preferences + +#when this rule is set to a list of modifiers, prefer the specified ordering. +csharp_preferred_modifier_order = public,private,readonly,static:suggestion + +#Style - qualification options + +#prefer fields not to be prefaced with this. or Me. in Visual Basic +dotnet_style_qualification_for_field = false:suggestion +#prefer properties not to be prefaced with this. or Me. in Visual Basic +dotnet_style_qualification_for_property = false:suggestion +root = true + +# This file should be identical between ERP and monopoly.online. ERP copy is original, please make changes in ERP first + +# windows-style newlines with a newline ending every file +[*] +end_of_line = crlf +insert_final_newline = true +indent_style = space + +trim_trailing_whitespace = true + +# Xml project files +[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}] +indent_size = 4 +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion +dotnet_style_prefer_auto_properties = true:silent +dotnet_style_object_initializer = true:suggestion +dotnet_style_prefer_collection_expression = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_prefer_simplified_boolean_expressions = true:suggestion +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_prefer_inferred_tuple_names = true:suggestion +dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion +dotnet_style_prefer_compound_assignment = true:suggestion +dotnet_style_prefer_simplified_interpolation = true:suggestion +dotnet_style_namespace_match_folder = true:suggestion +dotnet_style_operator_placement_when_wrapping = beginning_of_line +tab_width = 4 + +# Xml config files +[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] +indent_size = 2 + +# JSON files +[*.json] +indent_size = 2 + +[*.{js,jsx}] + +ident_size = 2 + +[*.cs] + +ident_size = 4 +charset = "utf-8-bom" + +max_line_length = 150 + +#no need for explicit this. +dotnet_style_qualification_for_field = false:warning +dotnet_style_qualification_for_property = false:warning +dotnet_style_qualification_for_method = false:warning +dotnet_style_qualification_for_event = false:warning + +# Prefer int, not Int32 +dotnet_style_predefined_type_for_locals_parameters_members = true:warning +dotnet_style_predefined_type_for_member_access = true:warning + +#Prefer initializer list where possible +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion + +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:suggestion + +csharp_style_var_for_built_in_types = true:suggestion +csharp_style_var_when_type_is_apparent = true:suggestion +csharp_style_var_elsewhere = true:none + +csharp_style_expression_bodied_methods = true:none +csharp_style_expression_bodied_constructors = false:warning +csharp_style_expression_bodied_properties = true:suggestion +csharp_style_expression_bodied_indexers = true:none +csharp_style_expression_bodied_accessors = true:suggestion + +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion +csharp_style_inlined_variable_declaration = true:suggestion + +csharp_prefer_simple_default_expression = true:suggestion + +csharp_style_throw_expression = true:suggestion +csharp_style_conditional_delegate_call = true:suggestion + +csharp_prefer_braces = true:error + +dotnet_sort_system_directives_first = true + +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_within_query_expression_clauses = true + +csharp_indent_case_contents = true +csharp_indent_switch_labels = true + +csharp_space_after_cast = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_between_method_declaration_parameter_list_parentheses= false +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_parentheses = false + +csharp_preserve_single_line_statements = false +csharp_preserve_single_line_blocks= true + +csharp_align_linq_query = false +csharp_align_multiline_argument = false +csharp_align_multiline_array_and_object_initializer = false +csharp_align_multiline_calls_chain = false +csharp_align_multiline_expression = false +csharp_align_multiline_extends_list = false +csharp_align_multiline_for_stmt = false +csharp_align_multiline_parameter = false +csharp_align_multiple_declaration = false +csharp_align_multline_type_parameter_constrains = false +csharp_align_multline_type_parameter_list = false +csharp_indent_anonymous_method_block = false + +csharp_stick_comment = false + +csharp_wrap_chained_method_calls = chop_if_long +csharp_wrap_parameters_style = chop_if_long + +#Styles +dotnet_naming_style.pascal_case_style.capitalization = pascal_case + +dotnet_naming_style.camel_case_style.capitalization = camel_case + +#Kinds +dotnet_naming_symbols.constant_fields.applicable_kinds = field +dotnet_naming_symbols.constant_fields.required_modifiers = const + +dotnet_naming_symbols.open_static_fields.applicable_kinds = field +dotnet_naming_symbols.open_static_fields.required_modifiers = static +dotnet_naming_symbols.open_static_fields.applicable_accessibilities = public, internal, protected + +dotnet_naming_symbols.properties.applicable_kinds = property + +dotnet_naming_symbols.private_internal_fields.applicable_kinds = field +dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal + +# Rules +## name all constant fields using PascalCase +dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = error +dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields +dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style + +## static fields should be pascal_case +dotnet_naming_rule.static_fields_should_be_pascal_case.severity = error +dotnet_naming_rule.static_fields_should_be_pascal_case.symbols = open_static_fields +dotnet_naming_rule.static_fields_should_be_pascal_case.style = pascal_case_style + +## internal and private fields should be camel_case +dotnet_naming_rule.camel_case_for_private_internal_fields.severity = error +dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields +dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_style + +## Properties should be pascal_case +dotnet_naming_rule.properties_should_be_pascal_case.severity = error +dotnet_naming_rule.properties_should_be_pascal_case.symbols = properties +dotnet_naming_rule.properties_should_be_pascal_case.style = pascal_case_style + + +dotnet_diagnostic.IDE0055.severity = error + +# Default severity for analyzer diagnostics with category 'Performance' +dotnet_analyzer_diagnostic.category-Performance.severity = suggestion +csharp_using_directive_placement = outside_namespace:silent +csharp_prefer_simple_using_statement = true:suggestion +csharp_style_namespace_declarations = block_scoped:silent +csharp_style_prefer_method_group_conversion = true:silent +csharp_style_prefer_top_level_statements = true:silent +csharp_style_prefer_primary_constructors = true:suggestion +csharp_style_expression_bodied_operators = false:silent +csharp_style_expression_bodied_lambdas = true:silent +csharp_style_expression_bodied_local_functions = false:silent +csharp_style_prefer_null_check_over_type_check = true:suggestion +csharp_style_prefer_local_over_anonymous_function = true:suggestion +csharp_style_prefer_index_operator = true:suggestion +csharp_style_prefer_range_operator = true:suggestion +csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion +csharp_style_prefer_tuple_swap = true:suggestion +csharp_style_prefer_utf8_string_literals = true:suggestion +csharp_style_deconstructed_variable_declaration = true:suggestion +csharp_style_unused_value_assignment_preference = discard_variable:suggestion +csharp_style_unused_value_expression_statement_preference = discard_variable:silent +csharp_indent_labels = one_less_than_current +csharp_space_around_binary_operators = before_and_after diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fa0340b --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# Common IntelliJ Platform excludes + +# User specific +**/.idea/**/workspace.xml +**/.idea/**/tasks.xml +**/.idea/shelf/* +**/.idea/dictionaries +**/.idea/httpRequests/ + +# Sensitive or high-churn files +**/.idea/**/dataSources/ +**/.idea/**/dataSources.ids +**/.idea/**/dataSources.xml +**/.idea/**/dataSources.local.xml +**/.idea/**/sqlDataSources.xml +**/.idea/**/dynamic.xml + +# Rider +# Rider auto-generates .iml files, and contentModel.xml +**/.idea/**/*.iml +**/.idea/**/contentModel.xml +**/.idea/**/modules.xml + +*.suo +*.user +.vs/ +**/.idea/ +[Bb]in/ +[Oo]bj/ +_UpgradeReport_Files/ +[Pp]ackages/ + +Thumbs.db +Desktop.ini +.DS_Store diff --git a/SchengenVisaApi/SchengenVisaApi.sln b/SchengenVisaApi/SchengenVisaApi.sln new file mode 100644 index 0000000..93fb9d0 --- /dev/null +++ b/SchengenVisaApi/SchengenVisaApi.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SchengenVisaApi", "SchengenVisaApi\SchengenVisaApi.csproj", "{BA957CD4-48D1-4B24-A0E0-BA57B84B1DC3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BA957CD4-48D1-4B24-A0E0-BA57B84B1DC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BA957CD4-48D1-4B24-A0E0-BA57B84B1DC3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BA957CD4-48D1-4B24-A0E0-BA57B84B1DC3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BA957CD4-48D1-4B24-A0E0-BA57B84B1DC3}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/SchengenVisaApi/SchengenVisaApi/Controllers/WeatherForecastController.cs b/SchengenVisaApi/SchengenVisaApi/Controllers/WeatherForecastController.cs new file mode 100644 index 0000000..fd59a14 --- /dev/null +++ b/SchengenVisaApi/SchengenVisaApi/Controllers/WeatherForecastController.cs @@ -0,0 +1,32 @@ +using Microsoft.AspNetCore.Mvc; + +namespace SchengenVisaApi.Controllers; + +[ApiController] +[Route("[controller]")] +public class WeatherForecastController : ControllerBase +{ + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + private readonly ILogger _logger; + + public WeatherForecastController(ILogger logger) + { + _logger = logger; + } + + [HttpGet(Name = "GetWeatherForecast")] + public IEnumerable Get() + { + return Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)), + TemperatureC = Random.Shared.Next(-20, 55), + Summary = Summaries[Random.Shared.Next(Summaries.Length)] + }) + .ToArray(); + } +} \ No newline at end of file diff --git a/SchengenVisaApi/SchengenVisaApi/Program.cs b/SchengenVisaApi/SchengenVisaApi/Program.cs new file mode 100644 index 0000000..58c77b1 --- /dev/null +++ b/SchengenVisaApi/SchengenVisaApi/Program.cs @@ -0,0 +1,34 @@ +namespace SchengenVisaApi; + +public class Program +{ + public static void Main(string[] args) + { + var builder = WebApplication.CreateBuilder(args); + + // Add services to the container. + + builder.Services.AddControllers(); + // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle + builder.Services.AddEndpointsApiExplorer(); + builder.Services.AddSwaggerGen(); + + var app = builder.Build(); + + // Configure the HTTP request pipeline. + if (app.Environment.IsDevelopment()) + { + app.UseSwagger(); + app.UseSwaggerUI(); + } + + app.UseHttpsRedirection(); + + app.UseAuthorization(); + + + app.MapControllers(); + + app.Run(); + } +} \ No newline at end of file diff --git a/SchengenVisaApi/SchengenVisaApi/Properties/launchSettings.json b/SchengenVisaApi/SchengenVisaApi/Properties/launchSettings.json new file mode 100644 index 0000000..cb0562b --- /dev/null +++ b/SchengenVisaApi/SchengenVisaApi/Properties/launchSettings.json @@ -0,0 +1,41 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:8820", + "sslPort": 44370 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "launchUrl": "swagger", + "applicationUrl": "http://localhost:5022", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "launchUrl": "swagger", + "applicationUrl": "https://localhost:7168;http://localhost:5022", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/SchengenVisaApi/SchengenVisaApi/SchengenVisaApi.csproj b/SchengenVisaApi/SchengenVisaApi/SchengenVisaApi.csproj new file mode 100644 index 0000000..d997d54 --- /dev/null +++ b/SchengenVisaApi/SchengenVisaApi/SchengenVisaApi.csproj @@ -0,0 +1,14 @@ + + + + net8.0 + enable + enable + true + + + + + + + diff --git a/SchengenVisaApi/SchengenVisaApi/SchengenVisaApi.http b/SchengenVisaApi/SchengenVisaApi/SchengenVisaApi.http new file mode 100644 index 0000000..6be9b59 --- /dev/null +++ b/SchengenVisaApi/SchengenVisaApi/SchengenVisaApi.http @@ -0,0 +1,6 @@ +@SchengenVisaApi_HostAddress = http://localhost:5022 + +GET {{SchengenVisaApi_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/SchengenVisaApi/SchengenVisaApi/WeatherForecast.cs b/SchengenVisaApi/SchengenVisaApi/WeatherForecast.cs new file mode 100644 index 0000000..b073497 --- /dev/null +++ b/SchengenVisaApi/SchengenVisaApi/WeatherForecast.cs @@ -0,0 +1,12 @@ +namespace SchengenVisaApi; + +public class WeatherForecast +{ + public DateOnly Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string? Summary { get; set; } +} \ No newline at end of file diff --git a/SchengenVisaApi/SchengenVisaApi/appsettings.Development.json b/SchengenVisaApi/SchengenVisaApi/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/SchengenVisaApi/SchengenVisaApi/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/SchengenVisaApi/SchengenVisaApi/appsettings.json b/SchengenVisaApi/SchengenVisaApi/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/SchengenVisaApi/SchengenVisaApi/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +}