internal static void Validate(this StoreBookRequest request) { if (request == null) { throw BookstoreException.InvalidJsonData; } if (string.IsNullOrEmpty(request.Name)) { throw BookstoreException.NameNotNull; } if (string.IsNullOrEmpty(request.Description)) { throw BookstoreException.DescriptionNotNull; } if (string.IsNullOrEmpty(request.Summary)) { throw BookstoreException.SummaryNotNull; } if (request.Name.Length > 100) { throw BookstoreException.InvalidName; } if (request.Description.Length > 1000) { throw BookstoreException.InvalidDescription; } if (request.Summary.Length > 250) { throw BookstoreException.InvalidSummary; } }
public StoreBookResponse StoreBook(StoreBookRequest request) { request.Validate(); using (var connection = _DbConnectionProvider.SafelyInvoke(_logger)) { var book = connection.StoreBook(request); var booksDetails = book.ToDetailsModel(); return(new StoreBookResponse { BookDetails = booksDetails }); } }
internal static Book StoreBook(this IDbConnection con, StoreBookRequest request) { var newBook = new Book { Id = Guid.NewGuid(), Timestamp = DateTime.Now, Title = request.Name, Status = "Available", StatusTimestamp = null, Description = request.Description, Summary = request.Summary }; var newInsert = con.Execute("insert into [dbo].[Book] ([Id],[Timestamp], [Title], [Summary], [Description], [Status], [StatusTimestamp]) values (@Id, @Timestamp, @Title, @Summary, @Description, @Status, @StatusTimestamp)", newBook); if (newInsert > 0) { return(newBook); } else { throw BookstoreException.NotBookStored; } }