Exemplo n.º 1
0
        public async Task <IActionResult> Edit(int id, ReserveModel model)
        {
            Result result = await _reserveService.UpdateReserve(id, model);

            if (result.Success)
            {
                return(RedirectToAction("Details", new { id }));
            }

            if (result.ErrorCode == ErrorCode.UniquenessError)
            {
                ModelState[nameof(model.Name)].Errors.Add("Such a record already exists");
                return(View("Edit", model));
            }

            return(RedirectToAction("Error", "Error", new { result.ErrorCode, modelName = nameof(Reserve) }));
        }
Exemplo n.º 2
0
        public HttpResponseMessage PutReserve(int reserveId)
        {
            #region Kontrol
            var reserve = reserveService.GetReserve(reserveId);
            if (reserve == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, new { message = "Kiralama bulunamadı!" }));
            }
            //Başkasının kitabını güncellemesini engeller.
            var reserveObj = reserveService.GetBooksUserStillHave(User.Identity.GetUserId()).FirstOrDefault(e => e.ReserveId == reserveId);
            if (reserveObj == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, new { message = "Kiralama bulunamadı!" }));
            }
            #endregion
            //Kitabın kopyasının durumunu Available yap.
            var bookId = reserveObj.BookIds;
            bookId.BookStatus = BookStatus.Available;
            bookIdService.UpdateBookId(bookId);
            //Kitapbın reserve durumuna geri dönüş tarihi ekle
            reserveObj.UserReturnedDate = DateTime.Now;
            reserveService.UpdateReserve(reserveObj);

            try
            {
                reserveService.SaveChanges();
                var viewModel = Mapper.Map <Reserve, ReserveViewModel>(reserveObj);
                return(Request.CreateResponse <IReserveViewModel>(System.Net.HttpStatusCode.Created, viewModel));
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  new { exeption = ex.Message, innerException = ex.InnerException.Message }));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  new { exeption = ex.Message }));
                }
            }
        }