public DiagnosisLevelSnapshot(ParseObject po)
    {
        this.ObjectId = po.ObjectId;

        if (po.ContainsKey("diagnosis_level"))
        {
            this.DiagnosisLevel = po.Get <string>("diagnosis_level");
        }
        if (po.ContainsKey("start_time"))
        {
            this.StartTime = po.Get <long>("start_time");
        }

        if (po.ContainsKey("school"))
        {
            School s = new School();
            s.ObjectId  = po.Get <ParseObject>("school").ObjectId;
            this.School = s;
        }

        if (po.ContainsKey("student"))
        {
            DiagnosisLevelSnapshot dls = new DiagnosisLevelSnapshot();
            dls.ObjectId = po.Get <ParseObject>("student").ObjectId;
            this.Student = dls;
        }

        /*if(po.ContainsKey("student_correct")){
         *      Student s = new Student();
         *      s.ObjectId = po.Get<ParseObject>("student_correct").ObjectId;
         *      this.Student = s;
         * }*/
    }
    public DiagnosisLevelSnapshotSerialized(DiagnosisLevelSnapshot dls)
    {
        this.DiagnosisLevel = dls.DiagnosisLevel;
        this.StartTime      = dls.StartTime;

        if (dls.School != null)
        {
            SchoolSerialized ss = new SchoolSerializedDAO().LoadByObjectId(dls.School.ObjectId);
            if (ss != null)
            {
                this.SchoolSerialized = ss;
            }
            else
            {
                //Debug.Log ("Serialized: There is no relationship saved");
            }
        }

        if (dls.Student != null)
        {
            StudentSerialized ss = new StudentSerializedDAO().LoadByObjectId(dls.Student.ObjectId);
            if (ss != null)
            {
                this.StudentSerialized = ss;
            }
            else
            {
                //Debug.Log ("Serialized: There is no relationship saved");
            }
        }
    }
    public DiagnosisLevelSnapshot(DiagnosisLevelSnapshotSerialized dlss)
    {
        if (dlss != null)
        {
            this.ObjectId = dlss.ObjectId;

            this.DiagnosisLevel = dlss.DiagnosisLevel;
            this.StartTime      = dlss.StartTime;

            School school = new School();
            if (dlss.SchoolSerialized != null)
            {
                school.ObjectId = dlss.SchoolSerialized.ObjectId;
            }
            this.School = school;

            DiagnosisLevelSnapshot student = new DiagnosisLevelSnapshot();
            if (dlss.StudentSerialized != null)
            {
                student.ObjectId = dlss.StudentSerialized.ObjectId;
            }
            this.Student = student;
        }
    }