Exemplo n.º 1
0
        private void btnInitialize_Click(object sender, EventArgs e)
        {
            var server = tbServer.Text;
            var pos    = server.IndexOf(':');
            int port;

            if (pos >= 0 && int.TryParse(server.Substring(pos + 1), out port))
            {
                server = server.Substring(0, pos);
            }
            else
            {
                port = 80;
            }

            var uri = new SDataUri
            {
                Scheme = cbProtocol.Text,
                Host   = server,
                Port   = port
            };

            uri.AppendPath(tbVirtualDirectory.Text, tbApplication.Text, tbContract.Text, tbDataSet.Text);

            Client.Uri      = uri.ToString();
            Client.UserName = tbUserName.Text;
            Client.Password = tbPassword.Text;

            StatusLabel.Text = "SData client initialized.";
        }
Exemplo n.º 2
0
        /// <summary>
        /// Adds a url to the batch for processing
        /// </summary>
        /// <param name="item">url for batch item</param>
        /// <returns>True if an appropriate pending batch operation was found</returns>
        public bool AddToBatch(SDataBatchRequestItem item)
        {
            Guard.ArgumentNotNull(item, "item");

            var uri = new SDataUri(item.Url)
            {
                CollectionPredicate = null,
                Query = null
            };

            if (uri.PathSegments.Length > 4)
            {
                uri.TrimRange(4, uri.PathSegments.Length - 4);
            }

            uri.AppendPath("$batch");
            var baseUri = uri.ToString();
            var request = _requests.LastOrDefault(x => string.Equals(x.ToString(), baseUri, StringComparison.InvariantCultureIgnoreCase));

            if (request != null)
            {
                request.Items.Add(item);
                return(true);
            }

            return(false);
        }
Exemplo n.º 3
0
        private void FormatURL()
        {
            try
            {
                var server = tbServer.Text;
                var pos    = server.IndexOf(':');
                var uri    = new SDataUri();
                int port;

                if (pos >= 0 && int.TryParse(server.Substring(pos + 1), out port))
                {
                    server   = server.Substring(0, pos);
                    uri.Port = port;
                }

                uri.Scheme         = cbProtocol.Text;
                uri.Host           = server;
                uri.Server         = tbVirtualDirectory.Text;
                uri.Product        = tbApplication.Text;
                uri.Contract       = tbContract.Text;
                uri.CompanyDataset = tbDataSet.Text;

                tbURL.Text = uri.ToString();
            }
            catch (UriFormatException)
            {
            }
        }
 private string buildId(SDataUri uri, string p)
 {
     if (!uri.HasCollectionPredicate)
     {
         return(uri.FullPath + "('" + p + "')");
     }
     return(uri.ToString());
 }
        private void UpdateUrl()
        {
            var uri = new SDataUri(Client.Uri);

            if (!string.IsNullOrEmpty(tbTemplateResourceKind.Text))
            {
                uri.AppendPath(tbTemplateResourceKind.Text);
            }
            uri.AppendPath("$template");
            tbTemplateURL.Text = uri.ToString();
        }
        private void UpdateUrl()
        {
            var uri = new SDataUri(Client.Uri)
            {
                StartIndex = (int)numStartIndex.Value,
                Count      = (int)numCount.Value
            };

            if (!string.IsNullOrEmpty(tbCollectionResourceKind.Text))
            {
                uri.AppendPath(tbCollectionResourceKind.Text);
            }
            tbCollectionURL.Text = uri.ToString();
        }
Exemplo n.º 7
0
        private void HandlePaging(IRequest request, Feed <FeedEntry> result, string[] ids)
        {
            SDataUri baseUri    = request.Uri;
            int      max        = ids.Length;
            long     startIndex = baseUri.StartIndex == 0 ? 1 : baseUri.StartIndex;

            result.TotalResults = max;
            result.StartIndex   = request.Uri.StartIndex == 0 ? 1 : request.Uri.StartIndex;
            result.ItemsPerPage = (int?)request.Uri.Count ?? max;

            FeedLink link;

            if (request.Uri.Count != null)
            {
                long count = (long)request.Uri.Count;
                if (count > 0)
                {
                    SDataUri uri = new SDataUri(baseUri);
                    uri.StartIndex = 1;
                    link           = new FeedLink(uri.ToString(), LinkType.First, MediaType.Atom, "First Page");
                    result.Links.Add(link);

                    uri            = new SDataUri(baseUri);
                    uri.StartIndex = max % count == 0 ? max - count + 1 : ((max / count) * count) + 1;
                    link           = new FeedLink(uri.ToString(), LinkType.Last, MediaType.Atom, "Last Page");
                    result.Links.Add(link);


                    if (startIndex + count < max)
                    {
                        uri            = new SDataUri(baseUri);
                        uri.StartIndex = startIndex + count;
                        link           = new FeedLink(uri.ToString(), LinkType.Next, MediaType.Atom, "Next Page");
                        result.Links.Add(link);
                    }
                    if (startIndex > 1) //Startindex is 1-based
                    {
                        uri            = new SDataUri(baseUri);
                        uri.StartIndex = Math.Max(1, startIndex - count);
                        link           = new FeedLink(uri.ToString(), LinkType.Previous, MediaType.Atom, "Previous Page");
                        result.Links.Add(link);
                    }
                }
            }
        }
Exemplo n.º 8
0
        private void UpdateUrl()
        {
            var uri = new SDataUri(Client.Uri);

            if (!string.IsNullOrEmpty(tbSingleResourceKind.Text))
            {
                var selector = tbSingleResourceSelector.Text;
                if (!string.IsNullOrEmpty(selector))
                {
                    selector = SDataUri.FormatConstant(selector);
                }
                uri.AppendPath(new UriPathSegment(tbSingleResourceKind.Text, selector));
            }
            if (!string.IsNullOrEmpty(tbSingleResourceInclude.Text))
            {
                uri.Include = tbSingleResourceInclude.Text;
            }
            tbSingleURL.Text = uri.ToString();
        }
Exemplo n.º 9
0
        private void FormatUrl()
        {
            var server = tbServer.Text;
            var pos    = server.IndexOf(':');
            var uri    = new SDataUri();
            int port;

            if (pos >= 0 && int.TryParse(server.Substring(pos + 1), out port))
            {
                server   = server.Substring(0, pos);
                uri.Port = port;
            }

            uri.Scheme = cbProtocol.Text;
            uri.Host   = server;
            uri.AppendPath(tbVirtualDirectory.Text, tbApplication.Text, tbContract.Text, tbDataSet.Text);

            tbURL.Text = uri.ToString();
        }
Exemplo n.º 10
0
        private void UpdateUrl()
        {
            var uri = new SDataUri(Client.Uri);

            if (!string.IsNullOrEmpty(tbRPResourceKind.Text))
            {
                var selector = tbRPResourceSelector.Text;
                if (!string.IsNullOrEmpty(selector))
                {
                    selector = SDataUri.FormatConstant(selector);
                }
                uri.AppendPath(new UriPathSegment(tbRPResourceKind.Text, selector));
            }
            if (lbProperties.Items.Count > 0)
            {
                uri.AppendPath(lbProperties.Items.Cast <string>().ToArray());
            }
            tbResourcePropertiesURL.Text = uri.ToString();
        }
Exemplo n.º 11
0
        public void Appending_Segments_To_Specific_Service_Urls_Test()
        {
            var uri = new SDataUri("http://test.com/sdata/-/-/-/resource/$service/name");

            uri.AppendPath("test");
            Assert.AreEqual("resource", uri.CollectionType);
            Assert.AreEqual("name", uri.ServiceMethod);
            Assert.AreEqual("-/-/-/resource/$service/name/test", uri.DirectPath);
            Assert.AreEqual("http://test.com/sdata/-/-/-/resource/$service/name/test", uri.ToString());
        }
Exemplo n.º 12
0
        private void HandlePaging(IRequest request, Feed<FeedEntry> result, string[] ids)
        {
            SDataUri baseUri = request.Uri;
            int max = ids.Length;
            long startIndex = baseUri.StartIndex == 0 ? 1 : baseUri.StartIndex;
            result.TotalResults = max;
            result.StartIndex = request.Uri.StartIndex == 0 ? 1 : request.Uri.StartIndex;
            result.ItemsPerPage = (int?)request.Uri.Count ?? max;

            FeedLink link;

            if (request.Uri.Count != null)
            {
                long count = (long)request.Uri.Count;
                if (count > 0)
                {
                    SDataUri uri = new SDataUri(baseUri);
                    uri.StartIndex = 1;
                    link = new FeedLink(uri.ToString(), LinkType.First, MediaType.Atom, "First Page");
                    result.Links.Add(link);

                    uri = new SDataUri(baseUri);
                    uri.StartIndex = max % count == 0 ? max - count + 1 : ((max / count) * count) + 1;
                    link = new FeedLink(uri.ToString(), LinkType.Last, MediaType.Atom, "Last Page");
                    result.Links.Add(link);

                    if (startIndex + count < max)
                    {
                        uri = new SDataUri(baseUri);
                        uri.StartIndex = startIndex + count;
                        link = new FeedLink(uri.ToString(), LinkType.Next, MediaType.Atom, "Next Page");
                        result.Links.Add(link);
                    }
                    if (startIndex > 1) //Startindex is 1-based
                    {
                        uri = new SDataUri(baseUri);
                        uri.StartIndex = Math.Max(1, startIndex - count);
                        link = new FeedLink(uri.ToString(), LinkType.Previous, MediaType.Atom, "Previous Page");
                        result.Links.Add(link);
                    }
                }
            }
        }
Exemplo n.º 13
0
        public void Appending_Segments_To_Specific_Service_Urls_Test()
        {
            var uri = new SDataUri("http://test.com/sdata/-/-/-/resource/$service/name");

            uri.AppendPath("test");
            Assert.AreEqual("resource", uri.GetPathSegment(4).Text);
            Assert.AreEqual("name", uri.GetPathSegment(6).Text);
            Assert.AreEqual("sdata/-/-/-/resource/$service/name/test", uri.DirectPath);
            Assert.AreEqual("http://test.com/sdata/-/-/-/resource/$service/name/test", uri.ToString());
        }