Ejemplo n.º 1
0
        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 "";
        }
Ejemplo n.º 3
0
 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();
 }
Ejemplo n.º 4
0
        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();
        }