Exemple #1
0
        /// <summary>
        /// </summary>
        private void lbProfiles_SelectedIndexChanged(object sender, EventArgs e)
        {
            // load selected profile details
            if (lbProfiles.SelectedIndex < 0)
            {
                return;
            }

            var profName = lbProfiles.SelectedItem.ToString();

            if (GenUtil.IsNull(profName))
            {
                return;
            }

            var prof = lstProfiles.FirstOrDefault(x => x.profileName.Trim().ToLower() == profName.Trim().ToLower());

            if (prof == null)
            {
                return;
            }

            tbProfileName.Text           = prof.profileName;
            tbSiteUrl.Text               = prof.siteUrl;
            tbUsername.Text              = prof.username;
            tbPassword.Text              = prof.password;
            tbDomain.Text                = prof.domain;
            cbIsSharePointOnline.Checked = prof.isSpOnline;
        }
Exemple #2
0
        /// <summary>
        /// </summary>
        private void btnSaveProfile_Click(object sender, EventArgs e)
        {
            // save profile details
            var newProfile = new ProfileDetail();

            newProfile.profileName = tbProfileName.Text.Trim();
            newProfile.siteUrl     = tbSiteUrl.Text.Trim();
            newProfile.username    = tbUsername.Text.Trim();
            newProfile.password    = tbPassword.Text.Trim();
            newProfile.domain      = tbDomain.Text.Trim();
            newProfile.isSpOnline  = cbIsSharePointOnline.Checked;

            if (GenUtil.IsNull(newProfile.profileName))
            {
                MessageBox.Show("Profile name is required.", "Error");
                return;
            }
            if (GenUtil.IsNull(newProfile.siteUrl))
            {
                MessageBox.Show("Site url is required.", "Error");
                return;
            }
            if (GenUtil.IsNull(newProfile.username))
            {
                MessageBox.Show("Username is required.", "Error");
                return;
            }
            if (GenUtil.IsNull(newProfile.password))
            {
                MessageBox.Show("Password is required.", "Error");
                return;
            }
            if (!cbIsSharePointOnline.Checked && GenUtil.IsNull(newProfile.domain))
            {
                MessageBox.Show("Domain is required.", "Error");
                return;
            }

            // get matching profile or create new
            var existingProfile = lstProfiles.FirstOrDefault(x => x.profileName.Trim().ToLower() == newProfile.profileName.Trim().ToLower());

            if (existingProfile == null)
            {
                lstProfiles.Add(newProfile);
                LoadProfilesIntoListbox();
            }
            else
            {
                existingProfile.profileName = newProfile.profileName;
                existingProfile.siteUrl     = newProfile.siteUrl;
                existingProfile.username    = newProfile.username;
                existingProfile.password    = newProfile.password;
                existingProfile.domain      = newProfile.domain;
                existingProfile.isSpOnline  = newProfile.isSpOnline;
            }
        }
        /// <summary>
        /// </summary>
        private void bgWorkerLoadFields_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            form1.EnableFormFields();

            var lstResults = e.Result as List <object>;

            var msg           = lstResults[0].ToString();
            var lstFieldNames = lstResults[1] as List <string>;

            if (!GenUtil.IsNull(msg))
            {
                form1.cout("Error loading file fields", msg);
            }
            else
            {
                cbFields.Items.AddRange(lstFieldNames.ToArray());
            }
        }
        /// <summary>
        /// </summary>
        private void Worker()
        {
            Exception retErr = null;
            DataTable dt     = null;

            try
            {
                SPWSLists.Lists proxy = new SPCAMLQueryHelperOnline.SPWSLists.Lists();

                if (parentForm.formChooser.appMode == Chooser.AppMode.UseWSDef)
                {
                    proxy.UseDefaultCredentials = true;
                }
                else if (parentForm.formChooser.appMode == Chooser.AppMode.UseWSCreds)
                {
                    proxy.UseDefaultCredentials = false;
                    proxy.Credentials           = new System.Net.NetworkCredential(parentForm.formChooser.credUsername, parentForm.formChooser.credPassword, parentForm.formChooser.credDomain);
                }
                else if (parentForm.formChooser.appMode == Chooser.AppMode.UseWSOffice365)
                {
                    proxy.CookieContainer = SharedStuff.GetAuthCookies(new Uri(siteUrl), parentForm.formChooser.credUsername, parentForm.formChooser.credPassword);
                }

                proxy.Url = GenUtil.CombineUrls(siteUrl, XMLConsts.AsmxSuffix_Lists);

                var strQuery = GenUtil.RemoveWhiteSpace(txtQuery.Text);
                strQuery = GenUtil.WrapWSQuery(strQuery);

                //
                StringReader rdrQuery = new StringReader(strQuery);
                XElement     xQuery   = XElement.Load(rdrQuery);

                //
                string rowLimit = (GenUtil.SafeToNum(txtRowLimit.Text) == 0 ? "" : GenUtil.SafeToNum(txtRowLimit.Text).ToString());

                //
                string webID = "";

                //
                StringReader rdrQueryOptions = null;
                if (GenUtil.IsNull(txtViewAttributes.Text))
                {
                    rdrQueryOptions = new StringReader("<QueryOptions><IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns></QueryOptions>");
                }
                else
                {
                    rdrQueryOptions = new StringReader(string.Format("<QueryOptions><IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns><ViewAttributes {0} /></QueryOptions>",
                                                                     GenUtil.RemoveWhiteSpace(txtViewAttributes.Text.Trim())));
                }
                XElement xQueryOptions = XElement.Load(rdrQueryOptions);

                //
                XElement xViewFields = null;
                if (GenUtil.IsNull(txtViewFields.Text))
                {
                    xViewFields = new XElement("ViewFields");
                }
                else
                {
                    StringReader rdrViewFields = new StringReader(string.Format("<ViewFields>{0}</ViewFields>",
                                                                                GenUtil.RemoveWhiteSpace(txtViewFields.Text.Trim())));
                    xViewFields = XElement.Load(rdrViewFields);
                }

                //
                string viewName = "";

                //
                XElement results = proxy.GetListItems(
                    listName,
                    viewName,
                    xQuery.GetXmlNode(),
                    xViewFields.GetXmlNode(),
                    rowLimit,
                    xQueryOptions.GetXmlNode(),
                    webID).GetXElement();


                //
                dt = new DataTable();

                foreach (XElement xRow in results.Descendants(XMLConsts.z + "row"))
                {
                    foreach (XAttribute xAttr in xRow.Attributes())
                    {
                        string colName = xAttr.Name.ToString();

                        if (!dt.Columns.Contains(xAttr.Name.ToString()))
                        {
                            dt.Columns.Add(xAttr.Name.ToString(), typeof(string));
                        }
                    }
                }

                foreach (XElement xRow in results.Descendants(XMLConsts.z + "row"))
                {
                    DataRow dr = dt.NewRow();

                    foreach (XAttribute xAttr in xRow.Attributes())
                    {
                        string colName = xAttr.Name.ToString();
                        string colVal  = xAttr.Value;

                        dr[colName] = colVal;
                    }

                    dt.Rows.Add(dr);
                }
            }
            catch (Exception ex)
            {
                retErr = ex;
            }



            // update gui
            parentForm.Invoke(new MethodInvoker(() =>
            {
                if (retErr != null)
                {
                    GenUtil.LogIt(txtStatus, retErr.ToString());
                }
                else
                {
                    GenUtil.LogIt(txtStatus, string.Format("Found {0} Record(s).", dt.Rows.Count));

                    gvResults.DataSource = dt;

                    if (dt.Rows.Count > 0)
                    {
                        tabControl1.SelectTab(2);
                    }
                }


                // finish action
                btnSearch.Enabled          = true;
                toolStripStatusLabel1.Text = "";
                statusStrip1.Refresh();
                picLogoWait.Visible = false;
                picLogoWait.Refresh();
            }));
        }
        /// <summary>
        /// </summary>
        private void Worker()
        {
            // configure view web service
            List <CustXMLView>  lstViews  = new List <CustXMLView>();
            List <CustXMLField> lstFields = new List <CustXMLField>();

            Exception retErr = null;

            try
            {
                SPWSViews.Views proxyViews = new SPCAMLQueryHelperOnline.SPWSViews.Views();

                if (parentForm.formChooser.appMode == Chooser.AppMode.UseWSDef)
                {
                    proxyViews.UseDefaultCredentials = true;
                }
                else if (parentForm.formChooser.appMode == Chooser.AppMode.UseWSCreds)
                {
                    proxyViews.UseDefaultCredentials = false;
                    proxyViews.Credentials           = new System.Net.NetworkCredential(parentForm.formChooser.credUsername, parentForm.formChooser.credPassword, parentForm.formChooser.credDomain);
                }
                else if (parentForm.formChooser.appMode == Chooser.AppMode.UseWSOffice365)
                {
                    proxyViews.CookieContainer = SharedStuff.GetAuthCookies(new Uri(url), parentForm.formChooser.credUsername, parentForm.formChooser.credPassword);
                }

                proxyViews.Url = GenUtil.CombineUrls(url, XMLConsts.AsmxSuffix_Views);

                // configure list web service
                SPWSLists.Lists proxyLists = new SPCAMLQueryHelperOnline.SPWSLists.Lists();

                if (parentForm.formChooser.appMode == Chooser.AppMode.UseWSDef)
                {
                    proxyLists.UseDefaultCredentials = true;
                }
                else if (parentForm.formChooser.appMode == Chooser.AppMode.UseWSCreds)
                {
                    proxyLists.UseDefaultCredentials = false;
                    proxyLists.Credentials           = new System.Net.NetworkCredential(parentForm.formChooser.credUsername, parentForm.formChooser.credPassword, parentForm.formChooser.credDomain);
                }
                else if (parentForm.formChooser.appMode == Chooser.AppMode.UseWSOffice365)
                {
                    proxyLists.CookieContainer = SharedStuff.GetAuthCookies(new Uri(url), parentForm.formChooser.credUsername, parentForm.formChooser.credPassword);
                }

                proxyLists.Url = GenUtil.CombineUrls(url, XMLConsts.AsmxSuffix_Lists);

                // get list views
                XElement xViews = proxyViews.GetViewCollection(listName).GetXElement();

                foreach (XElement xView in xViews.Elements(XMLConsts.s + "View"))
                {
                    lstViews.Add(new CustXMLView()
                    {
                        DefaultView = GenUtil.SafeToBool(GenUtil.GetXElemAttrAsString(xView, "DefaultView")),
                        DisplayName = GenUtil.GetXElemAttrAsString(xView, "DisplayName"),
                        Name        = GenUtil.GetXElemAttrAsString(xView, "Name"),
                        Url         = GenUtil.GetXElemAttrAsString(xView, "Url")
                    });
                }

                // get list fields
                XElement xList = proxyLists.GetList(listName).GetXElement();

                foreach (XElement xField in xList.Descendants(XMLConsts.s + "Field"))
                {
                    CustXMLField cXmlField = new CustXMLField();

                    cXmlField.DisplayName = GenUtil.GetXElemAttrAsString(xField, "DisplayName");
                    cXmlField.ID          = GenUtil.GetXElemAttrAsString(xField, "ID");
                    cXmlField.Name        = GenUtil.GetXElemAttrAsString(xField, "Name");
                    cXmlField.Required    = GenUtil.SafeToBool(GenUtil.GetXElemAttrAsString(xField, "Required"));
                    cXmlField.Type        = GenUtil.GetXElemAttrAsString(xField, "Type");

                    if (!GenUtil.IsNull(cXmlField.ID))
                    {
                        lstFields.Add(cXmlField);
                    }
                }
            }
            catch (Exception ex)
            {
                retErr = ex;
            }



            // update gui
            parentForm.Invoke(new MethodInvoker(() =>
            {
                ddlListViews.Items.Clear();
                tvFields.Nodes.Clear();
                btnOpenListDetails.Visible = false;


                if (retErr != null)
                {
                    GenUtil.LogIt(txtStatus, retErr.ToString());
                }
                else
                {
                    GenUtil.LogIt(txtStatus, "OK");


                    // render list views
                    ddlListViews.Items.Insert(0, "None");
                    ddlListViews.SelectedIndex = 0;

                    foreach (CustXMLView v in lstViews)
                    {
                        ddlListViews.Items.Add(v.DisplayName);
                    }


                    // render list fields
                    DataTable dt = new DataTable();

                    dt.Columns.Add("Id", typeof(string));
                    dt.Columns.Add("InternalName", typeof(string));
                    dt.Columns.Add("Required", typeof(string));
                    dt.Columns.Add("Title", typeof(string));
                    dt.Columns.Add("TypeAsString", typeof(string));

                    foreach (CustXMLField cXmlField in lstFields)
                    {
                        DataRow dr = dt.NewRow();

                        dr["Id"]           = cXmlField.ID;
                        dr["InternalName"] = cXmlField.Name;
                        dr["Required"]     = cXmlField.Required.ToString();
                        dr["Title"]        = cXmlField.DisplayName;
                        dr["TypeAsString"] = cXmlField.Type;

                        dt.Rows.Add(dr);


                        TreeNode tn = new TreeNode();

                        if (lnkToggleFieldsName.Text == text_show_internalnames)
                        {
                            tn.Text = string.Format("{0} [{1}]", cXmlField.DisplayName, cXmlField.Name);
                        }
                        else
                        {
                            tn.Text = string.Format("{0} [{1}]", cXmlField.Name, cXmlField.DisplayName);
                        }

                        tn.Name = cXmlField.Name;

                        tvFields.Nodes.Add(tn);
                    }


                    DataView dv         = new DataView(dt);
                    dv.Sort             = "Title";
                    gvFields.DataSource = dv;


                    if (tvFields.Nodes.Count > 0)
                    {
                        tvFields.Sort();
                        tvFields.SelectedNode = tvFields.Nodes[0];
                    }
                }

                btnOpenListDetails.Visible = true;

                // finish action
                toolStripStatusLabel1.Text = "";
                statusStrip1.Refresh();

                picLogoWait.Visible = false;
                picLogoWait.Refresh();
            }));
        }
        /// <summary>
        /// </summary>
        private void bgWorkerSave_DoWork(object sender, DoWorkEventArgs e)
        {
            var errors_found = false;
            var msg          = "";

            var lstSubObjects = new List <SPTree_FolderFileObj>();

            // add files to list
            foreach (string filePath in _lstFilePaths)
            {
                lstSubObjects.Add(new SPTree_FolderFileObj()
                {
                    dtModified   = null,
                    folderLevel  = filePath.ToCharArray().Count(x => x == '/'),
                    treeNodeType = Enums.TreeNodeTypes.FILE,
                    name         = filePath.Substring(filePath.LastIndexOf('/') + 1),
                    url          = filePath,
                    length       = 0
                });
            }

            // for any folders selected, get all the files in those folders, add to list for processing
            foreach (string curServRelFolderPath in _lstFolderPaths)
            {
                if (!SpComHelper.GetListAllFilesFolderLevel(
                        spSiteUrl, spUsername, spPassword, spDomain, isSpOnline,
                        form1.curSPLocationObj.listId.Value, curServRelFolderPath, ref lstSubObjects, out msg))
                {
                    bgWorkerSave.ReportProgress(0, string.Format("Error getting folder sub objects, {0}: {1}", curServRelFolderPath, msg));
                    errors_found = errors_found || true;
                }
            }

            // process all files
            foreach (var curSubObject in lstSubObjects.OrderBy(x => x.folderLevel))
            {
                int i           = 0;
                var error_found = false;
                var filePath    = curSubObject.url;

                var htFieldVals = new Hashtable();

                while (i < gridFields.RowCount)
                {
                    var fieldName = GenUtil.SafeTrim(gridFields.Rows[i].Cells[0].Value);
                    var fieldVal  = GenUtil.SafeTrim(gridFields.Rows[i].Cells[1].Value);

                    if (!GenUtil.IsNull(fieldName))
                    {
                        htFieldVals[fieldName] = fieldVal;
                    }

                    i++;
                }

                if (htFieldVals.Count > 0)
                {
                    if (!SpComHelper.UpdateSharePointFileFields(spSiteUrl, spUsername, spPassword, spDomain, isSpOnline, form1.curSPLocationObj.listId.Value, filePath, htFieldVals, out msg))
                    {
                        bgWorkerSave.ReportProgress(0, string.Format("Error updating file field data, {0}, invalid field name or value: {1}", filePath.Substring(filePath.LastIndexOf('/') + 1), msg));
                        error_found = true;
                    }
                    else
                    {
                        bgWorkerSave.ReportProgress(0, string.Format("File, {0}, Updated Successfully.", filePath.Substring(filePath.LastIndexOf('/') + 1)));
                    }

                    errors_found = errors_found || error_found;
                }
            }

            e.Result = new List <object>()
            {
                errors_found
            };
        }