예제 #1
0
        public IActionResult AddBooking([FromBody] BookDTO model)
        {
            model.DateStart      = model.DateStart.ToLocalTime();
            model.DateFinish     = model.DateFinish.ToLocalTime();
            model.ExtraDateStart = model.ExtraDateStart.ToLocalTime();

            if (model.DateStart > model.DateFinish)
            {
                return(new StatusCodeResult(500));
            }
            if (model.DateStart < DateTime.Now)
            {
                return(new StatusCodeResult(503));
            }
            if (!CheckDate(model.CarId, model.DateStart, model.DateFinish))
            {
                return(new StatusCodeResult(501));
            }
            if (model.SalesId != 0 && !CheckSale(model.DateStart, model.DateFinish, model.SalesId, model.CarId))
            {
                return(new StatusCodeResult(300));
            }
            var k    = (model.DateFinish - model.DateStart).Days;
            var book = new Book()
            {
                DateStart      = model.DateStart,
                ExtraDateStart = model.ExtraDateStart,
                DateFinish     = model.DateFinish,
                CreateDate     = DateTime.Now,
                CarId          = model.CarId,
                UserId         = model.UserId,
                Place          = model.Place,
                Price          = model.Price,
                Sum            = model.Sum == 0?model.Price * (model.DateFinish - model.DateStart).Days:model.Sum,
                SalesId        = model.SalesId
            };

            DbContext.Books.Add(book);
            DbContext.SaveChanges();

            return(new JsonResult(
                       book.Adapt <BookDTO>(),
                       new JsonSerializerSettings()
            {
                Formatting = Formatting.Indented
            }));
        }
        public async Task <bool> UpdateAsync(Book item, CancellationToken cancellationToken = default)
        {
            using (var context = new BookLibraryContext(this._optionsBuilder.Options))
            {
                var book = await context.Books.SingleOrDefaultAsync(o => o.Id == item.Id, cancellationToken);

                if (book == null)
                {
                    return(false);
                }

                item.Adapt(book);

                await context.SaveChangesAsync(cancellationToken);

                return(true);
            }
        }