예제 #1
0
        private void SourceNextButton_Click(object sender, RoutedEventArgs e)
        {
            if (SourceQueryGeneratorControl.QueryResults.Count == 0)
            {
                MessageBox.Show("Please select a list object for source");
                return;
            }

            //SourceSiteSetting = ApplicationContext.Current.GetSiteSetting(SourceFolder.SiteSettingID);
            //Logger.Error("10", "SyncCopyListWizardForm");
            //SourceFolderFields = ApplicationContext.Current.GetFields(SourceSiteSetting, SourceFolder);
            //SourceFolderFields = SourceQueryGeneratorControl.QueryResults[0].Fields;
            SyncTask.SourceQueryResultMapping.Mappings.Clear();
            Logger.Error("11", "SyncCopyListWizardForm");
            for (int i = 0; i < SourceQueryGeneratorControl.QueryResults.Count; i++)
            {
                /*
                 * QueryResult test1QueryResult = new QueryResult();
                 * test1QueryResult.Fields = sourceFieldNames.ToArray();
                 * test1QueryResult.ListName = SourceFolder.GetListName();
                 * test1QueryResult.Name = SourceFolder.GetListName();
                 * test1QueryResult.SiteSetting = (SiteSetting)SourceSiteSetting;
                 * test1QueryResult.Filters = new CamlFilters();
                 */
                QueryResultMapping test1QueryResultMapping = new QueryResultMapping();
                test1QueryResultMapping.QueryResult  = SourceQueryGeneratorControl.QueryResults[i];
                test1QueryResultMapping.SelectFields = SourceQueryGeneratorControl.QueryResultMappingSelectFields[i];

                SyncTask.SourceQueryResultMapping.Mappings.Add(test1QueryResultMapping);
            }

            /*
             * Field ctField = new Field()
             * {
             *  ID = Guid.Empty,
             *  Name = "ContentType",
             *  DisplayName = "ContentType",
             *  FromBaseType = false
             * };
             * SourceFolderFields.Add(ctField);
             */
            CurrentTabIndex = 1;
            WizardTabControl.SelectedIndex = CurrentTabIndex;
        }
        private void GenerateExcelImportTask()
        {
            ISiteSetting  siteSetting                 = ApplicationContext.Current.GetSiteSetting(_MainObject.SiteSettingID);
            List <string> excelHeaders                = new List <string>();
            List <string> sharePointFieldNames        = new List <string>();
            Dictionary <string, string> fieldMappings = new Dictionary <string, string>();

            foreach (UIElement element in DynamicGrid.Children)
            {
                if (element is ComboBox)
                {
                    string excelHeader         = ((ComboBox)element).Tag.ToString();
                    string sharePointFieldName = ((ComboBoxItem)((ComboBox)element).SelectedItem).Tag.ToString();
                    if (string.IsNullOrEmpty(sharePointFieldName) == true)
                    {
                        continue;
                    }
                    excelHeaders.Add(excelHeader);
                    sharePointFieldNames.Add(sharePointFieldName);
                    fieldMappings.Add(excelHeader, sharePointFieldName);
                }
            }

            excelHeaders.Insert(0, "ID");
            sharePointFieldNames.Insert(0, "SourceItemID");

            //List<SyncTask> syncTasks = new List<SyncTask>();
            SyncTask syncTask = SyncTask.NewSyncTask();

            syncTask.ID = Guid.NewGuid();
            syncTask.ScheduleInterval = 240;

            string folderPath = ConfigurationManager.GetInstance().GetSyncTaskFolder(syncTask);

            System.IO.File.Copy(_SelectedFileFullPath, folderPath + "\\ProcessedExport.xlsx");

            QueryResult test1QueryResult = new QueryResult();

            test1QueryResult.Fields      = excelHeaders.ToArray();
            test1QueryResult.ListName    = "Test1";
            test1QueryResult.Name        = "Test1";
            test1QueryResult.SiteSetting = null;
            test1QueryResult.Filters     = new CamlFilters();

            /*
             * test1QueryResult.ReferenceFields.Add(new QueryResultReferenceField()
             * {
             *  SiteSetting = GetTestSiteSetting(),
             *  ReferenceFilterFieldName = "FilterValue",
             *  ReferenceListName = "TestLookup",
             *  ReferenceValueFieldName = "DataValue",
             *  SourceFieldName = "RefField",
             *  OutputName = "RefField1"
             * });
             */

            QueryResultMapping test1QueryResultMapping = new QueryResultMapping();

            test1QueryResultMapping.QueryResult = test1QueryResult;
            List <QueryResultMappingSelectField> queryResultMappingSelectFields = new List <QueryResultMappingSelectField>();

            foreach (string excelHeader in excelHeaders)
            {
                queryResultMappingSelectFields.Add(new QueryResultMappingSelectField(excelHeader, excelHeader));
            }
            test1QueryResultMapping.SelectFields = queryResultMappingSelectFields.ToArray();
            syncTask.SourceQueryResultMapping.Mappings.Add(test1QueryResultMapping);

            syncTask.DestinationListName       = _MainObject.GetListName();
            syncTask.DestinationRootFolderPath = _MainObject.GetListName();
            syncTask.Name = _MainObject.GetListName();
            syncTask.SourceUniqueFieldHeaderNames = new string[] { "ID" };
            syncTask.DestinationUniqueFieldNames  = new string[] { "SourceItemID" };
            syncTask.DestinationIDFieldHeaderName = "ID";

            syncTask.SourceFieldHeaderMappings = excelHeaders.ToArray();
            //syncTask.DestinationFieldMappings = sharePointFieldNames.ToArray();
            syncTask.IsDestinationDocumentLibrary = false;
            syncTask.DestinationTermStoreName     = "Taxonomy_BrjLUNqY3/3gqp8FAbbKiQ==";
            syncTask.DestinationSiteSetting       = (SiteSetting)siteSetting;
            //syncTasks.Add(syncTask);
            //SyncTasksManager.GetInstance().SyncTasks.Clear();
            //SyncTasksManager.GetInstance().SyncTasks.Add(syncTask);
            //SyncTasksManager.GetInstance().SaveSyncTasks();
            SyncBackgroundWorker.RunWorkerAsync(new object[] { syncTask });
        }