Example #1
0
        /// <summary>
        /// This method validates an XML document against a speciied XSD.  It then loads data from the XML document
        /// into the users table via the LoadUserXML method in the User class.
        /// </summary>
        /// <returns>DataSet with any errors that may have been generated at the database level.</returns>
        /// <remarks>This method overrides the base method <see cref="XMLLoader.Load()"/>.</remarks>
        public override DataSet Load()
        {
            try
            {
                //1. Validate the XML document
                this.Validate();

                //2. If the document is valid upload it to the database otherwise do nothing.
                if (this.p_objValidationResult.IsValid)
                {
                    DataSet  dsLoadResult;
                    Toolbook objToolbook = new Toolbook();

                    //3. Loads the UserXMLData.
                    return(dsLoadResult = objToolbook.UploadContentObjectXML(this.GetXMLData(this.XMLFile), this.UserID, this.ModuleID, this.CourseID, this.ToolbookLocation));
                }
                else                 //4. Schema Validation failed.
                {
                    //5. Create a new DataSet
                    DataSet dsLoadResult = new DataSet("LoadResult");

                    //6. Create a datatable with the error result from the validation struct.
                    DataTable  dtbLoadResult = new DataTable("Result");
                    DataColumn dtcName       = new DataColumn("Error", System.Type.GetType("System.String"));
                    dtbLoadResult.Columns.Add(dtcName);
                    DataRow drError;
                    drError          = dtbLoadResult.NewRow();
                    drError["Error"] = "Invalid XML file";
                    dtbLoadResult.Rows.Add(drError);

                    //7. Log the error to the error log
                    //new ErrorLog(new Exception(this.ValidationResult.Error), ErrorLevel.High, "ImportToolbook", "Load", "Validate XML");
                    new ErrorLog(new ApplicationException(ValidationResult.Error.ToString()));
                    //8. Add the DataTable to the DataSet.
                    dsLoadResult.Tables.Add(dtbLoadResult);

                    //9. Return the DataSet.
                    return(dsLoadResult);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }