/*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); }