Ejemplo n.º 1
0
 public IActionResult GetCardsByCategoryId([FromForm] CardCategories _category)
 {
     try
     {
         Logger.Info("GetCardsByCategoryId method is called....");
         var _cardsCategoryList = _saveData.GetCardsByCategoryId(_category.categorieID);
         return(Ok(_cardsCategoryList));
     }
     catch (Exception ex)
     {
         Logger.Error("Error has occured in GetCardsByCategoryId method " + ex.Message);
         throw ex;
     }
 }
        public IActionResult DeleteCategory([FromForm] CardCategories icons)
        {
            var data = _saveData.DeleteCategory(icons.categorieID);

            //deleting image into local folder
            string[] files = Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot" + "/uploadimgs/categoryIcons/"));

            foreach (string file in files)
            {
                var FileName = Path.GetFileNameWithoutExtension(file);
                var fileId   = FileName.Split("_");
                if (fileId[0] == icons.categorieID.ToString())
                {
                    System.IO.File.Delete(file);
                }
            }
            var _listofcategories = _saveData.GetAllCategories();

            return(PartialView("_categoryList", _listofcategories));
        }
Ejemplo n.º 3
0
        public string GetCardColor(int cardId)
        {
            string cardColor = "";
            Card   card      = Cards.Where(x => x.CardId == cardId).FirstOrDefault();
            List <CardCategories> cardCategories = CardCategories.Where(x => x.CardId == card.CardId).ToList();

            foreach (CardCategories t in cardCategories)
            {
                switch (t.Categories.Name)
                {
                case "Argent":
                    cardColor = "Argent";
                    break;

                case "Fire":
                    cardColor = "Fire";
                    break;

                case "Water":
                    cardColor = "Water";
                    break;

                case "Air":
                    cardColor = "Air";
                    break;

                case "Light":
                    cardColor = "Light";
                    break;

                case "Dark":
                    cardColor = "Dark";
                    break;

                default:
                    break;
                }
            }
            return(cardColor);
        }
        public async Task <ActionResult> createORUpdate([FromForm] IFormCollection form, [FromForm] CardCategories icons)
        {
            var data = _saveData.createORUpdateCategory(icons.categorieID, icons.categorieName, icons.categoryFileName);

            foreach (var file in form.Files)
            {
                string[] files = Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot" + "/uploadimgs/categoryIcons/"));
                foreach (string imgfile in files)
                {
                    var FileName = Path.GetFileNameWithoutExtension(imgfile);
                    var fileId   = FileName.Split("_");
                    if (fileId[0] == icons.categorieID.ToString())
                    {
                        System.IO.File.Delete(imgfile);
                    }
                }
                var iconfile = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot" + "/uploadimgs/categoryIcons/", data + "_" + file.FileName);
                using (var stream = new FileStream(iconfile, FileMode.Create))
                {
                    await file.CopyToAsync(stream);
                }
            }
            var _listofcategories = _saveData.GetAllCategories();

            return(PartialView("_categoryList", _listofcategories));
        }
Ejemplo n.º 5
0
        public IActionResult GetCategoryById([FromForm] CardCategories category)
        {
            var data = _saveData.GetCategoryById(category.categorieID);

            return(Ok(data));
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> GetCardDetail()
        {
            IList <Card> cards = _context.Cards.ToList();

            // Loop through all cards in database
            foreach (Card c in cards)
            {
                HttpClient client = new HttpClient();

                try
                {
                    // Get card url
                    string cardUrl = c.Url;

                    // Access argent saga website
                    using (var response = await client.GetAsync(cardUrl))
                    {
                        using (var content = response.Content)
                        {
                            // read aregent sage website card detail page in non-blocking way
                            var result = await content.ReadAsStringAsync();

                            var document = new HtmlDocument();
                            document.LoadHtml(result);

                            // Get current card information
                            Card card = _context.Cards.Where(x => x.Name == c.Name).FirstOrDefault();


                            // *** Card Categories ***

                            // Get card categories from argent saaga website
                            var cardCategories = document.DocumentNode.SelectNodes("/html/body/div[3]/div/div/section[2]/div/div/div[2]/div/div/div[4]/div/div/span[1]/span[2]");
                            // Select category text
                            string nodes = cardCategories[0].InnerText;
                            // Clean Category
                            char[] charsToTrim = { ' ' };
                            // Remove whitespace
                            string[] nodeList = nodes.Split(",").Select(x => x.Trim(charsToTrim)).ToArray();


                            // Loop through each categories
                            foreach (string nodeCategory in nodeList)
                            {
                                // Ensure category exists
                                if (_context.Categories.Any(o => o.Name == nodeCategory))
                                {
                                    // if  category already exists, do nothing
                                }
                                else
                                {
                                    // Create category entry
                                    Categories category = new Categories();
                                    category.Name = nodeCategory;

                                    // add category to database
                                    _context.Add(category);

                                    await _context.SaveChangesAsync();
                                }


                                // Check if card category entry exists
                                if (_context.CardCategories.Any(o => o.Categories.Name == nodeCategory && o.Card.Name == c.Name))
                                {
                                    // Card Category entry exists, do nothing
                                }
                                else
                                {
                                    CardCategories cardCategory = new CardCategories();
                                    cardCategory.CardId     = c.CardId;
                                    cardCategory.CategoryId = _context.Categories.Where(x => x.Name == nodeCategory).FirstOrDefault().CategoryId;

                                    // add card category to database
                                    _context.Add(cardCategory);

                                    await _context.SaveChangesAsync();
                                }
                            }


                            // *** Card Tags ***


                            // Get card tag from argent saaga website
                            var cardTags = document.DocumentNode.SelectNodes("/html/body/div[3]/div/div/section[2]/div/div/div[2]/div/div/div[4]/div/div/span[2]/span[2]");
                            // Select category text
                            string tagNodes = cardTags[0].InnerText;
                            // Remove whitespace
                            string[] tagNodeList = tagNodes.Split(",").Select(x => x.Trim(charsToTrim)).ToArray();

                            // Loop through all tags from agrent saga website for this card
                            foreach (string nodeTag in tagNodeList)
                            {
                                // Ensure tag exists
                                if (_context.Tags.Any(o => o.Name == nodeTag))
                                {
                                    // if  tag already exists, do nothing
                                }
                                else
                                {
                                    // Create tag entry
                                    Tags tag = new Tags();
                                    tag.Name = nodeTag;

                                    // add tag to database
                                    _context.Add(tag);

                                    await _context.SaveChangesAsync();
                                }


                                // Check if card tag entry exists
                                if (_context.CardTags.Any(o => o.Tag.Name == nodeTag && o.Card.Name == c.Name))
                                {
                                    // Card tag entry exists, do nothing
                                }
                                else
                                {
                                    CardTags cardTag = new CardTags();
                                    cardTag.CardId = c.CardId;
                                    cardTag.TagId  = _context.Tags.Where(x => x.Name == nodeTag).FirstOrDefault().TagId;

                                    // add card category to database
                                    _context.Add(cardTag);

                                    await _context.SaveChangesAsync();
                                }
                            }

                            // *** Card Effects ***

                            // Get card tag from argent saaga website
                            var cardEffects = document.DocumentNode.SelectNodes("/html/body/div[3]/div/div/section[2]/div/div/div[2]/div/div/div[1]/div");

                            List <String> effectNodes = new List <String>();

                            for (int i = 0; i < 3; i++)
                            {
                                try
                                {
                                    effectNodes.Add(cardEffects[i].InnerText);
                                }
                                catch
                                {
                                }
                            }


                            foreach (string t in effectNodes)
                            {
                                if (t != null)
                                {
                                    // Check if card tag entry exists
                                    if (_context.CardEffects.Any(o => o.CardId == c.CardId && o.Text == t))
                                    {
                                        // Card tag entry exists, do nothing
                                    }
                                    else
                                    {
                                        CardEffects cardEffect = new CardEffects();
                                        cardEffect.CardId = c.CardId;
                                        cardEffect.Text   = t;

                                        // add card category to database
                                        _context.Add(cardEffect);
                                        try
                                        {
                                            await _context.SaveChangesAsync();
                                        }
                                        catch
                                        {
                                            _context.Remove(cardEffect);
                                        }
                                    }
                                }
                                else
                                {
                                }
                            }



                            // *** Card Image ***
                            var cardImage = document.DocumentNode.SelectNodes("/html/body/div[3]/div/div/section[2]/div/div/div[1]/div/div/div[2]/div/div/figure/div/a/img").FirstOrDefault();
                            // Get card img link
                            var src = cardImage.Attributes["src"].Value;
                            // Create file location
                            string downloadLocation = _hostingEnvironment.ContentRootPath + "/wwwroot/img/cards/" + c.CardId + ".jpg";


                            // Check if file does not exist
                            if (!System.IO.File.Exists(downloadLocation))
                            {
                                var wc = new System.Net.WebClient();
                                wc.DownloadFile(src, downloadLocation);
                            }
                            else
                            {
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                }
            }


            await _context.SaveChangesAsync();


            return(View());
        }