private void _worker_DoWork(object sender, DoWorkEventArgs e) { try { App.Current.Dispatcher.Invoke(() => // <--- HERE { Logs.Instance.Info("try to fetch sharepoint list columns"); IsColumnLoading = true; foreach (SpList spList in GetSupportedLists.Where(x => x.IsChecked)) { ClientContextSp clientContext = _connect.GetClientContextSp; // clientContext.Credentials;// new NetworkCredential(txtUsername.Text.Trim(), txtPasssword.Password.Trim(), txtDomain.Text.Trim()); List oList = clientContext.Web.Lists.GetById(spList.Id); var fields = oList.Fields; clientContext.Load(oList); clientContext.Load(fields); clientContext.ExecuteQuery(); spList.Columns.Clear(); foreach (Field item in fields) { if (item.TypeAsString.IsValidTypeToConvert()) { spList.Columns.Add(new Column //(null, true) { DefaultValue = item.DefaultValue, DisplayName = item.TypeDisplayName, InternalName = item.InternalName, Type = item.TypeAsString, EnforceUniqueValue = item.EnforceUniqueValues, Required = item.Required, Title = item.Title }); } //Console.WriteLine( // "TypeAsString: {0} , Title: {1} , DefaultValue: {2} , Required: {3} , EnforceUniqueValues:{4}", // item.TypeAsString, item.Title, item.DefaultValue, item.Required, item.EnforceUniqueValues); } } Logs.Instance.Info("end fetching SPList columns"); }); } catch (Exception ex) { _worker.CancelAsync(); Logs.Instance.Error(ex); } finally { IsColumnLoading = false; } }
void _worker_DoWork(object sender, DoWorkEventArgs e) { Logs.Instance.Info("try to connect Sharepoint site"); Error = string.Empty; IsLoading = true; ClientContextSp clientContext = this.GetClientContextSp; Web oWebsite = clientContext.Web; collList = oWebsite.Lists; try { Thread.Sleep(1000); clientContext.Load(collList); clientContext.ExecuteQuery(); base.Serialize(_connectionInfo); IsConnect = Visibility.Visible; Mediator.Instance.NotifyColleagues(ViewModelMessages.Connect, collList); Mediator.Instance.NotifyColleagues(ViewModelMessages.IndexPage, 1); Logs.Instance.Info("Connected to Sharepoint site successfuly"); } catch (WebException ex) { Error = ex.Message; Logs.Instance.Error(ex); } catch (Exception ex) { Error = ex.Message; Logs.Instance.Error(ex); } finally { IsConnect = Visibility.Hidden; IsLoading = false; _worker.CancelAsync(); } }