public List <Ipuzzle> Get(int id, string connectionID, Boolean isReset = false) { List <Ipuzzle> list = null; // Şişme ihtimali var. Sürekli Cmd+R mesela. List <Ipuzzle> cloneList = null; List <Ipuzzle> randomList = null; //Enson gönderilen lİST if (isReset) { cache.Clear(); } if (!cache.ContainsKey(connectionID)) { using (PuzzleDataContext dbContext = new PuzzleDataContext()) { //Her Seferinde Random Almak lazımdı. Ama Hem Main hem de Control aynı Random List'i almalı. Random rnd = new Random(); list = dbContext.FrozenPuzzle.Where(fr => fr.RefCategoryID == id) .OrderBy <Ipuzzle, int>((item) => rnd.Next()).Take(6).ToList <Ipuzzle>(); cloneList = CloneList <Ipuzzle>(list.OrderBy <Ipuzzle, int>((item) => rnd.Next()).ToList()); cloneList.ForEach(f => f.ID = CloneID(f.ID)); //UniqID yapmaz isek kartları ayırt edemeyiz list.AddRange(cloneList); randomList = list.OrderBy <Ipuzzle, int>((item) => rnd.Next()).Take(12).ToList <Ipuzzle>(); cache.Add(connectionID, randomList); } } else { randomList = cache[connectionID]; cache.Remove(connectionID); } return(randomList); }
public List <PuzzleCategory> Get() { using (PuzzleDataContext dbContext = new PuzzleDataContext()) { return(dbContext.PuzzleCategory.ToList()); } }