public static Card GetCard(int id)
        {
            Card card = null;

            if (id < 1)
            {
                throw new ArgumentException("invalid card id", nameof(id));
            }

            try
            {
                using (var context = new CardGame_v2Entities())
                {
                    card = context.AllCards.FirstOrDefault(x => x.ID == id);
                }
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                {
                    throw ex;
                }
            }

            return(card);
        }
Example #2
0
 public static List <Deck> GetAllDecksByEmail(string email)
 {
     try
     {
         using (var db = new CardGame_v2Entities())
         {
             var dbUser = db.AllUsers.Where(u => u.Mail == email).FirstOrDefault();
             if (dbUser == null)
             {
                 throw new Exception("UserDoesNotExist");
             }
             var dbDecks = dbUser.AllDecks.ToList();
             if (dbDecks == null)
             {
                 throw new Exception("NoDecksFound");
             }
             return(dbDecks);
         }
     }
     catch (Exception e)
     {
         Writer.LogError(e);
         return(null);
     }
 }
Example #3
0
        public static List <Card> GetAllCardsByEmail(string email)
        {
            var cardList = new List <Card>();

            try
            {
                using (var db = new CardGame_v2Entities())
                {
                    var dbUser = db.AllUsers.Where(u => u.Mail == email).FirstOrDefault();
                    if (dbUser == null)
                    {
                        throw new Exception("UserDoesNotExist");
                    }
                    var dbCardCollection = dbUser.AllUserCardCollections.ToList();
                    if (dbCardCollection == null)
                    {
                        throw new Exception("CardCollectionNotFound");
                    }
                    foreach (var cc in dbCardCollection)
                    {
                        for (int i = 0; i < cc.NumberOfCards; i++)
                        {
                            cardList.Add(cc.Card);
                        }
                    }
                    return(cardList);
                }
            }
            catch (Exception e)
            {
                Writer.LogError(e);
                return(null);
            }
        }
        public static bool saveRatinginDB(int ratingSubmit, int?star, string emailVomUser)
        {
            UserRanking userranking = new UserRanking();

            try
            {
                using (var db = new CardGame_v2Entities())
                {
                    userranking.pack_id = ratingSubmit;
                    userranking.rating  = (short)star;

                    User aktuellerUser = DAL.Logic.UserManager.GetUserByEmail(emailVomUser);

                    userranking.user_id = aktuellerUser.ID;

                    db.UserRanking.Add(userranking);
                    db.SaveChanges();
                }
            }
            catch (Exception)
            {
                return(false);
            }


            return(true);
        }
Example #5
0
        //TODO Methode für Aktivierungslink
        //private static void SendActivationCodeToUser(string email, string guid)
        //{
        //    string host = "smtp.gmail.com";
        //    int port = 587;
        //    string betreff = "Ihr Clonestone Aktivierungscode";
        //    string nachricht = "Bitte klicken Sie auf folgenden Link um Ihren" +
        //        "Clonestone Account zu Aktivieren";
        //    string clonestoneURL = "http://*****:*****@gmail.com";


        //    SmtpClient smtp = new SmtpClient();

        //    MailMessage mm = new MailMessage(sender, email);

        //    mm.Body = nachricht + link; //Nachricht der Emal
        //    mm.Subject = betreff; //Betreff der Email

        //    NetworkCredential nc = new NetworkCredential(sender, "123user!");
        //    //Login und Passwort füer SMTP Server in ctor

        //    smtp.Host = host;
        //    smtp.Port = port;
        //    smtp.UseDefaultCredentials = true;
        //    smtp.Credentials = nc;
        //    smtp.EnableSsl = true;

        //    smtp.Send(mm);

        //}


        public static bool AuthUser(string email, string password)
        {
            bool ergebnis = false;

            try
            {
                using (var db = new CardGame_v2Entities())
                {
                    User user = db.AllUsers.FirstOrDefault(u => u.Mail == email);
                    if (user == null)
                    {
                        throw new Exception("UserDoesNotExist");
                    }

                    var pwGleich = user.Password.SequenceEqual(Helper.GenerateHash(password + user.UserSalt));
                    if (user.Active == true && pwGleich == true)
                    {
                        ergebnis = true;
                    }
                    return(ergebnis);
                }
            }
            catch (Exception e)
            {
                Writer.LogError(e);
                return(false);
            }
        }
Example #6
0
        public static List <Card> GetCardsInDeck(int idDeck)
        {
            List <Card> cardsInDeck = null;

            try
            {
                using (var context = new CardGame_v2Entities())
                {
                    Deck deck = context.AllDecks
                                .Include(x => x.AllDeckCards)
                                .Include(x => x.AllDeckCards.Select(y => y.Card))
                                .Include(x => x.AllDeckCards.Select(y => y.Card.CardType))
                                .FirstOrDefault(x => x.ID == idDeck);

                    if (deck != null)
                    {
                        cardsInDeck = deck.AllDeckCards.Select(x => x.Card).ToList();
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                Debugger.Break();
            }

            return(cardsInDeck);
        }
        public static double GetPackRatingAverageById(int id)
        {
            double ratingResult  = 0;
            double countedRating = 0;

            try
            {
                using (var db = new CardGame_v2Entities())
                {
                    var result = db.UserRanking.Where(u => u.pack_id == id).ToList();

                    double number = result.Count();

                    foreach (var item in result)
                    {
                        countedRating = countedRating + item.rating ?? -1;
                    }
                    ratingResult = countedRating / number;
                    ratingResult = Math.Round(ratingResult, 1);
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(ratingResult);
        }
 public static CardPack LiefereCardPack(int?id)
 {
     using (CardGame_v2Entities db = new CardGame_v2Entities())
     {
         return(db.AllCardPacks.Find(id));
     }
 }
        public static BuyResult ExecuteDiamantenOrder(int idPerson, int idDiaPack)
        {
            BuyResult result = BuyResult.Success;

            using (var db = new CardGame_v2Entities())
            {
                VirtualPurchase diaOrder = new VirtualPurchase();

                diaOrder.ID_DiamantenPack = idDiaPack;
                diaOrder.ID_User          = idPerson;
                diaOrder.PurchaseDate     = DateTime.Now;
                diaOrder.NumberOfPacks    = 1;
                db.AllVirtualPurchases.Add(diaOrder);
                db.SaveChanges();


                User          user = db.AllUsers.FirstOrDefault(x => x.ID == idPerson);
                DiamantenPack pack = db.AllDiamantenPacks.FirstOrDefault(x => x.ID == idDiaPack);

                if (user.AmountMoney < pack.PackPrice)
                {
                    result = BuyResult.NotEnoughMoney;
                }
                else
                {
                    /// ziehe Preis vom pack beim User ab!
                    user.AmountMoney += (int)pack.Diamanten;
                    db.SaveChanges();
                }
            }
            return(result);
        }
 public static List <CardPack> AlleMeineCardpacks()
 {
     using (CardGame_v2Entities db = new CardGame_v2Entities())
     {
         return(db.AllCardPacks.ToList());
     }
 }
Example #11
0
        public ActionResult ActivateUser(string id)
        {
            try
            {
                //1. In DB nach entsprechenden String suchen
                //2. Wenn gefunden, den zugehörigen Benutzer aktivieren,
                //3. GUID aus DB loeschen
                using (var db = new CardGame_v2Entities())
                {
                    //1
                    var dbUser = db.AllUsers.Where(u => u.activationCode.ToString() == id).FirstOrDefault();

                    if (dbUser == null)
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                    //2
                    dbUser.Active = true;
                    //3
                    dbUser.activationCode = null;
                    //4
                    db.Entry(dbUser).State = EntityState.Modified;
                    db.SaveChanges();
                }
            }
            catch
            {
                return(RedirectToAction("Index", "Home"));
            }
            return(RedirectToAction("Login"));
        }
Example #12
0
 public static void SaveUser(User dbUser)
 {
     using (var db = new CardGame_v2Entities())
     {
         db.Entry(dbUser).State = EntityState.Modified;
         db.SaveChanges();
     }
 }
Example #13
0
 public static byte[] getCurrentPassword(string email)
 {
     using (var db = new CardGame_v2Entities())
     {
         var result = db.AllUsers.Where(x => x.Mail == email).FirstOrDefault();
         return(result.Password);
     }
 }
Example #14
0
 public static void setNewPasswort(string email, byte[] newpassword)
 {
     using (var db = new CardGame_v2Entities())
     {
         var result = db.AllUsers.Where(x => x.Mail == email).FirstOrDefault();
         result.Password = newpassword;
         db.SaveChanges();
     }
 }
Example #15
0
        //Theoretisch überflüssig
        public static string GetCardTypeById(int?id)
        {
            string TypeName = "n/a";

            using (var db = new CardGame_v2Entities())
            {
                TypeName = db.AllCardTypes.Find(id).Name;
            }
            return(TypeName);
        }
Example #16
0
        public static List <Deck> GetAllDecks()
        {
            List <Deck> ReturnList = null;

            using (var db = new CardGame_v2Entities())
            {
                ReturnList = db.AllDecks.ToList();
            }
            return(ReturnList);
        }
Example #17
0
        public static List <User> GetAllUser()
        {
            List <User> ReturnList = null;

            using (var db = new CardGame_v2Entities())
            {
                ReturnList = db.AllUsers.ToList();
            }
            return(ReturnList);
        }
Example #18
0
        public static bool Register(string mail, string password, string firstName, string lastName, string gamerTag /*, string street, int streetnumber, string PLZ, string city*/)
        {
            try
            {
                using (var db = new CardGame_v2Entities())
                {
                    if (db.AllUsers.Any(n => n.Mail == mail))
                    {
                        throw new Exception("UserAlreadyExists");
                    }
                    //Salt erzeugen
                    string salt = Helper.GenerateSalt();

                    //Passwort Hashen
                    byte[] hashedAndSaltedPassword = Helper.GenerateHash(password + salt);

                    List <Deck> decks = new List <Deck>();


                    for (int i = 1; i <= 3; i++)
                    {
                        Deck d = new Deck();
                        d.Name = (gamerTag + "'s" + " Deck " + i).ToString();
                        decks.Add(d);
                    }


                    User newUser = new User()
                    {
                        Password  = hashedAndSaltedPassword,
                        UserSalt  = salt,
                        FirstName = firstName,
                        LastName  = lastName,
                        Mail      = mail,
                        GamerTag  = gamerTag,
                        //Street = street,
                        //Streetnumber = streetnumber,
                        //Post_Code = PLZ,
                        //City = city,
                        AmountMoney = 300,
                        ID_UserRole = 2,
                        AllDecks    = decks
                    };

                    db.AllUsers.Add(newUser);
                    db.SaveChanges();
                }
            }
            catch (Exception e)
            {
                Writer.LogError(e);
            }

            return(true);
        }
Example #19
0
        public static List <Card> GetAllCards()
        {
            List <Card> ReturnList = null;

            using (var db = new CardGame_v2Entities())
            {
                //ReturnList = db.tblCard.Include(t => t.CardType).ToList();
                ReturnList = db.AllCards.ToList();
            }
            return(ReturnList);
        }
        public static void AddDiamondsToUser(string userEmail, int diamonds)
        {
            using (CardGame_v2Entities cont = new CardGame_v2Entities())
            {
                User u = cont.AllUsers.Where(x => x.Mail == userEmail).FirstOrDefault();

                u.AmountMoney = u.AmountMoney + diamonds;

                cont.SaveChanges();
            }
        }
Example #21
0
        public static List <User> GetAllUser()
        {
            List <User> ReturnList = null;

            using (var db = new CardGame_v2Entities())
            {
                // TODO - Include
                // .Include(t => t.tabelle) um einen Join zu machen !
                ReturnList = db.AllUsers.ToList();
            }
            return(ReturnList);
        }
Example #22
0
        public static int GetNumDecks()
        {
            int numDecks = -1;

            using (var db = new CardGame_v2Entities())
            {
                numDecks = db.AllDecks.Count();
            }

            Writer.LogInfo("GetNumDecks " + numDecks);

            return(numDecks);
        }
Example #23
0
        public static string getGamerTagByEmail(string email)
        {
            string gamerTag = "";

            using (var db = new CardGame_v2Entities())
            {
                User dbUser = db.AllUsers.Where(u => u.Mail == email).FirstOrDefault();

                gamerTag = dbUser.GamerTag;

                return(gamerTag);
            }
        }
        public static void UpdateCardPackAktiv(int idCardpack, bool?aktiv)
        {
            using (var db = new CardGame_v2Entities())
            {
                //suchen cardpack anhand der id
                CardPack gefundenesPaket = db.AllCardPacks.Find(idCardpack);

                gefundenesPaket.Aktiv = aktiv;

                //db.Entry(gefundenesPaket).State = EntityState.Modified;

                db.SaveChanges();
            }
        }
Example #25
0
        public static string GetRoleByEmail(string email)
        {
            string role = "";

            using (var db = new CardGame_v2Entities())
            {
                User dbUser = db.AllUsers.Where(u => u.Mail == email).FirstOrDefault();
                if (dbUser == null)
                {
                    throw new Exception("UserDoesNotExist");
                }
                role = dbUser.UserRole.Name;
            }
            return(role);
        }
Example #26
0
        public static int GetNumDecksOwnedByEmail(string email)
        {
            int numDecks = -1;

            using (var db = new CardGame_v2Entities())
            {
                User dbUser = db.AllUsers.Where(u => u.Mail == email).FirstOrDefault();
                if (dbUser == null)
                {
                    throw new Exception("UserDoesNotExist");
                }
                numDecks = dbUser.AllDecks.Count;
            }
            return(numDecks);
        }
Example #27
0
        public static Card GetCardById(int id)
        {
            Card card = null;

            using (var db = new CardGame_v2Entities())
            {
                //Extention Method
                card = db.AllCards.Where(c => c.ID == id).FirstOrDefault();

                //Klassisch LINQ
                //card = (from c in db.tblCard
                //        where c.idcard == id
                //        select c).FirstOrDefault();
            }
            return(card);
        }
Example #28
0
        public static bool AddCardsToCollectionByEmail(string email, List <Card> cards)
        {
            var dbUser = new User();

            try
            {
                using (var db = new CardGame_v2Entities())
                {
                    dbUser = db.AllUsers.Where(u => u.Mail == email).FirstOrDefault();
                    if (dbUser == null)
                    {
                        throw new Exception("UserDoesNotExist");
                    }

                    foreach (var c in cards)
                    {
                        var userCC = (from coll in db.AllUserCardCollections
                                      where coll.ID_Card == c.ID && coll.ID_User == dbUser.ID
                                      select coll)
                                     .FirstOrDefault();

                        if (userCC == null) //User does not own card, add to collection
                        {
                            var cc = new UserCardCollection();
                            cc.Card          = db.AllCards.Find(c.ID);
                            cc.User          = dbUser;
                            cc.NumberOfCards = 1;
                            dbUser.AllUserCardCollections.Add(cc);
                            db.SaveChanges();
                        }
                        else //User owns card, add to num
                        {
                            userCC.NumberOfCards  += 1;
                            db.Entry(userCC).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                    }
                    //db.SaveChanges();
                    return(true);
                }
            }
            catch (Exception e)
            {
                Writer.LogError(e);
                return(false);
            }
        }
Example #29
0
        public static List <Card> GetCardsForDeck(int idDeck)
        {
            List <Card> deckCards = null;

            try
            {
                using (var context = new CardGame_v2Entities())
                {
                    Deck deck = context.AllDecks.FirstOrDefault(x => x.ID == idDeck);

                    if (deck != null)
                    {
                        User currentUser = deck.User;
                        /// ermittle alle userCardCollections für diesen User
                        List <UserCardCollection> userCardCollections = currentUser.AllUserCardCollections.ToList();

                        foreach (var ucc in userCardCollections)
                        {
                            /// Schau nach ob diese karte auch bereits in diesem Deck ist
                            DeckCard deckCard = context.AllDeckCards.FirstOrDefault(x => x.ID_Card == ucc.ID_Card && x.ID_Deck == idDeck);

                            /// wenn diese karte bereits im gewünschten Deck verwendet wird
                            if (deckCard != null)
                            {
                                ucc.NumberOfCards -= deckCard.NumberOfCards; // dann verringere die Anzahl
                            }
                        }

                        /// gib nur die Karten zurück die man noch verwenden kann
                        deckCards = userCardCollections.Where(x => x.NumberOfCards > 0).Select(x => x.Card).ToList();

                        /// lade nachträglich alle zugeordneten CardType Objekte
                        /// alternativ: bereits beim Zugriff via context auf Datenbank
                        /// mit Include alle notwendigen Elemente raus laden
                        deckCards.ForEach(x => context.Entry(x).Reference("CardType").Query().Load());
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                Debugger.Break();
            }

            return(deckCards);
        }
Example #30
0
        static CardManager()
        {
            CardTypes = new Dictionary <int, string>();
            List <CardType> cardTypeList = null;

            using (var db = new CardGame_v2Entities())
            {
                cardTypeList = db.AllCardTypes.ToList();
            }

            foreach (var type in cardTypeList)
            {
                CardTypes.Add(type.ID, type.Name);
            }

            CardTypes.Add(0, "n/a");
        }