public override void MapDataFields(System.Data.DataRow currentRow)
        {
            base.MapDataFields(currentRow);


            version = Convert.ToDouble(currentRow["Version"]);

            formId = (Int64)currentRow["FormId"];


            storeImage = Convert.ToBoolean(currentRow["StoreImage"]);


            #region Load Correspondence Content (without Attachment Images)

            String selectStatement = "SELECT ";

            selectStatement += "    CorrespondenceContentId, CorrespondenceId, ContentSequence, ContentType, ReportingServerId, CorrespondenceContentName, CorrespondenceContentPath, IsAttachmentCompressed,";

            selectStatement += "    CreateAuthorityName, CreateAccountId, CreateAccountName, CreateDate, ";

            selectStatement += "    ModifiedAuthorityName, ModifiedAccountId, ModifiedAccountName, ModifiedDate";

            selectStatement += "  FROM dbo.CorrespondenceContent";

            selectStatement += "  WHERE CorrespondenceId = " + id.ToString();

            selectStatement += "  ORDER BY ContentSequence, ContentType";


            content = new Dictionary <Int32, CorrespondenceContent> ();

            Int32 contentIndex = 0;

            System.Data.DataTable contentTable = application.EnvironmentDatabase.SelectDataTable(selectStatement, 0);

            foreach (System.Data.DataRow currentContentRow in contentTable.Rows)
            {
                contentIndex++;

                CorrespondenceContent correspondenceContent = new CorrespondenceContent(application);

                correspondenceContent.MapDataFields(currentContentRow);

                correspondenceContent.CorrespondenceId = id;

                correspondenceContent.ContentSequence = contentIndex;

                content.Add(contentIndex, correspondenceContent);
            }

            #endregion

            return;
        }
        public void LoadContentAttachments()
        {
            foreach (CorrespondenceContent currentContent in content.Values)
            {
                CorrespondenceContent loadedContent = application.CorrespondenceContentGet(currentContent.Id);

                if (loadedContent != null)
                {
                    currentContent.AttachmentBase64 = loadedContent.AttachmentBase64;
                }
            }

            return;
        }
        public override List <ImportExport.Result> XmlImport(System.Xml.XmlNode objectNode)
        {
            List <ImportExport.Result> response = base.XmlImport(objectNode);


            try {
                foreach (System.Xml.XmlNode currentNode in objectNode.ChildNodes)
                {
                    switch (currentNode.Name)
                    {
                    case "Properties":

                        foreach (System.Xml.XmlNode currentPropertyNode in currentNode.ChildNodes)
                        {
                            switch (currentPropertyNode.Attributes["Name"].InnerText)
                            {
                            case "Version": Version = Convert.ToDouble(currentPropertyNode.InnerText); break;

                            // USE NAME TO PERFORM MATCHING AND NOT ID

                            case "FormName": FormId = application.CoreObjectGetIdByName("Form", currentPropertyNode.InnerText); break;

                            case "StoreImage": StoreImage = Convert.ToBoolean(currentPropertyNode.InnerText); break;
                            }
                        }

                        break;

                    case "Contents":

                        Int32 contentIndex = 0;

                        if (content == null)
                        {
                            content = new Dictionary <int, CorrespondenceContent> ();
                        }

                        foreach (System.Xml.XmlNode currentContentNode in currentNode.ChildNodes)
                        {
                            CorrespondenceContent loadedContent = new CorrespondenceContent(application);

                            response.AddRange(loadedContent.XmlImport(currentContentNode));

                            content.Add(contentIndex, loadedContent);

                            contentIndex = contentIndex + 1;
                        }

                        break;
                    } // switch (currentNode.Attributes["Name"].InnerText) {
                }     // foreach (System.Xml.XmlNode currentNode in objectNode.ChildNodes) {


                // SAVE IMPORTED CLASS

                if (!Save())
                {
                    throw new ApplicationException("Unable to save Correspondence: " + Name + ".");
                }
            }

            catch (Exception importException) {
                response.Add(new ImportExport.Result(ObjectType, Name, importException));
            }

            return(response);
        }