Beispiel #1
0
        public void ShouldGetItems()
        {
            var svc = new ListsSoapClient();

            svc.ClientCredentials.Windows.ClientCredential = new System.Net.NetworkCredential(_appSettings.Username, _appSettings.Password, "SSW2000");

            XElement queryOptions = XElement.Parse(@"<QueryOptions/>");

            var xx = svc.GetListItems("Pages", "", null, null, null, queryOptions, null);

            Console.Out.WriteLine(xx.ToString());
            xx.Should().NotBeNull();
        }
Beispiel #2
0
        public List <MediaModel> MediaSearch(string name,
                                             DateTime?dateFrom,
                                             DateTime?dateTo)
        {
            var      result = new List <MediaModel>();
            XElement listItems;
            var      queryXML = new StringBuilder();

            queryXML.Append("<Query><Where>");

            if (!string.IsNullOrEmpty(name))
            {
                queryXML.Append("<Contains><FieldRef Name='Title'/><Value Type='Text'>");
                queryXML.Append(name);
                queryXML.Append("</Value></Contains>");
            }

            if (dateFrom.HasValue)
            {
                queryXML.Append("<Geq><FieldRef Name='ImageCreateDate'/><Value Type='DateTime'>");
                queryXML.Append(dateFrom.ToString());
                queryXML.Append("</Value></Geq>");
            }

            if (dateTo.HasValue)
            {
                queryXML.Append("<Lt><FieldRef Name='ImageCreateDate'/><Value Type='DateTime'>");
                queryXML.Append(dateTo.ToString());
                queryXML.Append("</Value></Lt>");
            }

            queryXML.Append("</Where></Query>");

            var servicePath = string.Format("{0}/_vti_bin/lists.asmx",
                                            IntegrationHelper.SPOperationURL);
            var mediaPath = Globals.GetSetting("SPMediaPath");

            string viewFieldsXml =
                @"<ViewFields>
						<FieldRef Name='Title'/>
						<FieldRef Name='DocIcon'/>
						<FieldRef Name='EncodedAbsUrl'/>
						<FieldRef Name='CreatedDate'/>
					</ViewFields>"                    ;

            string queryOptionsXml =
                "<QueryOptions>" +
                "<IncludeMandatoryColumns>TRUE</IncludeMandatoryColumns>" +
                "<DateInUtc>TRUE</DateInUtc>" +
                "</QueryOptions>";
            var endPoint = new EndpointAddress(servicePath);
            var binding  = GetSharepointBinding();

            string userWebConf = ConfigurationManager.AppSettings["CyberArk:SPServiceAccount_login"];
            string user        = userWebConf.Split('|')[0];
            string password    = PasswordStorage.GetPasswordStorage().GetPassword(userWebConf);

            using (var factory = new ChannelFactory <ListsSoap>(binding, endPoint))
            {
                using (var proxy = new ListsSoapClient(binding, endPoint))
                {
                    if (proxy.ClientCredentials != null)
                    {
                        proxy.ClientCredentials.Windows.ClientCredential          = CredentialCache.DefaultNetworkCredentials;
                        proxy.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;
                        proxy.Endpoint.Address = endPoint;
                        proxy.ClientCredentials.UserName.UserName = user;
                        proxy.ClientCredentials.UserName.Password = password;
                    }

                    listItems = proxy.GetListItems(
                        mediaPath,
                        null,
                        XElement.Parse(queryXML.ToString()),
                        XElement.Parse(viewFieldsXml),
                        null,
                        XElement.Parse(queryOptionsXml),
                        null);
                }
            }

            var responseDocument = new XmlDocument();

            responseDocument.LoadXml(listItems.ToString());
            XmlNodeList elementList = responseDocument.GetElementsByTagName("z:row");

            foreach (XmlNode element in elementList)
            {
                result.Add(new MediaModel()
                {
                    MediaId  = -1,
                    Name     = GetXMLStringValue(element.Attributes["ows_Title"]),
                    Content  = GetXMLStringValue(element.Attributes["ows__Comments"]),
                    Year     = GetXMLIntValue(element.Attributes["ows_Created_x0020_Date"]),
                    Location = GetXMLStringValue(element.Attributes["ows_Keywords"]),
                    MediaUrl = GetXMLStringValue(element.Attributes["ows_EncodedAbsUrl"]),
                });
            }

            return(result);
        }