Exemplo n.º 1
0
        private static void MakeTableBytes <T>(ref T l, string examPath)
        {
            Type tipo = l.GetType();

            byte[] arr2 = null;
            // string afile = string.Empty;

            if (tipo.Equals(typeof(ExamsListRow)))
            {
                ExamsListRow ls = l as ExamsListRow;

                IEnumerable <ExamsRow> rows = ls.GetExamsRows();

                ExamsDataTable exdt = new ExamsDataTable();
                foreach (var item in rows)
                {
                    exdt.ImportRow(item);
                }

                // afile = ExasmPath + ls.EID.ToString();

                arr2     = Tables.MakeDTBytes(ref exdt, examPath);
                ls.EData = arr2;
            }
            else if (tipo.Equals(typeof(ExamsRow)))
            {
                //SAVE COPY OF TABLE

                ExamsRow     ex = l as ExamsRow;
                QuestionsRow q  = ex.QuestionsRow;
                // afile = ExasmPath + ex.QID.ToString(); IEnumerable<DB.QuestionsRow> shortQlist =
                // new List<DB.QuestionsRow>(); ((IList<DB.QuestionsRow>)shortQlist).Add(ex.QuestionsRow);
                QuestionsDataTable qdt = new QuestionsDataTable();
                qdt.ImportRow(q);
                byte[] qarray = Tables.MakeDTBytes(ref qdt, examPath);
                ex.QData = qarray;
                Dumb.FD(ref qdt);

                AnswersDataTable         adt  = new AnswersDataTable();
                IEnumerable <AnswersRow> answ = q.GetAnswersRows();
                foreach (var item in answ)
                {
                    adt.ImportRow(item);
                }
                // afile = ExasmPath + ex.QueToString() + ".xml";
                arr2     = Tables.MakeDTBytes(ref adt, examPath);
                ex.AData = arr2;
                Dumb.FD(ref adt);
            }
            else if (tipo.Equals(typeof(PreferencesRow)))
            {
                PreferencesRow p = l as PreferencesRow;              //SAVE A COPY OF EXAMS LISTS
                IEnumerable <DB.ExamsListRow> rows = p.GetExamsListRows();

                ExamsListDataTable dt = new ExamsListDataTable();
                foreach (var item in rows)
                {
                    dt.ImportRow(item);
                }

                // afile = ExasmPath + p.PID.ToString() + ".xml";
                arr2     = Tables.MakeDTBytes(ref dt, examPath);
                p.ELData = arr2;

                Dumb.FD(ref dt);
            }
        }
Exemplo n.º 2
0
Arquivo: DB.cs Projeto: hnjm/Exam
        internal void PopulateExamQuestions(ref ExamsListRow r)
        {
            //    DB.TAM.ExamsTableAdapter.FillByEID(dt, r.EID);
            //now find the examsTablewith questions and answers for the EXAM (list)
            //   if (!r.NeedsExams) return;
            // string eid = ExasmPath + r.EID.ToString() + ".xml";


            this.Preferences.Clear();
            this.Preferences.ImportRow(r.PreferencesRow);

            this.Class.Clear();
            this.Class.ImportRow(r.PreferencesRow.ClassRow);

            this.AYear.Clear();
            this.AYear.ImportRow(r.PreferencesRow.AYearRow);


            Environment.SpecialFolder dir = Environment.SpecialFolder.InternetCache;
            string cache = Environment.GetFolderPath(dir) + "\\";

            byte[] auxiliar;
            auxiliar = r.EData;
            ExamsDataTable dt2 = new ExamsDataTable();

            Rsx.Dumb.Tables.ReadDTBytes(cache, ref auxiliar, ref dt2);
            this.Exams.Clear();
            this.Exams.Merge(dt2);
            Rsx.Dumb.Dumb.FD(ref dt2);

            this.ExamsList.Clear();
            this.ExamsList.ImportRow(r);

            r = this.ExamsList.First();
            //         if (r.NeedsExams) return;

            this.Questions.Clear();

            IEnumerable <ExamsRow> rows = r.GetExamsRows();

            foreach (var item in rows)
            {
                auxiliar = item.QData;
                QuestionsDataTable qdt = new QuestionsDataTable();
                Rsx.Dumb.Tables.ReadDTBytes(cache, ref auxiliar, ref qdt);
                this.Questions.Merge(qdt);
                Rsx.Dumb.Dumb.FD(ref qdt);
            }

            this.Answers.Clear();
            //     IEnumerable<ExamsRow> rows = r.GetExamsRows();
            foreach (var item in rows)
            {
                auxiliar = item.AData;
                AnswersDataTable adt = new AnswersDataTable();
                Rsx.Dumb.Tables.ReadDTBytes(cache, ref auxiliar, ref adt);
                this.Answers.Merge(adt);
                Rsx.Dumb.Dumb.FD(ref adt);
            }

            this.AcceptChanges();
        }