public ActionResult SaveChecked(string id, string checkStatus) { var context = new MyBookStoreEntities(); Book book = context.Books.FirstOrDefault(x => x.ISBN == id); if (book != null) { book.Checked = Convert.ToBoolean(checkStatus); } context.SaveChanges(); return(Json("success", JsonRequestBehavior.AllowGet)); }
public ActionResult GetBookByIsbn(string jsonString) { var retval = JsonConvert.DeserializeObject <List <BookisbnModel> >(jsonString); var context = new MyBookStoreEntities(); var model = new List <Book>(); foreach (var id in retval) { //first check if reocrds in database then return from database var result = context.Books.FirstOrDefault(x => x.ISBN == id.ISBN); if (result != null) { var get = new Book(); get.ISBN = result.ISBN; get.ImageUrl = result.ImageUrl; get.Checked = result.Checked; get.BookId = result.BookId; get.ReleaseDate = result.ReleaseDate; get.Titlte = result.Titlte; model.Add(get); } else { var client = new HttpClient(); var url = "http://api.saxo.com/v1/products/products.json?key=08964e27966e4ca99eb0029ac4c4c217&isbn=" + id.ISBN; client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"); var response = client.GetAsync(url).Result; // var resultContent = response.Content.ReadAsStringAsync().Result; if (!response.IsSuccessStatusCode) { var responseMessage = "Response status code does not indicate success: " + (int)response.StatusCode + " (" + response.StatusCode + " )"; //log error return(null); } var responseBody = response.Content.ReadAsStreamAsync().Result; var sr = new StreamReader(responseBody); var mystr = sr.ReadToEnd(); dynamic m = JsonConvert.DeserializeObject(mystr); var books = m.products; // for each books that is coming from api foreach (var book in books) { //to save the bokks record in database var newBook = new Book(); newBook.ISBN = id.ISBN; newBook.BookId = Convert.ToString(book["id"]); newBook.Titlte = Convert.ToString(book["title"]); newBook.ImageUrl = Convert.ToString(book["imageurl"]); newBook.ReleaseDate = book["releasedate"]; //newBook.Publisher = models.Publisher; newBook.Checked = false; newBook.DateCreated = DateTime.Now; newBook.IsDeleted = false; context.Books.Add(newBook); context.SaveChanges(); //add books to outer model to merge books records model.Add(newBook); } } } return(Json(model, JsonRequestBehavior.AllowGet)); }