public IActionResult Insert([FromBody] LibraryBookStatusApiModel model) { int result = 0; var libraryBookStatusCode = ""; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (model != null) { int?retVal = _libraryBookStatusWebApiManager.GetCountOfBookCurrentLent(model?.LibraryUser.LibraryUserCode); if (retVal != null && retVal.Value > 4) { ModelState.AddModelError(string.Empty, "Maximum number of books exceeded"); return(BadRequest(ModelState)); } LibraryBookApiModel libraryBookApiModel = _libraryBookWebApiManager.GetLibraryBookByLibraryBookCode(model.LibraryBook?.LibraryBookCode); if (libraryBookApiModel == null) { ModelState.AddModelError(string.Empty, "Library book not found"); return(BadRequest(ModelState)); } if (_libraryBookStatusWebApiManager.HasMoreThanOneBookWithSameISBN(libraryBookApiModel.ISBN, model?.LibraryUser.LibraryUserCode)) { ModelState.AddModelError(string.Empty, "Library User already has that book"); return(BadRequest(ModelState)); } model.CreatedBy = GetCurrentUser(); model.DateCreated = DateTime.Now; model.ModifiedBy = GetCurrentUser(); model.DateModified = DateTime.Now; result = _libraryBookStatusWebApiManager.InsertLibraryBookStatus(model, out libraryBookStatusCode); } switch (result) { case 1: return(new ContentResult { Content = libraryBookStatusCode, ContentType = "text/plain", StatusCode = 200 }); default: ModelState.AddModelError(string.Empty, "Failed to insert record"); break; } return(BadRequest(ModelState)); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "insertlibrarybookstatus")] HttpRequest req, ILogger log) { try { var result = _tokenProvider.ValidateToken(req); if (result.Status == AccessTokenStatus.Valid) { log.LogInformation($"Request received for {result.Principal.Identity.Name}."); } else { return(new UnauthorizedResult()); } string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); LibraryBookStatusApiModel model = JsonConvert.DeserializeObject <LibraryBookStatusApiModel>(requestBody); if (model == null) { return(new BadRequestObjectResult("Please pass LibraryBookApiModel in the request body")); } int retVal = 0; string libraryBookCode = string.Empty; if (model != null) { int?returnVal = _libraryBookStatusWebApiManager.GetCountOfBookCurrentLent(model?.LibraryUser.LibraryUserCode); if (returnVal != null && returnVal.Value > 4) { return(new BadRequestObjectResult("Maximum number of books exceeded")); } LibraryBookApiModel libraryBookApiModel = _libraryBookWebApiManager.GetLibraryBookByLibraryBookCode(model.LibraryBook?.LibraryBookCode); if (libraryBookApiModel == null) { return(new BadRequestObjectResult("Library book not found")); } if (_libraryBookStatusWebApiManager.HasMoreThanOneBookWithSameISBN(libraryBookApiModel.ISBN, model?.LibraryUser.LibraryUserCode)) { return(new BadRequestObjectResult("Library User already has that book")); } model.CreatedBy = _tokenProvider.User; model.DateCreated = DateTime.Now; model.ModifiedBy = _tokenProvider.User; model.DateModified = DateTime.Now; retVal = _libraryBookStatusWebApiManager.InsertLibraryBookStatus(model, out libraryBookCode); } if (retVal < 1) { return(new BadRequestObjectResult("Failed to insert record")); } return((ActionResult) new OkObjectResult(new ContentResult { Content = libraryBookCode, ContentType = "text/plain", StatusCode = 200 })); } catch (Exception ex) { log.LogError($"Caught exception: {ex.Message}"); return(new BadRequestObjectResult(ex.Message)); } }