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); }
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); } }
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); }
//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); } }
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()); } }
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")); }
public static void SaveUser(User dbUser) { using (var db = new CardGame_v2Entities()) { db.Entry(dbUser).State = EntityState.Modified; db.SaveChanges(); } }
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); } }
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(); } }
//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); }
public static List <Deck> GetAllDecks() { List <Deck> ReturnList = null; using (var db = new CardGame_v2Entities()) { ReturnList = db.AllDecks.ToList(); } return(ReturnList); }
public static List <User> GetAllUser() { List <User> ReturnList = null; using (var db = new CardGame_v2Entities()) { ReturnList = db.AllUsers.ToList(); } return(ReturnList); }
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); }
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(); } }
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); }
public static int GetNumDecks() { int numDecks = -1; using (var db = new CardGame_v2Entities()) { numDecks = db.AllDecks.Count(); } Writer.LogInfo("GetNumDecks " + numDecks); return(numDecks); }
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(); } }
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); }
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); }
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); }
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); } }
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); }
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"); }