Я использую ядро ASP. NET и тестирую его с помощью Postman WebAPI.
Я пытаюсь обработать запрос LINQ, который не позволяет пользователю публиковать те же данные. если заголовок и запрос содержат строку «Надежда» и «что-то» в базе данных. Как создать запрос, чтобы, когда пользователь публикует одну и ту же строку с одинаковыми атрибутами, он отображал неверный запрос?
Как Я непосредственно делаю это в контроллере. Вам нужен репозиторий?
Ниже приведен мой контроллер, и все, что мне нужно, - это иметь возможность запрашивать атрибут title и запрашивать его, чтобы только пользователь вводил другую строку. в базе данных. Я проверил это с почтальоном, и он показывает 200OK, который должен показывать плохой запрос при вводе той же строки в почтальоне
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
using BookingApp.API.Data;
using System.Threading.Tasks;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using BookingApp.API.Models;
using Microsoft.EntityFrameworkCore;
namespace BookingApp.API.Controllers
{
[Authorize]
[Route("api/[controller]")]
[ApiController]
public class BookController : ControllerBase
{
private readonly DataContext _context;
public BookController(DataContext context)
{
_context = context;
}
[AllowAnonymous]
[HttpGet]
public async Task<IActionResult> GetBooking()
{
var Booking = await _context.bookings.Include(c => c.Customer).ToListAsync();
return Ok(Booking);
}
[AllowAnonymous]
[HttpGet("{id}")]
public async Task<IActionResult> GetBooking(int id)
{
var Booking = await _context.bookings.FirstOrDefaultAsync(x => x.Id == id);
return Ok(Booking);
}
[AllowAnonymous]
[HttpPost]
public async Task<IActionResult> PostBook(Booking bookings, string Title)
{
if(ModelState.IsValid)
{
var SearchData = await _context.bookings.Where(x => x.Title == Title).SingleOrDefaultAsync();
if (SearchData != null)
return BadRequest("bad request");
}
_context.bookings.Add(bookings);
_context.SaveChanges();
return Ok();
}
// PUT api/values/5
// [HttpPut("{id}")]
[AllowAnonymous]
[HttpPut("{Id}")]
public Booking PutBooking(int Id, [FromBody] Booking bookings )
{
var bookingsInDb = _context.bookings.SingleOrDefault(b => b.Id == Id);
bookingsInDb.Title = bookings.Title;
bookingsInDb.Date = bookings.Date;
bookingsInDb.Request = bookings.Request;
_context.SaveChanges();
return bookingsInDb;
}
//
//
// }
{
}
}
}
Это моя модель бронирования
using System;
namespace BookingApp.API.Models
{
public class Booking
{
public int Id { get; set; }
public string Title { get; set; }
public DateTime Date { get; set; }
public string Request { get; set; }
public int NoPeople { get; set; }
public Customer Customer { get; set;}
}
}