예제 #1
0
 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;
     }
 }
예제 #2
0
 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
         });
     }
 }
예제 #3
0
        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;
            }
        }