HotelRestApi
This commit is contained in:
parent
1a3305de60
commit
2ef71093bd
@ -11,7 +11,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HotelContracts", "HotelCont
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HotelDataBaseImplement", "HotelDataBaseImplement\HotelDataBaseImplement.csproj", "{3FAD978F-2155-4D65-963D-616F18ABA37F}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HotelDataBaseImplement", "HotelDataBaseImplement\HotelDataBaseImplement.csproj", "{3FAD978F-2155-4D65-963D-616F18ABA37F}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HotelBusinessLogic", "HotelBusinessLogic\HotelBusinessLogic.csproj", "{6A77DCB6-60DC-4A2C-B259-578F1B547AF6}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HotelBusinessLogic", "HotelBusinessLogic\HotelBusinessLogic.csproj", "{6A77DCB6-60DC-4A2C-B259-578F1B547AF6}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HotelRestApi", "HotelRestApi\HotelRestApi.csproj", "{1FE967C0-64C0-4CEF-9DE4-3E00BA2B347D}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@ -39,6 +41,10 @@ Global
|
|||||||
{6A77DCB6-60DC-4A2C-B259-578F1B547AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{6A77DCB6-60DC-4A2C-B259-578F1B547AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{6A77DCB6-60DC-4A2C-B259-578F1B547AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{6A77DCB6-60DC-4A2C-B259-578F1B547AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{6A77DCB6-60DC-4A2C-B259-578F1B547AF6}.Release|Any CPU.Build.0 = Release|Any CPU
|
{6A77DCB6-60DC-4A2C-B259-578F1B547AF6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{1FE967C0-64C0-4CEF-9DE4-3E00BA2B347D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{1FE967C0-64C0-4CEF-9DE4-3E00BA2B347D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{1FE967C0-64C0-4CEF-9DE4-3E00BA2B347D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{1FE967C0-64C0-4CEF-9DE4-3E00BA2B347D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
68
Hotel/HotelRestApi/Controllers/HeadwaiterController.cs
Normal file
68
Hotel/HotelRestApi/Controllers/HeadwaiterController.cs
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
using HotelContracts.BindingModels;
|
||||||
|
using HotelContracts.BusinessLogicsContracts;
|
||||||
|
using HotelContracts.SearchModels;
|
||||||
|
using HotelContracts.ViewModels;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace HotelRestApi.Controllers
|
||||||
|
{
|
||||||
|
[Route("api/[controller]/[action]")]
|
||||||
|
[ApiController]
|
||||||
|
public class HeadwaiterController : Controller
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IHeadwaiterLogic _logic;
|
||||||
|
|
||||||
|
public HeadwaiterController(IHeadwaiterLogic logic, ILogger<HeadwaiterController> logger)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_logic = logic;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
public HeadwaiterViewModel? Login(string login, string password)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return _logic.ReadElement(new HeadwaiterSearchModel
|
||||||
|
{
|
||||||
|
HeadwaiterEmail = login,
|
||||||
|
HeadwaiterPassword = password
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка входа в систему");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public void Register(HeadwaiterBindingModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logic.Create(model);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка регистрации");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public void UpdateData(HeadwaiterBindingModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logic.Update(model);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка обновления данных");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
118
Hotel/HotelRestApi/Controllers/ReportController.cs
Normal file
118
Hotel/HotelRestApi/Controllers/ReportController.cs
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
using HotelContracts.BindingModels;
|
||||||
|
using HotelContracts.BusinessLogicsContracts;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace HotelRestApi.Controllers
|
||||||
|
{
|
||||||
|
[Route("api/[controller]/[action]")]
|
||||||
|
[ApiController]
|
||||||
|
public class ReportController : Controller
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly IReportOrganiserLogic _reportOrganiserLogic;
|
||||||
|
private readonly IReportHeadwaiterLogic _reportHeadwaiterLogic;
|
||||||
|
|
||||||
|
public ReportController(ILogger<ReportController> logger, IReportOrganiserLogic reportOrganiserLogic, IReportHeadwaiterLogic reportHeadwaiterLogic)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_reportOrganiserLogic = reportOrganiserLogic;
|
||||||
|
_reportHeadwaiterLogic = reportHeadwaiterLogic;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public void CreateOrganiserReportToPdfFile(ReportOrganiserBindingModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_reportOrganiserLogic.SaveMembersToPdfFile(new ReportOrganiserBindingModel
|
||||||
|
{
|
||||||
|
DateFrom = model.DateFrom,
|
||||||
|
DateTo = model.DateTo,
|
||||||
|
OrganiserId = model.OrganiserId,
|
||||||
|
FileName = "C:\\Reports\\pdffile.pdf",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка создания отчета");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public void CreateOrganiserReportToWordFile(ReportOrganiserBindingModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_reportOrganiserLogic.SaveMemberConferenceToWordFile(model);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка создания отчета");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public void CreateOrganiserReportToExcelFile(ReportOrganiserBindingModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_reportOrganiserLogic.SaveMemberConferenceToExcelFile(model);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка создания отчета");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public void CreateHeadwaiterReportToWordFile(ReportHeadwaiterBindingModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_reportHeadwaiterLogic.SaveLunchRoomToWordFile(model);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка создания отчета");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public void CreateHeadwaiterReportToExcelFile(ReportHeadwaiterBindingModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_reportHeadwaiterLogic.SaveLunchRoomToWordFile(model);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка создания отчета");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public void CreateHeadwaiterReportToPdfFile(ReportHeadwaiterBindingModel model)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_reportHeadwaiterLogic.SaveLunchesToPdfFile(new ReportHeadwaiterBindingModel
|
||||||
|
{
|
||||||
|
FileName = "C:\\Reports\\pdffile.pdf",
|
||||||
|
DateFrom = model.DateFrom,
|
||||||
|
DateTo = model.DateTo,
|
||||||
|
HeadwaiterId = model.HeadwaiterId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка создания отчета");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
21
Hotel/HotelRestApi/HotelRestApi.csproj
Normal file
21
Hotel/HotelRestApi/HotelRestApi.csproj
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="6.1.0" />
|
||||||
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\HotelBusinessLogic\HotelBusinessLogic.csproj" />
|
||||||
|
<ProjectReference Include="..\HotelContracts\HotelContracts.csproj" />
|
||||||
|
<ProjectReference Include="..\HotelDataBaseImplement\HotelDataBaseImplement.csproj" />
|
||||||
|
<ProjectReference Include="..\HotelDataModels\HotelDataModels.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
69
Hotel/HotelRestApi/Program.cs
Normal file
69
Hotel/HotelRestApi/Program.cs
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
using HotelBusinessLogic.BusinessLogics;
|
||||||
|
using HotelContracts.BusinessLogicsContracts;
|
||||||
|
using HotelContracts.StoragesContracts;
|
||||||
|
using HotelDataBaseImplement.Implemets;
|
||||||
|
using Microsoft.OpenApi.Models;
|
||||||
|
using HotelBusinessLogic.OfficePackage;
|
||||||
|
using HotelBusinessLogic.OfficePackage.Implements;
|
||||||
|
|
||||||
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
|
builder.Logging.SetMinimumLevel(LogLevel.Trace);
|
||||||
|
builder.Logging.AddLog4Net("log4net.config");
|
||||||
|
|
||||||
|
// Add services to the container.
|
||||||
|
builder.Services.AddTransient<IOrganiserStorage, OrganiserStorage>();
|
||||||
|
builder.Services.AddTransient<IMealPlanStorage, MealPlanStorage>();
|
||||||
|
builder.Services.AddTransient<IMemberStorage, MemberStorage>();
|
||||||
|
builder.Services.AddTransient<IConferenceStorage, ConferenceStorage>();
|
||||||
|
builder.Services.AddTransient<IHeadwaiterStorage, HeadwaiterStorage>();
|
||||||
|
builder.Services.AddTransient<ILunchStorage, LunchStorage>();
|
||||||
|
builder.Services.AddTransient<IRoomStorage, RoomStorage>();
|
||||||
|
builder.Services.AddTransient<IConferenceBookingStorage, ConferenceBookingStorage>();
|
||||||
|
|
||||||
|
builder.Services.AddTransient<IOrganiserLogic, OrganiserLogic>();
|
||||||
|
builder.Services.AddTransient<IMealPlanLogic, MealPlanLogic>();
|
||||||
|
builder.Services.AddTransient<IMemberLogic, MemberLogic>();
|
||||||
|
builder.Services.AddTransient<IConferenceLogic, ConferenceLogic>();
|
||||||
|
builder.Services.AddTransient<IReportOrganiserLogic, ReportLogicOrganiser>();
|
||||||
|
builder.Services.AddTransient<IHeadwaiterLogic, HeadwaiterLogic>();
|
||||||
|
builder.Services.AddTransient<ILunchLogic, LunchLogic>();
|
||||||
|
builder.Services.AddTransient<IRoomLogic, RoomLogic>();
|
||||||
|
builder.Services.AddTransient<IConferenceBookingLogic, ConferenceBookingLogic>();
|
||||||
|
builder.Services.AddTransient<IReportHeadwaiterLogic, ReportLogicHeadwaiter>();
|
||||||
|
|
||||||
|
builder.Services.AddTransient<AbstractSaveToExcelOrganiser, SaveToExcelOrganiser>();
|
||||||
|
builder.Services.AddTransient<AbstractSaveToWordOrganiser, SaveToWordOrganiser>();
|
||||||
|
builder.Services.AddTransient<AbstractSaveToPdfOrganiser, SaveToPdfOrganiser>();
|
||||||
|
builder.Services.AddTransient<AbstractSaveToExcelHeadwaiter, SaveToExcelHeadwaiter>();
|
||||||
|
builder.Services.AddTransient<AbstractSaveToWordHeadwaitre, SaveToWordHeadwaiter>();
|
||||||
|
builder.Services.AddTransient<AbstractSaveToPdfHeadwaiter, SaveToPdfHeadwaiter>();
|
||||||
|
|
||||||
|
builder.Services.AddControllers();
|
||||||
|
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
||||||
|
builder.Services.AddEndpointsApiExplorer();
|
||||||
|
builder.Services.AddSwaggerGen(c =>
|
||||||
|
{
|
||||||
|
c.SwaggerDoc("v1", new OpenApiInfo
|
||||||
|
{
|
||||||
|
Title = "HotelRestApi",
|
||||||
|
Version = "v1"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
var app = builder.Build();
|
||||||
|
|
||||||
|
// Configure the HTTP request pipeline.
|
||||||
|
if (app.Environment.IsDevelopment())
|
||||||
|
{
|
||||||
|
app.UseSwagger();
|
||||||
|
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "HotelRestApi v1"));
|
||||||
|
}
|
||||||
|
|
||||||
|
app.UseHttpsRedirection();
|
||||||
|
|
||||||
|
app.UseAuthorization();
|
||||||
|
|
||||||
|
app.MapControllers();
|
||||||
|
|
||||||
|
app.Run();
|
31
Hotel/HotelRestApi/Properties/launchSettings.json
Normal file
31
Hotel/HotelRestApi/Properties/launchSettings.json
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json.schemastore.org/launchsettings.json",
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:58848",
|
||||||
|
"sslPort": 44323
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"HotelRestApi": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"applicationUrl": "https://localhost:7093;http://localhost:5249",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IIS Express": {
|
||||||
|
"commandName": "IISExpress",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "swagger",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
8
Hotel/HotelRestApi/appsettings.Development.json
Normal file
8
Hotel/HotelRestApi/appsettings.Development.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
Hotel/HotelRestApi/appsettings.json
Normal file
9
Hotel/HotelRestApi/appsettings.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
16
Hotel/HotelRestApi/log4net.config
Normal file
16
Hotel/HotelRestApi/log4net.config
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<log4net>
|
||||||
|
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
|
||||||
|
<file value="c:/temp/HotelRestApi.log" />
|
||||||
|
<appendToFile value="true" />
|
||||||
|
<maximumFileSize value="100KB" />
|
||||||
|
<maxSizeRollBackups value="2" />
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="%date %5level %logger.%method [%line] - MESSAGE: %message%newline %exception" />
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
<root>
|
||||||
|
<level value="TRACE" />
|
||||||
|
<appender-ref ref="RollingFile" />
|
||||||
|
</root>
|
||||||
|
</log4net>
|
Loading…
x
Reference in New Issue
Block a user