public ActionResult RemoveFromFavourite(string charId) { try { string userName = User.Identity.Name; if (db.tblUserFavouriteCharacters.Any(x => x.UserName.Equals(userName) && x.FavCharId.ToString() == charId)) { db.tblUserFavouriteCharacters.Remove(db.tblUserFavouriteCharacters.Where(x => x.UserName.Equals(userName) && x.FavCharId.ToString() == charId).First()); db.SaveChanges(); } List <ComicCharacter> myFavChars = new List <ComicCharacter>(); List <int> myFavCharDBEntries = db.tblUserFavouriteCharacters.Where(x => x.UserName.Equals(User.Identity.Name)).Select(x => x.FavCharId).ToList(); foreach (var item in myFavCharDBEntries) { ComicCharacter comicChar = SuperheroAPIHandler.GetCharacterById(item.ToString()); if (comicChar != null) { myFavChars.Add(comicChar); } } ViewData["FromUserFavouriteCharacters"] = true; return(View("UserFavouriteCharacters", myFavChars)); } catch (Exception) { return(Json(new { Result = false })); } }
/// <summary> /// Get Comic Character by Id /// </summary> /// <param name="charId"></param> /// <returns></returns> public static ComicCharacter GetCharacterById(string charId) { ComicCharacter comicCharacter = new ComicCharacter(); try { // Check if the requested character is already downloaded if (DownloadedComicCharacters != null && DownloadedComicCharacters.Any(x => x.id.Equals(charId))) { comicCharacter = DownloadedComicCharacters.Where(x => x.id.Equals(charId)).First(); return(comicCharacter); } // If not already downloaded then download and return a copy using (var client = new System.Net.Http.HttpClient()) { //Passing service base url client.BaseAddress = new Uri(Baseurl); client.DefaultRequestHeaders.Clear(); //Define request data format client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); //Sending request to find web api REST service resource GetAllEmployees using HttpClient System.Net.Http.HttpResponseMessage Res = client.GetAsync(charId).Result; //Checking the response is successful or not which is sent using HttpClient if (Res.IsSuccessStatusCode) { //Storing the response details recieved from web api var ComicCharacterResponse = Res.Content.ReadAsStringAsync().Result; //Deserializing the response recieved from web api and storing into the Employee list comicCharacter = Newtonsoft.Json.JsonConvert.DeserializeObject <ComicCharacter>(ComicCharacterResponse); // Check if the character images is available, if not then replace it with default image if (comicCharacter != null && comicCharacter.image != null && !IsFileExistOnRemoteServer(comicCharacter.image.url)) { comicCharacter.image.url = DefaultThumbnailUrl; } // Add the downloaded character in downloaded list if (comicCharacter.id != null) { DownloadedComicCharacters.Add(comicCharacter); } } } } catch (Exception ex) { Console.WriteLine("Error calling API: " + ex.Message); } //returning the result return(comicCharacter); }
private async Task CreateComicCharacter(IList <Character> characters, Comic comic) { IList <ComicCharacter> comicCharacters = new List <ComicCharacter>(); foreach (var item in characters) { ComicCharacter comicCharacterItem = new ComicCharacter(); comicCharacterItem.Character = item; comicCharacterItem.Comic = comic; comicCharacters.Add(comicCharacterItem); } await _unitOfWOrk.ComicCharacterRepository.Add(comicCharacters); }
/// <summary> /// Get User Favourite Characters /// </summary> /// <returns></returns> public ActionResult UserFavouriteCharacters() { List <ComicCharacter> myFavChars = new List <ComicCharacter>(); List <int> myFavCharDBEntries = db.tblUserFavouriteCharacters.Where(x => x.UserName.Equals(User.Identity.Name)).Select(x => x.FavCharId).ToList(); foreach (var charId in myFavCharDBEntries) { ComicCharacter comicChar = SuperheroAPIHandler.GetCharacterById(charId.ToString()); if (comicChar != null) { myFavChars.Add(comicChar); } } ViewData["FromUserFavouriteCharacters"] = true; return(View(myFavChars)); }
public JsonResult LoadNextRandomCharactersToCarousel(int offset, int size) { List <ComicCharacter> comicChars = new List <ComicCharacter>(); Random rnd = new Random(); int[] generatedRandomCharIds = SuperheroAPIHandler.FavouriteCharacters.Skip(offset).Take(size).ToArray(); foreach (var ComicChar in generatedRandomCharIds) { ComicCharacter comicChar = SuperheroAPIHandler.GetCharacterById(ComicChar.ToString()); if (comicChar != null) { comicChars.Add(comicChar); } } if (comicChars.Any()) { string modelString = RenderRazorViewToString("_CarouselRandomChars", comicChars); return(Json(new { ModelString = modelString, ModelCount = SuperheroAPIHandler.FavouriteCharacters.Count() })); } return(Json(comicChars)); }
public void InsertComics(int id) { dynamic jResult = JObject.Parse(RestServices.ComicsGet(id).Content); int total = jResult.data.total; int comics = _context.ComicCharacter.Count(e => e.CharacterId == id); int n = 0; if (comics < total) { while (n < total) { //Objeto dinamico recebendo o conteúdo retornado do GET dynamic jResult2 = JObject.Parse(RestServices.ComicsGet(100, n, id).Content); //Extraindo apenas o conjunto de dados que importam pra minha aplicação var res = jResult2.data.results; //Iterando nos dados e inserindo no banco foreach (var x in res) { //Se o id já existir no banco, não será inserido if (_context.Comic.Find((int)x.id) == null) { //(string)x.description, (DateTime)x.modified, (string)x.thumbnail.path + '.' + (string)x.thumbnail.extension DateTime date = DateTime.Now; foreach (var t in x.dates) { if (t.type == "onsaleDate") { bool z = DateTime.TryParse((string)t.date, out date); if (z) { break; } else { date = DateTime.Now; } } } Comic d = new Comic((int)x.id, (string)x.title, (string)x.format, (int)x.pageCount, (string)x.series.name, (DateTime)date, (string)x.thumbnail.path + '.' + (string)x.thumbnail.extension, (string)x.description); _context.Add(d); _context.SaveChanges(); var c = x.characters.items; foreach (var h in c) { string s = h.resourceURI; int last = s.LastIndexOf('/'); s = s.Substring(last + 1); ComicCharacter e = new ComicCharacter((int)x.id, int.Parse(s)); _context.Add(e); _context.SaveChanges(); } } } n += 100; } } }
private void btnCreateVillain_Click(object sender, EventArgs e) { factory = new CreateVillain(tbVillainName.Text, tbVillainPowers.Text, tbVillainMotive.Text, tbVillainRival.Text); character = factory.createCharacter(); tbHeroesAndVillains.Text += character.getSummary() + "\n \n"; }
private void btnCreateHero_Click(object sender, EventArgs e) { factory = new CreateHero(tbHeroName.Text, tbHeroPowers.Text, tbHeroCity.Text, tbHeroOrigin.Text); character = factory.createCharacter(); tbHeroesAndVillains.Text += character.getSummary() + "\n \n"; }