Пример #1
0
        public async Task ExportFormAsync(int siteId, string directoryPath, int formId)
        {
            var formInfo = await _formRepository.GetFormInfoAsync(siteId, formId);

            var filePath = PathUtils.Combine(directoryPath, formInfo.Id + ".xml");

            var feed = GetEmptyFeed();

            foreach (var tableColumn in _formRepository.TableColumns)
            {
                SetValue(feed.AdditionalElements, tableColumn, formInfo);
            }

            //var styleDirectoryPath = PathUtils.Combine(directoryPath, formInfo.Id.ToString());

            var relatedIdentities = GetRelatedIdentities(formInfo.Id);

            await _pathManager.ExportStylesAsync(siteId, FormUtils.TableNameData, relatedIdentities);

            //await ExportFieldsAsync(formInfo.Id, styleDirectoryPath);

            var dataInfoList = await _dataRepository.GetAllDataInfoListAsync(formInfo);

            foreach (var dataInfo in dataInfoList)
            {
                var entry = GetAtomEntry(dataInfo);
                feed.Entries.Add(entry);
            }
            feed.Save(filePath);

            var plugin = _pluginManager.GetPlugin(PluginId);

            await FileUtils.WriteTextAsync(PathUtils.Combine(directoryPath, VersionFileName), plugin.Version);
        }