Создать запрос LINQ, чтобы проверить, существуют ли данные в базе данных? - PullRequest
0 голосов
/ 01 апреля 2020

Я использую ядро ​​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;}




    }
}
...