public void LoadCardLayout(String dir) { configFileDir = Path.Combine(Environment.CurrentDirectory, dir); if (File.Exists(configFileDir)) { StreamReader reader = new StreamReader(configFileDir); String nextLine = ""; while ((nextLine = reader.ReadLine()) != null) { LoadingCard readCard = JsonConvert.DeserializeObject <LoadingCard>(nextLine); int zindex = 0; if (readCard.userID == "Alex" && STATICS.ALEX_ACTIVE || readCard.userID == "Ben" && STATICS.BEN_ACTIVE || readCard.userID == "Chris" && STATICS.CHRIS_ACTIVE || readCard.userID == "Danny" && STATICS.DANNY_ACTIVE) { News_Card myCard = new News_Card(loader.MainWindow.Controlers.CardControler, readCard.userID); myCard.UUID = readCard.cardID; myCard.Owner = readCard.userID; My_News news = new My_News(); news.Author = readCard.author; news.Title = readCard.title; news.Content = readCard.content; myCard.News = news; myCard.NewsID = readCard.newsID; System.Windows.Media.Color color = System.Windows.Media.Colors.White; switch (readCard.userID) { case "Alex": color = STATICS.USER_COLOR_CODE[0]; break; case "Ben": color = STATICS.USER_COLOR_CODE[1]; break; case "Chris": color = STATICS.USER_COLOR_CODE[2]; break; case "Danny": color = STATICS.USER_COLOR_CODE[3]; break; } myCard.InitializeCard(color, new Point(readCard.position[0], readCard.position[1]), readCard.rotate, 1, zindex++); Card_List.AddCard(myCard); loader.MainWindow.Controlers.UserControler.ReceiveCard(readCard.userID, myCard); loader.MainWindow.CardLayer.AddCard(myCard); Canvas.SetZIndex(myCard, myCard.ZIndex); } } } }
public static String GenerateLayout(String savingFile, int lineNum, SavingCard[] savingCards) { String filedir = Path.Combine(Environment.CurrentDirectory, savingFile); int rowInv = 50; int cardPerPerson = 0; foreach (SavingCard c in savingCards) { if (c.userID.Equals("Alex")) { cardPerPerson++; } } int columNum = (cardPerPerson + 1) / lineNum; int columInv = (int)((STATICS.SCREEN_HEIGHT - STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width) / (columNum - 1)); LoadingCard[] loadingCards = new LoadingCard[savingCards.Length]; int Gx = (STATICS.SCREEN_WIDTH - STATICS.SCREEN_HEIGHT) / 2 + (int)STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width / 2; int Gy = STATICS.SCREEN_HEIGHT - (int)STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height / 2 - rowInv * (lineNum - 1); Random rand = new Random(); StreamWriter streamWriter = new StreamWriter(filedir); if (STATICS.ALEX_ACTIVE) { int index = 0; for (int i = 0; i < loadingCards.Length; i++) { if (savingCards[i].userID.Equals("Alex")) { loadingCards[i] = new LoadingCard(); loadingCards[i].dir = Path.Combine(Environment.CurrentDirectory, savingCards[i].dir); loadingCards[i].position = new int[] { index % columNum * columInv + Gx, rowInv * (index / columNum) + Gy }; loadingCards[i].rotate = rand.Next(8) - 4; loadingCards[i].color = new int[] { savingCards[i].color.R, savingCards[i].color.G, savingCards[i].color.B }; loadingCards[i].cardID = savingCards[i].cardID; loadingCards[i].userID = savingCards[i].userID; loadingCards[i].text = savingCards[i].text; string result = JsonConvert.SerializeObject(loadingCards[i]); streamWriter.WriteLine(result); index++; } } } cardPerPerson = 0; foreach (SavingCard c in savingCards) { if (c.userID.Equals("Ben")) { cardPerPerson++; } } columNum = (cardPerPerson + 1) / lineNum; columInv = (int)((STATICS.SCREEN_HEIGHT - STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width) / (columNum - 1)); if (STATICS.BEN_ACTIVE) { Gx = (STATICS.SCREEN_WIDTH + STATICS.SCREEN_HEIGHT) / 2 - (int)STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width / 2; Gy = (int)STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height / 2 + rowInv * (lineNum - 1); int index = 0; for (int i = 0; i < loadingCards.Length; i++) { if (savingCards[i].userID.Equals("Ben")) { loadingCards[i] = new LoadingCard(); loadingCards[i].dir = Path.Combine(Environment.CurrentDirectory, savingCards[i].dir); loadingCards[i].position = new int[] { Gx - index % columNum * columInv, Gy - rowInv * (index / columNum) }; loadingCards[i].rotate = rand.Next(8) - 4 + 180; loadingCards[i].color = new int[] { savingCards[i].color.R, savingCards[i].color.G, savingCards[i].color.B }; loadingCards[i].cardID = savingCards[i].cardID; loadingCards[i].userID = savingCards[i].userID; loadingCards[i].text = savingCards[i].text; string result = JsonConvert.SerializeObject(loadingCards[i]); streamWriter.WriteLine(result); index++; } } } cardPerPerson = 0; foreach (SavingCard c in savingCards) { if (c.userID.Equals("Chris")) { cardPerPerson++; } } columNum = (cardPerPerson + 1) / lineNum; columInv = (int)((STATICS.SCREEN_HEIGHT - STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width) / (columNum - 1)); if (STATICS.CHRIS_ACTIVE) { Gx = (int)STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height / 2 + rowInv * (lineNum - 1); Gy = (int)STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width / 2; int index = 0; for (int i = 0; i < loadingCards.Length; i++) { if (savingCards[i].userID.Equals("Chris")) { loadingCards[i] = new LoadingCard(); loadingCards[i].dir = Path.Combine(Environment.CurrentDirectory, savingCards[i].dir); loadingCards[i].position = new int[] { Gx - rowInv * (index / columNum), Gy + index % columNum * columInv }; loadingCards[i].rotate = rand.Next(8) - 4 + 90; loadingCards[i].color = new int[] { savingCards[i].color.R, savingCards[i].color.G, savingCards[i].color.B }; loadingCards[i].cardID = savingCards[i].cardID; loadingCards[i].userID = savingCards[i].userID; loadingCards[i].text = savingCards[i].text; string result = JsonConvert.SerializeObject(loadingCards[i]); streamWriter.WriteLine(result); index++; } } } cardPerPerson = 0; foreach (SavingCard c in savingCards) { if (c.userID.Equals("Danny")) { cardPerPerson++; } } columNum = (cardPerPerson + 1) / lineNum; columInv = (int)((STATICS.SCREEN_HEIGHT - STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width) / (columNum - 1)); if (STATICS.DANNY_ACTIVE) { Gx = STATICS.SCREEN_WIDTH - ((int)STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height / 2 + rowInv * (lineNum - 1)); Gy = STATICS.SCREEN_HEIGHT - (int)STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width / 2; int index = 0; for (int i = 0; i < loadingCards.Length; i++) { if (savingCards[i].userID.Equals("Danny")) { loadingCards[i] = new LoadingCard(); loadingCards[i].dir = Path.Combine(Environment.CurrentDirectory, savingCards[i].dir); loadingCards[i].position = new int[] { Gx + rowInv * (i / columNum), Gy - i % columNum * columInv }; loadingCards[i].rotate = rand.Next(8) - 4 + 270; loadingCards[i].color = new int[] { savingCards[i].color.R, savingCards[i].color.G, savingCards[i].color.B }; loadingCards[i].cardID = savingCards[i].cardID; loadingCards[i].userID = savingCards[i].userID; loadingCards[i].text = savingCards[i].text; string result = JsonConvert.SerializeObject(loadingCards[i]); streamWriter.WriteLine(result); index++; } } } streamWriter.Flush(); streamWriter.Close(); return ""; }
private static void GenerateLayout(string savingFile, SavingCard[] savingCards) { String filedir = Path.Combine(Environment.CurrentDirectory, savingFile); int cardPerPerson = 0; cardPerPerson = savingCards.Where(s => s.userID.Equals("Alex")).Count(); LoadingCard[] loadingCards = new LoadingCard[savingCards.Length]; Random rand = new Random(); StreamWriter streamWriter = new StreamWriter(filedir); double totalLength = STATICS.MENU_BAR_SIZE.Width - STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width; double inv = totalLength / (cardPerPerson - 1); Point[][] stackPosi = new Point[4][]; stackPosi[0] = new Point[cardPerPerson]; for (int i = 0; i < cardPerPerson; i++) { stackPosi[0][i] = new Point((int)(inv * i), 0 ); } stackPosi[1] = new Point[cardPerPerson]; for (int i = 0; i < cardPerPerson; i++) { stackPosi[1][i] = new Point((int)(inv * -i), 0); } stackPosi[2] = new Point[cardPerPerson]; for (int i = 0; i < cardPerPerson; i++) { stackPosi[2][i] = new Point(0, (int)(inv * i)); } stackPosi[3] = new Point[cardPerPerson]; for (int i = 0; i < cardPerPerson; i++) { stackPosi[3][i] = new Point(0, (int)(inv * -i)); } Vector[] moveVector = new Vector[4]; moveVector[0] = new Vector((STATICS.SCREEN_WIDTH-STATICS.MENU_BAR_SIZE.Width)/2+STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width/2, STATICS.SCREEN_HEIGHT - STATICS.MENU_BAR_SIZE.Height - STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height / 2); moveVector[1] = new Vector((STATICS.SCREEN_WIDTH + STATICS.MENU_BAR_SIZE.Width) / 2-STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width/2, STATICS.MENU_BAR_SIZE.Height + STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height/2) ; moveVector[2] = new Vector(STATICS.MENU_BAR_SIZE.Height+STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height/2, (STATICS.SCREEN_HEIGHT - STATICS.MENU_BAR_SIZE.Width) / 2+STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width/2); moveVector[3] = new Vector(STATICS.SCREEN_WIDTH-STATICS.MENU_BAR_SIZE.Height-STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height/2, (STATICS.SCREEN_HEIGHT + STATICS.MENU_BAR_SIZE.Width) / 2-STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width/2); double[] rotation = new double[] { 0, 180, 90, 270 }; for (int i = 0; i < loadingCards.Length; i++) { int userIndex = i / cardPerPerson; int cardIndex = i % cardPerPerson; loadingCards[i] = new LoadingCard(); loadingCards[i].position = new int[] { (int)(stackPosi[userIndex][cardIndex].X+moveVector[userIndex].X), (int)(stackPosi[userIndex][cardIndex].Y+moveVector[userIndex].Y)}; loadingCards[i].rotate = (int)(rotation[userIndex]+ rand.Next(8) - 4); loadingCards[i].cardID = savingCards[i].cardID; loadingCards[i].userID = savingCards[i].userID; loadingCards[i].title = savingCards[i].title; loadingCards[i].newsID = savingCards[i].newsID; loadingCards[i].content = savingCards[i].content; loadingCards[i].author = savingCards[i].author; string result = JsonConvert.SerializeObject(loadingCards[i]); streamWriter.WriteLine(result); } streamWriter.Flush(); streamWriter.Close(); }
private static void GenerateLayout(string savingFile, SavingCard[] savingCards) { String filedir = Path.Combine(Environment.CurrentDirectory, savingFile); int cardPerPerson = 0; cardPerPerson = savingCards.Where(s => s.userID.Equals("Alex")).Count(); LoadingCard[] loadingCards = new LoadingCard[savingCards.Length]; Random rand = new Random(); StreamWriter streamWriter = new StreamWriter(filedir); double totalLength = STATICS.MENU_BAR_SIZE.Width - STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width; double inv = totalLength / (cardPerPerson - 1); Point[][] stackPosi = new Point[4][]; stackPosi[0] = new Point[cardPerPerson]; for (int i = 0; i < cardPerPerson; i++) { stackPosi[0][i] = new Point((int)(inv * i), 0); } stackPosi[1] = new Point[cardPerPerson]; for (int i = 0; i < cardPerPerson; i++) { stackPosi[1][i] = new Point((int)(inv * -i), 0); } stackPosi[2] = new Point[cardPerPerson]; for (int i = 0; i < cardPerPerson; i++) { stackPosi[2][i] = new Point(0, (int)(inv * i)); } stackPosi[3] = new Point[cardPerPerson]; for (int i = 0; i < cardPerPerson; i++) { stackPosi[3][i] = new Point(0, (int)(inv * -i)); } Vector[] moveVector = new Vector[4]; moveVector[0] = new Vector((STATICS.SCREEN_WIDTH - STATICS.MENU_BAR_SIZE.Width) / 2 + STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width / 2, STATICS.SCREEN_HEIGHT - STATICS.MENU_BAR_SIZE.Height - STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height / 2); moveVector[1] = new Vector((STATICS.SCREEN_WIDTH + STATICS.MENU_BAR_SIZE.Width) / 2 - STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width / 2, STATICS.MENU_BAR_SIZE.Height + STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height / 2); moveVector[2] = new Vector(STATICS.MENU_BAR_SIZE.Height + STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height / 2, (STATICS.SCREEN_HEIGHT - STATICS.MENU_BAR_SIZE.Width) / 2 + STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width / 2); moveVector[3] = new Vector(STATICS.SCREEN_WIDTH - STATICS.MENU_BAR_SIZE.Height - STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Height / 2, (STATICS.SCREEN_HEIGHT + STATICS.MENU_BAR_SIZE.Width) / 2 - STATICS.DEAULT_CARD_SIZE_WITH_BORDER.Width / 2); double[] rotation = new double[] { 0, 180, 90, 270 }; for (int i = 0; i < loadingCards.Length; i++) { int userIndex = i / cardPerPerson; int cardIndex = i % cardPerPerson; loadingCards[i] = new LoadingCard(); loadingCards[i].position = new int[] { (int)(stackPosi[userIndex][cardIndex].X + moveVector[userIndex].X), (int)(stackPosi[userIndex][cardIndex].Y + moveVector[userIndex].Y) }; loadingCards[i].rotate = (int)(rotation[userIndex] + rand.Next(8) - 4); loadingCards[i].cardID = savingCards[i].cardID; loadingCards[i].userID = savingCards[i].userID; loadingCards[i].title = savingCards[i].title; loadingCards[i].newsID = savingCards[i].newsID; loadingCards[i].content = savingCards[i].content; loadingCards[i].author = savingCards[i].author; string result = JsonConvert.SerializeObject(loadingCards[i]); streamWriter.WriteLine(result); } streamWriter.Flush(); streamWriter.Close(); }