/// <summary> /// Liste amaçlı Load /// </summary> /// <returns></returns> public static bool Load(ciFramework frameW, ref csGames ret) { ret = new csGames(); XDocument docGames = null; if (!King.Utils.LoadDb(frameW, ref docGames, "Games")) return false; foreach (XElement lcNode in docGames.Element("games").Descendants("game")) { var lcRec = new csGameList { Key = Convert.ToInt16(lcNode.Attribute("key").Value), Date = Convert.ToString(lcNode.Attribute("date").Value) }; if (lcNode.Attribute("played") != null) lcRec.PlayedTurn = Convert.ToByte(lcNode.Attribute("played").Value); if (lcNode.Attribute("king") != null) lcRec.IsKing = lcNode.Attribute("king").Value=="1"; ret.Add(lcRec); if (lcRec.PlayedTurn == 20 || lcRec.IsKing) { lcRec.Ups = lcNode.Attribute("ups").Value; lcRec.Downs = lcNode.Attribute("downs").Value; } } return true; }
public static bool Add(ciFramework frameW, csGameList game) { if (game.Players == null || game.Players.Count != 4) { return frameW.ErrorAdd("4 oyuncu olmalı"); } // var unks = new HashSet<int>(); foreach (var player in game.Players) { if (player.Key == 0) { return frameW.ErrorAdd("Bütün oyuncular seçilmeli"); } unks.Add(player.Key); } if (unks.Count != 4) return frameW.ErrorAdd("Bir Oyuncu 2 defa seçilemez"); csGames games = null; if (!Load(frameW, ref games)) return false; game.Key = Convert.ToInt16(games.Count + 1); XDocument docGames = null; if (!King.Utils.LoadDb(frameW, ref docGames, "Games")) return false; var nodeGames = docGames.Element("games"); var nodeGame = new XElement("game"); nodeGames.Add(nodeGame); game.Date = DateTime.Now.ToString("dd/MM/yy HH:mm"); nodeGame.Add(new XAttribute("key", game.Key)); nodeGame.Add(new XAttribute("date", game.Date)); var nodePlayers = new XElement("players"); nodeGame.Add(nodePlayers); foreach (var player in game.Players) { var nodePlayer = new XElement("player"); nodePlayer.Add(new XAttribute("key", player.Key)); //turnleri şimdi açmaya gerek yok(zaten yok da) nodePlayers.Add(nodePlayer); } King.Utils.SaveDb(docGames, "Games"); return true; }