コード例 #1
0
        public ModuleResults GetResults(IInstanceInfo instanceInfo)
        {
            var allData      = GetAllData(instanceInfo);
            var siteSettings = new AllSiteSettings(allData);
            var resultSet    = new DataSet();

            ProcessMediaLibraryRecords(instanceInfo, allData, siteSettings, resultSet);
            Dictionary <int, Dictionary <string, bool> > formAttachmentRecords = GetFormAttachmentFiles(instanceInfo, allData, siteSettings);

            ProcessMissingFormAttachmentFiles(instanceInfo, allData, siteSettings, resultSet, formAttachmentRecords);

            ProcessMissingFormAttachmentRecords(resultSet, formAttachmentRecords);

            ApplyUserFriendlyTableNames(resultSet);

            return(new ModuleResults
            {
                Result = resultSet,
            });
        }
コード例 #2
0
        private static void ProcessMediaLibraryRecords(IInstanceInfo instanceInfo, DataSet allData, AllSiteSettings siteSettings, DataSet ResultSet)
        {
            AddMediaLibraryResultsTable(allData, ResultSet);

            foreach (DataRow row in allData.Tables["MediaLibraryRecords"].Rows)
            {
                /* Media Library:
                 * //MediaLibraryBaseFolder/SiteName?/folder/image.filetype
                 */

                var siteID         = Convert.ToInt32(row["FileSiteID"]);
                var siteBaseFolder = siteSettings[siteID].baseMediaFolder;
                var libraryFolder  = row["LibraryFolder"].ToString();
                var filePath       = row["FilePath"].ToString();
                var fullFilePath   = UriExtensions.Combine(siteBaseFolder, libraryFolder, filePath);

                if (!UriExtensions.Exists(fullFilePath, instanceInfo))
                {
                    var tempArray = AddAttachmentUrlToMediaRecord(row, fullFilePath);
                    ResultSet.Tables["MediaLibraryMissingFiles"].Rows.Add(tempArray);
                }
            }
        }
コード例 #3
0
        private static void ProcessMissingFormAttachmentFiles(IInstanceInfo instanceInfo, DataSet allData, AllSiteSettings siteSettings, DataSet resultSet, Dictionary <int, Dictionary <string, bool> > formAttachmentRecords)
        {
            AddMissingFormAttachmentFilesTable(allData, resultSet);

            /* bizform Attachments:
             * //UploadedFormFiles/SiteName?/unknownguid.filetype)
             * AttachmentGuid is unknownguid.filetype/filename.filetype
             */
            foreach (DataRow row in allData.Tables["BizFormAttachmentRecords"].Rows)
            {
                var siteID    = Convert.ToInt32(row["SiteID"]);
                var guidSplit = row["AttachmentGUID"].ToString().Split(new char[] { '/' }, 2);
                if (guidSplit.Length != 2)
                {
                    throw new ApplicationException($"AttachmentGUID of '{row["AttachmentGUID"].ToString()}' expected a '/' but did not find one.");
                }
                var rowURL = UriExtensions.Combine(siteSettings[siteID].baseFormAttachmentsFolder, guidSplit[0]);
                if (!UriExtensions.Exists(rowURL, instanceInfo))
                {
                    var tempArray = new List <object>(row.ItemArray);
                    tempArray[0] = guidSplit[0];
                    tempArray.Add(guidSplit[1]);
                    tempArray.Add(rowURL);
                    resultSet.Tables["BizFormAttachmentMissingFiles"].Rows.Add(tempArray.ToArray());
                }

                //As long as we're looping over the Attachment records anyways, take note of which records were found.
                if (formAttachmentRecords[siteID].ContainsKey(guidSplit[0]))
                {
                    formAttachmentRecords[siteID][guidSplit[0]] = true;
                }
            }
        }
コード例 #4
0
        private static Dictionary <int, Dictionary <string, bool> > GetFormAttachmentFiles(IInstanceInfo instanceInfo, DataSet allData, AllSiteSettings siteSettings)
        {
            Dictionary <int, Dictionary <string, bool> > fileItems = new Dictionary <int, Dictionary <string, bool> >();

            foreach (DataRow siteRow in allData.Tables["KenticoSites"].Rows)
            {
                var siteID = Convert.ToInt32(siteRow["SiteID"]);
                fileItems.Add(siteID, new Dictionary <string, bool>());
                foreach (var fileObj in UriExtensions.GetFiles(siteSettings[siteID].baseFormAttachmentsFolder, true, instanceInfo))
                {
                    fileItems[siteID].Add(fileObj.Name, false);
                }
            }

            return(fileItems);
        }