Eliseev E.E. LabWork06_Hard #12

Closed
ElEgEv wants to merge 26 commits from LabWork06_Hard into LabWork05_Hard
9 changed files with 20 additions and 124 deletions
Showing only changes of commit 90e721c135 - Show all commits

View File

@ -8,15 +8,15 @@ namespace BlacksmithWorkshopRestApi.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class ClientController : Controller
public class ImplementerController : Controller
{
private readonly ILogger _logger;
private readonly IOrderLogic _order;
private readonly IClientLogic _logic;
private readonly IImplementerLogic _logic;
public ClientController(IOrderLogic order, IClientLogic logic, ILogger<ClientController> logger)
public ImplementerController(IOrderLogic order, IImplementerLogic logic, ILogger<ImplementerController> logger)
{
_logger = logger;
_order = order;
@ -24,13 +24,13 @@ namespace BlacksmithWorkshopRestApi.Controllers
}
[HttpGet]
public ClientViewModel? Login(string login, string password)
public ImplementerViewModel? Login(string login, string password)
{
try
{
return _logic.ReadElement(new ClientSearchModel
return _logic.ReadElement(new ImplementerSearchModel
{
ClientFIO = login,
ImplementerFIO = login,
Password = password
});
}
@ -61,13 +61,13 @@ namespace BlacksmithWorkshopRestApi.Controllers
}
[HttpGet]
public OrderViewModel? GetClientOrder(int implementerId)
public OrderViewModel? GetImplementerOrder(int implementerId)
{
try
{
return _order.ReadElement(new OrderSearchModel
{
ClientId = implementerId
ImplementerId = implementerId
});
}
catch (Exception ex)

View File

@ -14,12 +14,12 @@ builder.Logging.AddLog4Net("log4net.config");
builder.Services.AddTransient<IClientStorage, ClientStorage>();
builder.Services.AddTransient<IOrderStorage, OrderStorage>();
builder.Services.AddTransient<IManufactureStorage, ManufactureStorage>();
builder.Services.AddTransient<IClientStorage, ClientStorage>();
builder.Services.AddTransient<IImplementerStorage, ImplementerStorage>();
builder.Services.AddTransient<IOrderLogic, OrderLogic>();
builder.Services.AddTransient<IClientLogic, ClientLogic>();
builder.Services.AddTransient<IManufactureLogic, ManufactureLogic>();
builder.Services.AddTransient<IClientLogic, ClientLogic>();
builder.Services.AddTransient<IImplementerLogic, ImplementerLogic>();
builder.Services.AddControllers();

View File

@ -1,33 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.SqlImplementer" Version="5.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
<PackageReference Include="Microsoft.ReportingServices.ReportViewerControl.Winforms" Version="140.340.80" />
<PackageReference Include="Microsoft.SqlServer.Types" Version="160.1000.6" />
<PackageReference Include="NLog.Extensions.Logging" Version="5.2.2" />
<PackageReference Include="ReportViewerCore.WinForms" Version="15.1.17" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BlacksmithWorkshopBusinessLogic\BlacksmithWorkshopBusinessLogic.csproj" />
<ProjectReference Include="..\BlacksmithWorkshopContracts\BlacksmithWorkshopContracts.csproj" />
<ProjectReference Include="..\BlacksmithWorkshopDatabaseImplement\BlacksmithWorkshopDatabaseImplement.csproj" />
<ProjectReference Include="..\BlacksmithWorkshopFileImplement\BlacksmithWorkshopFileImplement.csproj" />
<ProjectReference Include="..\BlacksmithWorkshopListImplement\BlacksmithWorkshopListImplement.csproj" />
</ItemGroup>
</Project>

View File

@ -26,14 +26,14 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
_rnd = new Random(1000);
}
public void DoWork(IClientLogic implementerLogic, IOrderLogic orderLogic)
public void DoWork(IImplementerLogic implementerLogic, IOrderLogic orderLogic)
{
_orderLogic = orderLogic;
var implementers = implementerLogic.ReadList(null);
if (implementers == null)
{
_logger.LogWarning("DoWork. Clients is null");
_logger.LogWarning("DoWork. Implementers is null");
return;
}
@ -56,7 +56,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
}
// Иммитация работы исполнителя
private async Task WorkerWorkAsync(ClientViewModel implementer, List<OrderViewModel> orders)
private async Task WorkerWorkAsync(ImplementerViewModel implementer, List<OrderViewModel> orders)
{
if (_orderLogic == null || implementer == null)
{
@ -77,7 +77,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
_orderLogic.TakeOrderInWork(new OrderBindingModel
{
Id = order.Id,
ClientId = implementer.Id
ImplementerId = implementer.Id
});
// делаем работу
@ -108,7 +108,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
}
//Ищем заказ, которые уже в работе (вдруг исполнителя прервали)
private async Task RunOrderInWork(ClientViewModel implementer)
private async Task RunOrderInWork(ImplementerViewModel implementer)
{
if (_orderLogic == null || implementer == null)
{
@ -119,7 +119,7 @@ namespace BlacksmithWorkshopBusinessLogic.BusinessLogic
{
var runOrder = await Task.Run(() => _orderLogic.ReadElement(new OrderSearchModel
{
ClientId = implementer.Id,
ImplementerId = implementer.Id,
Status = OrderStatus.Выполняется
}));

View File

@ -1,22 +0,0 @@
using BlacksmithWorkshopDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BlacksmithWorkshopContracts.BindingModels
{
public class ImplementerBindingModel : IImplementerModel
{
public int Id { get; set; }
public string ImplementerFIO { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
public int WorkExperience { get; set; }
public int Qualification { get; set; }
}
}

View File

@ -1,23 +0,0 @@
using BlacksmithWorkshopContracts.BindingModels;
using BlacksmithWorkshopContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BlacksmithWorkshopContracts.BusinessLogicsContracts
{
public interface IImplementerLogic
{
List<ImplementerViewModel>? ReadList(ImplementerSearchModel? model);
ImplementerViewModel? ReadElement(ImplementerSearchModel model);
bool Create(ImplementerBindingModel model);
bool Update(ImplementerBindingModel model);
bool Delete(ImplementerBindingModel model);
}
}

View File

@ -10,6 +10,6 @@ namespace BlacksmithWorkshopContracts.BusinessLogicsContracts
public interface IWorkProcess
{
// Запуск работ
void DoWork(IClientLogic implementerLogic, IOrderLogic orderLogic);
void DoWork(IImplementerLogic implementerLogic, IOrderLogic orderLogic);
}
}

View File

@ -1,27 +0,0 @@
using BlacksmithWorkshopDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BlacksmithWorkshopContracts.ViewModels
{
public class ImplementerViewModel : IImplementerModel
{
public int Id { get; set; }
[DisplayName("ФИО исполнителя")]
public string ImplementerFIO { get; set; } = string.Empty;
[DisplayName("Пароль")]
public string Password { get; set; } = string.Empty;
[DisplayName("Стаж")]
public int WorkExperience { get; set; }
[DisplayName("Квалификация")]
public int Qualification { get; set; }
}
}

View File

@ -1,10 +1,11 @@
using System;
using BlacksmithWorkshopDataModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BlacksmithWorkshopDataModels.Models
namespace BlacksmithWorkshopDatabaseImplement.Models
{
//модель исполнителя
public interface IImplementerModel : IId