/
Egor1k
/
CompClubAPI
Обзор
Документация
Войти
/
Egor1k
/
CompClubAPI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Controllers/PaymentController.cs
96 строк
3 KB
Dima Oshuev
поменял структуру проекта для сборки в docker
27 мар 2025, 16:32
27 мар 2025, 16:32
5c3d032
Код
Авторство
О чём код?
using CompClubAPI.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; namespace CompClubAPI.Controllers { [Route("api/[controller]")] [ApiController] public class PaymentController : ControllerBase { private readonly ApplicationDbContext _context; public PaymentController(ApplicationDbContext context) { this._context = context; } [HttpGet("get-all-payments/{userId:int}")] public async Task<IActionResult> GetAllPaymentsByUserId(long userId) { var payments = await _context.Payments.FirstOrDefaultAsync(p => p.AccountId == userId); if (payments == null) { return NotFound("Чеки по оплате не найдены"); } return Ok(payments); } [HttpGet("get-payment/{sessionId}")] public async Task<IActionResult> GetPayment(int sessionId) { var payment = await _context.Payments .Include(a => a.Account) .Include(ps => ps.Session) .FirstOrDefaultAsync(p => p.SessionId == sessionId); if (payment == null) { return NotFound("Такого чека нет"); } return Ok(payment); } [HttpPost("add-payment")] public async Task<IActionResult> AddPayment(Payment payment) { var account = await _context.Accounts.FirstOrDefaultAsync(a => a.UserId == payment.AccountId); if (payment == null || account == null) { return BadRequest("Некоректные данные оплаты"); } await _context.Payments.AddAsync(payment); account.Balance = (int?)((account.Balance ?? 0) - (payment.Amount)); await _context.SaveChangesAsync(); return Ok(); } /*[HttpPost("add-payment/{playerSessionId}")] public async Task<IActionResult> AddPayment(int playerSessionId) { var existingPayment = await _context.Payments.FirstOrDefaultAsync(p => p.SessionId == playerSessionId); if (existingPayment != null) { return BadRequest("Такая сессия уже существует"); } Payment payment = new Payment { PaymentDate = DateTime.Now, PaymentMethod = "Наличная оплата" }; await _context.Payments.AddAsync(payment); await _context.SaveChangesAsync(); return Ok(); }*/ [HttpGet("check-payment/{sessionId}")] public async Task<IActionResult> CheckPayment(int sessionId) { bool isPaid = await _context.Payments.AnyAsync(p => p.SessionId == sessionId); return Ok(new {isPaid}); } } }