예제 #1
0
        public void TestCheckoutCustomerDoesntExist()
        {
            CheckoutRequest request = new CheckoutRequest()
            {
                BookIdentifier     = 1,
                CustomerIdentifier = 1
            };


            try {
                myLogic.CheckoutABook(request);
            } catch (Exception e)
            {
                Assert.IsTrue(e != null);
                Assert.IsTrue(e.Message.Contains("The customer does not exist in this system"));
            }
        }
 public ActionResult Checkout([FromBody] CheckoutRequest checkoutRequest)
 {
     if (ModelState.IsValid)
     {
         try
         {
             bool success = _libraryLogic.CheckoutABook(checkoutRequest);
             if (success)
             {
                 return(Ok(new Response <bool>
                 {
                     Status = "200",
                     ResponseMessage = "Book Checked out successfully.",
                     ResponseData = success
                 }));
             }
             else
             {
                 return(BadRequest(new Response <bool>
                 {
                     Status = "500",
                     ResponseMessage = "Book Checkout did not succeed. Please try again later",
                     ResponseData = success
                 }));
             }
         }
         catch (Exception e)
         {
             return(BadRequest(new Response <string>
             {
                 Status = "500",
                 ResponseMessage = "Book Checkout did not succeed. Please try again later",
                 ResponseData = e.Message
             }));
         }
     }
     else
     {
         return(BadRequest(new Response <bool>
         {
             Status = "400",
             ResponseMessage = string.Join(" | ", ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage)),
             ResponseData = false
         }));
     }
 }