Example #1
0
        /*FILE EVENTS*/
        private bool LoadDataFromFile()
        {
            CreateFileIfNotExist(Cons.DATA_OF_MANHINHTRALOI);

            // get data from text file
            string[] jsonData = System.IO.File.ReadAllLines(Cons.DATA_OF_MANHINHTRALOI);
            if (jsonData.Length == 0)
            {
                //dữ liệu không tồn tại trong file
                return(false);
            }

            // load data into object

            dynamic dataOfAvatar = SerializerOfJson.DeserializeFromJsonFile(jsonData[0], Type.GetType("avatar_properties"));
            dynamic dataOfAnswer = SerializerOfJson.DeserializeFromJsonFile(jsonData[1], Type.GetType("answer_content_properties"));
            dynamic dataOfTime   = SerializerOfJson.DeserializeFromJsonFile(jsonData[2], Type.GetType("time_properties"));

            /*Lớp Converter cần cho những sự chuyển đổi những kiểu dữ liệu đặc biệt*/
            FontConverter  converter  = new FontConverter();
            ColorConverter converter1 = new ColorConverter();

            /*Tránh tạo những biến này trong vòng lặp, nó khiến thời gian xử lí lâu hơn vì phải tạo đi tạo lại những biến như thế*/
            string colorStr;
            string fontStr;

            string[] fontProperty;

            int index = 0;

            foreach (var data in dataOfAvatar)
            {
                avatar_properties[index].x_axis = data["x_axis"];
                avatar_properties[index].y_axis = data["y_axis"];

                avatar_properties[index].width  = data["width"];
                avatar_properties[index].height = data["height"];

                avatar_properties[index].avatarPath = data["avatarPath"];

                index++;
            }

            //reset index
            index = 0;

            foreach (var data in dataOfAnswer)
            {
                answer_content_properties[index].x_axis = data["x_axis"];
                answer_content_properties[index].y_axis = data["y_axis"];

                answer_content_properties[index].width  = data["width"];
                answer_content_properties[index].height = data["height"];

                colorStr = data["foreColor"];
                var color = (Color)converter1.ConvertFromString(colorStr);
                answer_content_properties[index].foreColor = color;

                /*Font data có dạng <Tên font>, <Kích thước>pt ==> cần tách thành mảng với 2 phần tử là tên và kích thước*/
                fontStr         = data["font"];
                fontProperty    = fontStr.Split(',');
                fontProperty[1] = fontProperty[1].Substring(0, fontProperty[1].IndexOf('p'));
                answer_content_properties[index].font = new Font(fontProperty[0], (float)Convert.ToDouble(fontProperty[1]));

                index++;
            }

            index = 0;

            foreach (var data in dataOfTime)
            {
                time_properties[index].x_axis = data["x_axis"];
                time_properties[index].y_axis = data["y_axis"];

                time_properties[index].width  = data["width"];
                time_properties[index].height = data["height"];

                /*Font data có dạng <Tên font>, <Kích thước>pt ==> cần tách thành mảng với 2 phần tử là tên và kích thước*/
                fontStr                     = data["font"];
                fontProperty                = fontStr.Split(',');
                fontProperty[1]             = fontProperty[1].Substring(0, fontProperty[1].IndexOf('p'));
                time_properties[index].font = new Font(fontProperty[0], (float)Convert.ToDouble(fontProperty[1]));

                colorStr = data["foreColor"];
                var color = (Color)converter1.ConvertFromString(colorStr);
                time_properties[index].foreColor = color;

                index++;
            }
            return(true);
        }