/
nicteres
/
Lab1
Обзор
Документация
Войти
/
nicteres
/
Lab1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
123
API_Lab_1/src/Services/RequestService.cs
88 строк
3 KB
Matthew
Добавьте файлы проекта.
18 окт 2025, 18:03
18 окт 2025, 18:03
79e10ad
Код
Авторство
О чём код?
using API_Lab_1.src.Interface; using API_Lab_1.src.Models; using Microsoft.EntityFrameworkCore; namespace API_Lab_1.src.Services { public class RequestService(AppDbContext _appDb) : IRequestService { public async Task<string?> CreateRequestAsync(RequestCreateModel requestCreate) { string id = Guid.NewGuid().ToString(); if (!await _appDb.Requests.AnyAsync(u => u.Request_id == id)) id = Guid.NewGuid().ToString(); if (!Enum.IsDefined(typeof(RequestType), requestCreate.Request_Type)) { return null; } var request = new RequestModel { Request_id = id, Data = requestCreate.Data, Request_Type = requestCreate.Request_Type, }; await _appDb.AddAsync(request); await _appDb.SaveChangesAsync(); return id; throw new NotImplementedException(); } public async Task<string?> DeleteRequestAsync(RequestDeletionModel request_in) { if (await _appDb.Requests.AnyAsync(u => u.Id == request_in.Id || u.Request_id == request_in.Request_id)) { var request = await _appDb.Requests.FirstOrDefaultAsync(u => u.Id == request_in.Id || u.Request_id == request_in.Request_id); _appDb.Requests.Remove(request); await _appDb.SaveChangesAsync(); return "Ok"; } return null; throw new NotImplementedException(); } public async Task<string?> CheckRequestAsync(string request_id, string? data) { if (await _appDb.Requests.AnyAsync(u => u.Request_id == request_id)) { var req = await _appDb.Requests.FirstOrDefaultAsync(u => u.Request_id == request_id); if (req.usesAllowed == 0) { return req.Data; } req.usesAllowed = req.usesAllowed - 1; req.Data = data; _appDb.Requests.Update(req); await _appDb.SaveChangesAsync(); return "0"; } return null; } public async Task<string> AddRequestDataAsync(string request_id, string data) { if (request_id == null) return null; var req = _appDb.Requests.FirstOrDefault(u => u.Request_id == request_id); if (req == null) return null; req.Data = data; _appDb.Requests.Update(req); await _appDb.SaveChangesAsync(); return req.Request_id; } } }