Compare commits
2 Commits
9fd446fe04
...
f7bc7af9e3
| Author | SHA1 | Date | |
|---|---|---|---|
| f7bc7af9e3 | |||
| b85fdc777a |
@@ -3,7 +3,6 @@ using System.Text.Json;
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.RateLimiting;
|
using Microsoft.AspNetCore.RateLimiting;
|
||||||
using ModeusSchedule.Abstractions;
|
using ModeusSchedule.Abstractions;
|
||||||
using ModeusSchedule.Abstractions.DTO;
|
|
||||||
using ModeusSchedule.Abstractions.DTO.Requests;
|
using ModeusSchedule.Abstractions.DTO.Requests;
|
||||||
using SfeduSchedule.Services;
|
using SfeduSchedule.Services;
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.RateLimiting;
|
using Microsoft.AspNetCore.RateLimiting;
|
||||||
using ModeusSchedule.Abstractions.DTO;
|
|
||||||
using ModeusSchedule.Abstractions.DTO.Requests;
|
using ModeusSchedule.Abstractions.DTO.Requests;
|
||||||
using SfeduSchedule.DTO.Responses;
|
using SfeduSchedule.DTO.Responses;
|
||||||
using SfeduSchedule.Services;
|
using SfeduSchedule.Services;
|
||||||
@@ -47,7 +45,7 @@ public class ScheduleController(ModeusService modeusService, ModeusEmployeeServi
|
|||||||
/// <response code="503">Сервис сотрудников не инициализирован</response>
|
/// <response code="503">Сервис сотрудников не инициализирован</response>
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
[Route("searchemployee")]
|
[Route("searchemployee")]
|
||||||
public async Task<IActionResult> SearchEmployees([Required][MinLength(1)] string fullname)
|
public async Task<IActionResult> SearchEmployees(string fullname = "")
|
||||||
{
|
{
|
||||||
if (!modeusEmployeeService.IsInitialized())
|
if (!modeusEmployeeService.IsInitialized())
|
||||||
return StatusCode(503, "Сервис сотрудников не инициализирован, попробуйте позже.");
|
return StatusCode(503, "Сервис сотрудников не инициализирован, попробуйте позже.");
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
using ModeusSchedule.Abstractions;
|
|
||||||
using Quartz;
|
using Quartz;
|
||||||
using SfeduSchedule.Services;
|
using SfeduSchedule.Services;
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ using Microsoft.AspNetCore.HttpOverrides;
|
|||||||
using Microsoft.AspNetCore.Mvc.ApplicationParts;
|
using Microsoft.AspNetCore.Mvc.ApplicationParts;
|
||||||
using Microsoft.Identity.Web;
|
using Microsoft.Identity.Web;
|
||||||
using Microsoft.OpenApi.Models;
|
using Microsoft.OpenApi.Models;
|
||||||
using ModeusSchedule.Abstractions;
|
|
||||||
using Prometheus;
|
using Prometheus;
|
||||||
using Quartz;
|
using Quartz;
|
||||||
using Quartz.Listener;
|
using Quartz.Listener;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using Quartz;
|
using Quartz;
|
||||||
using SfeduSchedule.Jobs;
|
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
|
||||||
namespace SfeduSchedule.Services;
|
namespace SfeduSchedule.Services;
|
||||||
@@ -7,15 +6,22 @@ namespace SfeduSchedule.Services;
|
|||||||
public class ModeusEmployeeService(ISchedulerFactory schedulerFactory)
|
public class ModeusEmployeeService(ISchedulerFactory schedulerFactory)
|
||||||
: IHostedService
|
: IHostedService
|
||||||
{
|
{
|
||||||
private Dictionary<string, (string, List<string>)> _employees = [];
|
private Dictionary<string, (string, List<string>)> _employees = []; //
|
||||||
private Task? _backgroundTask;
|
private Task? _backgroundTask;
|
||||||
private CancellationTokenSource? _cts;
|
private CancellationTokenSource? _cts;
|
||||||
private readonly string _employeesFilePath = Path.Combine(Path.Combine(AppContext.BaseDirectory, AppConsts.DataFolderName), AppConsts.EmployeesFileName);
|
private readonly string _employeesFilePath = Path.Combine(Path.Combine(AppContext.BaseDirectory, AppConsts.DataFolderName), AppConsts.EmployeesFileName);
|
||||||
|
|
||||||
public async Task<Dictionary<string, (string, List<string>)>> GetEmployees(string fullname, int size = 10)
|
public async Task<Dictionary<string, (string, List<string>)>> GetEmployees(string fullname, int size = 10)
|
||||||
{
|
{
|
||||||
|
if (string.IsNullOrEmpty(fullname))
|
||||||
|
return _employees
|
||||||
|
.OrderBy(e => e.Key)
|
||||||
|
.Take(size)
|
||||||
|
.ToDictionary(e => e.Key, e => e.Value);
|
||||||
|
|
||||||
return _employees
|
return _employees
|
||||||
.Where(e => e.Key.Contains(fullname, StringComparison.OrdinalIgnoreCase))
|
.Where(e => e.Key.Contains(fullname, StringComparison.OrdinalIgnoreCase))
|
||||||
|
.OrderBy(e => e.Key)
|
||||||
.Take(size)
|
.Take(size)
|
||||||
.ToDictionary(e => e.Key, e => e.Value);
|
.ToDictionary(e => e.Key, e => e.Value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Net.Http.Json;
|
|
||||||
using Microsoft.Net.Http.Headers;
|
using Microsoft.Net.Http.Headers;
|
||||||
using ModeusSchedule.Abstractions;
|
using ModeusSchedule.Abstractions;
|
||||||
using ModeusSchedule.Abstractions.DTO;
|
using ModeusSchedule.Abstractions.DTO;
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ using ModeusSchedule.Abstractions;
|
|||||||
using ModeusSchedule.Abstractions.DTO;
|
using ModeusSchedule.Abstractions.DTO;
|
||||||
using ModeusSchedule.Abstractions.DTO.Requests;
|
using ModeusSchedule.Abstractions.DTO.Requests;
|
||||||
using SfeduSchedule.DTO.Requests;
|
using SfeduSchedule.DTO.Requests;
|
||||||
using SfeduSchedule.DTO.Responses;
|
|
||||||
using SfeduSchedule.Logging;
|
using SfeduSchedule.Logging;
|
||||||
|
|
||||||
namespace SfeduSchedule.Services;
|
namespace SfeduSchedule.Services;
|
||||||
|
|||||||
Reference in New Issue
Block a user