Beispiel #1
0
        public async Task <ActionResult> Collection()
        {
            checkCookie();
            checkUserID();

            //This searches for a card containing any part of the word that is being searched for e.g. dark
            HttpResponseMessage response = await yugiohApi.GetAsync($"v4/cardinfo.php?");

            if (response.IsSuccessStatusCode)
            {
                var rsp = await response.Content.ReadAsStringAsync();

                rsp = rsp.Substring(1, rsp.Length - 2);
                List <Card> li = JArray.Parse(rsp).ToObject <List <Card> >();
                //converts json to list of cards
                SaleConditionGradeVM uservm = new SaleConditionGradeVM()
                {
                    MyCards = li,
                };
                //returns list of cards to the view
                return(View(uservm));
            }
            SaleConditionGradeVM vm = new SaleConditionGradeVM();

            vm.MyCards = new List <Card>();
            return(View(vm));
        }
Beispiel #2
0
        public async Task <ActionResult> Wishlist()
        {
            checkCookie();
            checkUserID();

            HttpResponseMessage response = await yugiohApi.GetAsync($"v4/cardinfo.php?");

            if (response.IsSuccessStatusCode)
            {
                var rsp = await response.Content.ReadAsStringAsync();

                rsp = rsp.Substring(1, rsp.Length - 2);
                //converts a jarray to list of card
                List <Card>          li     = JArray.Parse(rsp).ToObject <List <Card> >();
                SaleConditionGradeVM uservm = new SaleConditionGradeVM()
                {
                    MyCards = li,
                };
                return(View(uservm));
            }
            SaleConditionGradeVM vm = new SaleConditionGradeVM();

            vm.MyCards = new List <Card>();
            return(View(vm));
        }
Beispiel #3
0
        public async Task <ActionResult> apiPrice2(string dropboxvalue)
        {
            checkCookie();
            HttpResponseMessage resp = await yugiohPriceApi.GetAsync($"get_card_prices/{dropboxvalue}");

            if (resp.IsSuccessStatusCode)
            {
                var rsp = await resp.Content.ReadAsStringAsync();

                var li = JObject.Parse(rsp).ToObject <RootObject>();

                SaleConditionGradeVM salevm = new SaleConditionGradeVM()
                {
                    MyCard  = dropboxvalue,
                    MyDatum = new List <Datum>(),
                    MyCards = new List <Card>(),
                };

                foreach (var i in li.data)
                {
                    if (i.price_data.status == "success")
                    {
                        Card card = new Card()
                        {
                            apiID     = $"{dropboxvalue} {i.print_tag} {i.rarity}",
                            name      = dropboxvalue,
                            rarity    = i.rarity,
                            print_tag = i.print_tag,
                            Cardtype  = db.CardTypes.Find(1),
                            image_url = "http://www.ygo-api.com/api/Images/cards/" + dropboxvalue,
                            average   = i.price_data.data.prices.average,
                            high      = i.price_data.data.prices.high,
                            low       = i.price_data.data.prices.low,
                        };
                        salevm.MyDatum.Add(i);
                        //makes sure not to add the card to the database if it already exists
                        if (db.Cards.Where(x => x.apiID == card.apiID).FirstOrDefault() == null)
                        {
                            salevm.MyCards.Add(card);
                            db.Cards.Add(card);
                        }
                        else
                        {
                            //if the card exists in the database then use the card from the database instead of adding a new card
                            Card colcard = db.Cards.Where(x => x.apiID == card.apiID).FirstOrDefault();
                            salevm.MyCards.Add(colcard);
                        }
                    }
                }
                db.SaveChanges();


                return(View("Collection", salevm));
            }
            SaleConditionGradeVM salev = new SaleConditionGradeVM();

            return(View("Collection", salev));
        }
Beispiel #4
0
        public ActionResult Create([Bind(Include = "ID,Price,ForAuction")] SaleConditionGradeVM sale, string dropboxvalue, string Conditions, string Grades)
        {
            checkCookie();
            if (ModelState.IsValid)
            {
                Card card = db.Cards.Where(x => x.apiID == dropboxvalue).FirstOrDefault();
                if (Grades == "")
                {
                    Grades = "1";
                }
                if (Conditions == "")
                {
                    Conditions = "5";
                }
                Grade     grade     = db.Grades.Find(Convert.ToInt32(Grades));
                Condition condition = db.Conditions.Find(Convert.ToInt32(Conditions));
                User      user      = db.Users.Find(Session["UserID"]);

                Sale MySale = new Sale()
                {
                    Card          = card,
                    Buyer         = null,
                    CardCondition = condition,
                    CardGrade     = grade,
                    ForAuction    = sale.ForAuction,
                    ID            = sale.ID,
                    Seller        = user,
                    Price         = sale.Price,
                    IsSold        = false,
                    UploadDate    = DateTime.Now.Date,
                };

                db.Sales.Add(MySale);
                var li = db.Users.Include("Watchlist").Include("Wishlist").Where(x => x.Wishlist.Any(z => z.ID == card.ID)).ToList();
                foreach (var i in li)
                {
                    Notification notify = new Notification()
                    {
                        Date       = DateTime.Now,
                        Title      = "New Sale",
                        Message    = "A card in your wishlist is now for sale and has been added to your watchlist",
                        Seen       = false,
                        NotifyUser = i,
                    };
                    db.Notifications.Add(notify);
                    i.Watchlist.Add(MySale);
                }
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(sale));
        }
Beispiel #5
0
        public async Task <ActionResult> Create(int?id)
        {
            checkCookie();
            ViewBag.Conditions = new SelectList(db.Conditions, "ID", "CardCondition");
            ViewBag.Grades     = new SelectList(db.Grades, "ID", "Grading");

            //Stops anyone from creating a new sale if they are not logged in as a valid user. ~Joe
            if (Session["userID"] == null)
            {
                return(RedirectToAction("login", "users"));
            }
            if (Session["UserID"].ToString() == "0")
            {
                return(RedirectToAction("login", "users"));
            }

            SaleConditionGradeVM salevm = new SaleConditionGradeVM();

            if (id != null)
            {
                Card card = db.Cards.Find(id);
                if (card != null)
                {
                    salevm.MyCard = card.name;
                }
            }
            HttpResponseMessage response = await yugiohApi.GetAsync($"v4/cardinfo.php?");

            if (response.IsSuccessStatusCode)
            {
                var rsp = await response.Content.ReadAsStringAsync();

                rsp = rsp.Substring(1, rsp.Length - 2);
                List <Card> li  = JArray.Parse(rsp).ToObject <List <Card> >();
                List <Card> li2 = new List <Card>();
                foreach (var i in li)
                {
                    if (li2.Where(x => x.name == i.name).FirstOrDefault() == null)
                    {
                        li2.Add(i);
                    }
                }

                salevm.MyCards = li2;
                salevm.fix     = false;
                return(View(salevm));
            }
            salevm.fix = false;
            return(View(salevm));
        }
Beispiel #6
0
        public async Task <ActionResult> apiPrice(string dropboxvalue)
        {
            //checks if cookies are saved
            checkCookie();

            //calls function from api
            HttpResponseMessage resp = await yugiohPriceApi.GetAsync($"get_card_prices/{dropboxvalue}");

            if (resp.IsSuccessStatusCode)
            {
                var rsp = await resp.Content.ReadAsStringAsync();

                //returns a list of data from our api
                var li = JObject.Parse(rsp).ToObject <RootObject>();

                //viewmodel needed to display all our cards, their pricing data and it's name
                SaleConditionGradeVM salevm = new SaleConditionGradeVM()
                {
                    MyCard  = dropboxvalue,
                    MyDatum = new List <Datum>(),
                    MyCards = new List <Card>(),
                };

                //iterates through list of data and creates a new card adding it to the database if it returns success
                foreach (var i in li.data)
                {
                    //success means it successfully finds pricing for the card in your list
                    if (i.price_data.status == "success")
                    {
                        //creates a new card with all the new properties from the api
                        Card card = new Card()
                        {
                            apiID     = $"{dropboxvalue} {i.print_tag} {i.rarity}",
                            name      = dropboxvalue,
                            rarity    = i.rarity,
                            print_tag = i.print_tag,
                            Cardtype  = db.CardTypes.Find(1),
                            image_url = "http://www.ygo-api.com/api/Images/cards/" + dropboxvalue,
                            average   = i.price_data.data.prices.average,
                            high      = i.price_data.data.prices.high,
                            low       = i.price_data.data.prices.low,
                        };

                        //adds data to a list of data
                        salevm.MyDatum.Add(i);
                        //adds card to a list of cards
                        salevm.MyCards.Add(card);

                        //makes sure the card is not in the database before adding it the database
                        if (db.Cards.Where(x => x.apiID == card.apiID).FirstOrDefault() == null)
                        {
                            db.Cards.Add(card);
                        }
                    }
                }
                //saves the changes
                db.SaveChanges();


                return(View("Wishlist", salevm));
            }
            SaleConditionGradeVM salev = new SaleConditionGradeVM();

            return(View("Wishlist", salev));
        }
Beispiel #7
0
        public async Task <ActionResult> apiPrice(string dropboxvalue)
        {
            checkCookie();
            if (Session["userID"] == null)
            {
                return(RedirectToAction("login", "users"));
            }
            if (Session["UserID"].ToString() == "0")
            {
                return(RedirectToAction("login", "users"));
            }
            ViewBag.Conditions = new SelectList(db.Conditions, "ID", "CardCondition");
            ViewBag.Grades     = new SelectList(db.Grades, "ID", "Grading");

            HttpResponseMessage resp = await yugiohPriceApi.GetAsync($"get_card_prices/{dropboxvalue}");

            if (resp.IsSuccessStatusCode)
            {
                var rsp = await resp.Content.ReadAsStringAsync();

                var li = JObject.Parse(rsp).ToObject <RootObject>();

                SaleConditionGradeVM salevm = new SaleConditionGradeVM()
                {
                    fix     = true,
                    MyCard  = dropboxvalue,
                    MyDatum = new List <Datum>(),
                    MyCard1 = "",
                    MyCards = new List <Card>(),
                };

                foreach (var i in li.data)
                {
                    if (i.price_data.status == "success")
                    {
                        Card card = new Card()
                        {
                            apiID     = $"{dropboxvalue} {i.print_tag} {i.rarity}",
                            name      = dropboxvalue,
                            rarity    = i.rarity,
                            print_tag = i.print_tag,
                            Cardtype  = db.CardTypes.Find(1),
                            image_url = "http://www.ygo-api.com/api/Images/cards/" + dropboxvalue,
                            average   = i.price_data.data.prices.average,
                            high      = i.price_data.data.prices.high,
                            low       = i.price_data.data.prices.low,
                        };
                        if (db.Cards.Where(x => x.name == dropboxvalue).FirstOrDefault() == null)
                        {
                            db.Cards.Add(card);
                        }
                        salevm.MyDatum.Add(i);
                        salevm.MyCards.Add(card);
                    }
                }
                db.SaveChanges();
                Card cd = db.Cards.Where(x => x.name == dropboxvalue).FirstOrDefault();
                salevm.MyCard1 = cd.name;


                return(View("Create", salevm));
            }
            SaleConditionGradeVM salev = new SaleConditionGradeVM();

            return(View("Create", salev));
        }