This is the code we wrote in class. It does not include the code generated by the ADO Data Entities
here is the interface and data contract
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "ISampleBookReviewService" in both code and config file together. [ServiceContract] public interface ISampleBookReviewService { [OperationContract] List<string> GetAuthors(); [OperationContract] List<BookLite> GetBooks(string authorName); } [DataContract] public class BookLite { [DataMember] public string Title { set; get; } [DataMember] public string ISBN { set; get; } [DataMember] public string AuthorName { set; get; } [DataMember] public DateTime EntryDate { set; get; } }
Here is the service code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "SampleBookReviewService" in code, svc and config file together. public class SampleBookReviewService : ISampleBookReviewService { BookReviewDbEntities db = new BookReviewDbEntities(); public List<string> GetAuthors() { var auth = from a in db.Authors orderby a.AuthorName select new { a.AuthorName }; List<string> authors = new List<string>(); foreach (var au in auth) { authors.Add(au.AuthorName.ToString()); } return authors; } public List<BookLite> GetBooks(string authorName) { var bks = from b in db.Books from a in b.Authors orderby b.BookTitle where a.AuthorName.Equals(authorName) select new { b.BookTitle, a.AuthorName, b.BookISBN, b.BookEntryDate }; List<BookLite> books = new List<BookLite>(); foreach (var bk in bks) { BookLite bl = new BookLite(); bl.Title = bk.BookTitle; bl.AuthorName = bk.AuthorName; bl.ISBN = bk.BookISBN; bl.EntryDate = bk.BookEntryDate; books.Add(bl); } return books; } }
No comments:
Post a Comment