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."; }
/// <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); }
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(); }
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); } } } }
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(); }
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(); }
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(); }
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()); }
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); } } } }
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()); }