public async Task <IActionResult> GetConcreteResourcePredicate( [FromQuery] QueryStringParameters queryStringParametersDto) { Parameters parameters = _parametersProcessorService.ProcessParameters(Request.RouteValues, Request.QueryString); string?query = _sparqlFactoryService.GetFinalSelectQueryForPredicate(parameters); if (query != null) { var sparqlResults = await _endpointService.ExecuteSelectSparqlQueryAsync( parameters.RouteParameters.Endpoint, parameters.RouteParameters.Graph, query); if (sparqlResults != null) { PredicateVm predicateVm = _resultFormatterService.FormatSparqlResultToCurieAndLiteralList( parameters.RouteParameters.Predicate, sparqlResults); return(Ok(predicateVm)); } } return(NotFound(new CustomErrorVm() { CustomErrorMessage = "No results were found!", GeneratedQuery = query })); }
/// <summary> /// Builds the URI. /// </summary> /// <param name="hostName">Name of the host.</param> /// <returns></returns> public virtual Uri BuildUri(string hostName) { if (hostName == null) { throw new ArgumentNullException("hostName"); } if (!Validate()) { throw new InvalidOperationException("You cannot build a web service URI with an invalid data query"); } try { var uriSuffix = string.Format("{0}/-/item/v{1}/-/actions/{2}?", hostName.TrimEnd('/'), ApiVersion, ActionName); var uri = string.Format("{0}{1}", uriSuffix, QueryStringParameters.ToQueryString()); return(new Uri(uri)); } catch (Exception ex) { LogFactory.Error("Could not build a URI for the data query", ex); } return(null); }
public IActionResult GetAsync([FromQuery] QueryStringParameters queryParameters) { var rng = new Random(); var columnsMap = new Dictionary <string, Expression <Func <WeatherForecast, object> > >() { ["date"] = v => v.Date, ["temperatureC"] = v => v.TemperatureC, ["summary"] = v => v.Summary }; var list = PagedList <WeatherForecast> .ToPagedList(Enumerable.Range(1, 20).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = rng.Next(-20, 55), Summary = Summaries[rng.Next(Summaries.Length)] }).AsQueryable().Sort(queryParameters.SortBy, columnsMap, queryParameters.IsSortAscending), queryParameters.PageNumber, queryParameters.PageSize); var metadata = new { list.TotalCount, list.PageSize, list.CurrentPage, list.TotalPages, list.HasNext, list.HasPrevious }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); return(Ok(list)); }
public async Task <bool> CreateMasterZone(string zoneName, List <string> masterServers = null) { QueryStringParameters nvc = new QueryStringParameters(); nvc["domain-name"] = zoneName; nvc["zone-type"] = "master"; if (masterServers != null) { if (masterServers.Any()) { foreach (string ipAddress in masterServers) { nvc.Add("ns[]", ipAddress); } } else { nvc["ns[]"] = string.Empty; } } StatusMessage status = await ExecuteGet <StatusMessage>("/dns/register.json", nvc).ConfigureAwait(false); return(status.Status == "Success"); }
public async Task <ActionResult <IEnumerable <RecordResource> > > GetRecords([FromQuery] QueryStringParameters queryParameters) { var columnsMap = new Dictionary <string, Expression <Func <Record, object> > >() { ["patientName"] = v => v.Patient.PatientName, ["id"] = v => v.Id, ["timeOfEntry"] = v => v.TimeOfEntry, ["diseaseName"] = v => v.DiseaseName }; var list = await _recordService.ListAsync(queryParameters, columnsMap); var recordResource = _mapper.Map <IEnumerable <Record>, IEnumerable <RecordResource> >(list); var metadata = new { list.TotalCount, list.PageSize, list.CurrentPage, list.TotalPages, list.HasNext, list.HasPrevious }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); return(Ok(recordResource)); }
private string ApplyQueryStringParametersToSparqlQuery(string query, QueryStringParameters queryStringParameters, string sortAndRegexParameter) { var limit = queryStringParameters.Limit; var offset = queryStringParameters.Offset; var regex = queryStringParameters.Regex; var sort = queryStringParameters.Sort; if (regex != null) { var i = query.LastIndexOf("}", StringComparison.Ordinal); query = $"{query.Substring(0, i)}FILTER regex({sortAndRegexParameter}, \"{regex}\") {query.Substring(i)}"; } if (sort != null) { if (sort.Equals("asc")) { query += $" ORDER BY ({sortAndRegexParameter})"; } if (sort.Equals("desc")) { query += $" ORDER BY DESC ({sortAndRegexParameter})"; } } query += $" LIMIT {limit} OFFSET {offset}"; return(query); }
private Uri BuildUri(string path, QueryStringParameters nvc) { StringBuilder sb = new StringBuilder(); foreach (KeyValuePair <string, string[]> pair in nvc) { if (pair.Value == null) { continue; } foreach (string val in pair.Value) { if (sb.Length > 0) { sb.Append("&"); } sb.Append(pair.Key); sb.Append("="); sb.Append(Uri.EscapeUriString(val)); } } UriBuilder builder = new UriBuilder(EndPoint); builder.Path = path; builder.Query = sb.ToString(); return(builder.Uri); }
public async Task <IActionResult> GetResources([FromQuery] QueryStringParameters queryStringParametersDto) { Parameters parameters = _parametersProcessorService.ProcessParameters(Request.RouteValues, Request.QueryString); string?query = _sparqlFactoryService.GetFinalQuery( _endpointService.GetEntryResourceQuery(parameters.RouteParameters.Endpoint, parameters.RouteParameters.Graph), parameters); if (query != null) { var sparqlResults = await _endpointService.ExecuteSelectSparqlQueryAsync(parameters.RouteParameters.Endpoint, parameters.RouteParameters.Graph, query); if (sparqlResults != null) { CurieVm curiesVm = _resultFormatterService.FormatSparqlResultToCurieList(sparqlResults); return(Ok(curiesVm)); } } return(NotFound(new CustomErrorVm() { CustomErrorMessage = $"No results were found! Check endpoint configuration at {UrlHelperClass.GetEndpointUrl(Request.GetEncodedUrl())}.", GeneratedQuery = query })); }
/// <summary> /// Initialize the url of the API. /// </summary> /// <param name="resources"> A list of API resources. </param> /// <param name="parameters"> A list of parameters. </param> /// <returns> A <see cref="UriBuilder" /> object representing the url. </returns> public static UriBuilder BuildApiUrl(Collection <Resource> resources, QueryStringParameters parameters) { StringBuilder sb = new StringBuilder(); sb.Append(Constants.ApiBaseUrl); foreach (Resource resource in resources) { if (string.IsNullOrEmpty(resource.Name) == false) { sb.Append("/"); sb.Append(resource.Name); if (string.IsNullOrEmpty(resource.Identifier) == false) { sb.Append("/"); sb.Append(resource.Identifier); } } } UriBuilder uri = new UriBuilder(sb.ToString()); if (parameters != null) { return(parameters.AppendToUri(uri)); } else { return(uri); } }
public BillableActivityControllerTests() { //get Billable Activities test data _billableActivities = BillableActivitiesData.getTestBillableActivities(); //AutoMapper Configuration var profiles = new AutoMapperProfiles(); var configuration = new MapperConfiguration(config => config.AddProfile(profiles)); _mapper = new Mapper(configuration); //Configure Logger Mock var _loggerMock = new Mock <ILogger <BillableActivitiesController> >(); _logger = _loggerMock.Object; //Mock Repo initialization _mockRepository = new Mock <IGenericRepository <BillableActivity> >(); //Create Custom ControllerContext and add it to Controller for logging in the Controller in case of error //_controller.ControllerContext = new ControllerContextModel(); //QueryStringParameters for paging parameters = new QueryStringParameters(); parameters.pageNumber = 1; parameters.pageSize = 10; }
public void SetType(string filter) { if (filter != null) { QueryStringParameters.Add("type", filter.ToLower()); } }
public async void GetAllLegalCasesAsync_Returns_LegalCases_Paged(QueryStringParameters parameters) { //get the expected LegalCases IEnumerable <LegalCase> expectedLegalCases = _legalCases .OrderBy(lc => lc.Client_Id) .Skip((parameters.pageNumber - 1) * parameters.pageSize) .Take(parameters.pageSize); IEnumerable <LegalCaseDTO> expectedLegalCasesDTO = _mapper.Map <IEnumerable <LegalCaseDTO> >(expectedLegalCases); //configure the Repo return _mockRepository.Setup(repo => repo.GetAllPagedAsync(lc => lc.Client_Id, parameters)).ReturnsAsync(expectedLegalCases); //call the controller method var actionResult = await _controller.GetAllLegalCasesAsync(parameters); //Get the LegalCases form the ActionResult returned var okObjectResult = Assert.IsType <OkObjectResult>(actionResult.Result); IEnumerable <LegalCaseDTO> actualLegalCasesDTO = okObjectResult.Value as IEnumerable <LegalCaseDTO>; int?statusCode = okObjectResult.StatusCode; //Assertions Assert.Equal(200, statusCode); Assert.IsType <List <LegalCaseDTO> >(actualLegalCasesDTO); //use FluentAssertions to compare Collections of Reference types actualLegalCasesDTO.Should().BeEquivalentTo(expectedLegalCasesDTO, options => options.ComparingByMembers <LegalCaseDTO>()); }
public async Task <bool> RecordsAlterA(string domainName, long recordId, string host, int ttl, IPAddress address) { QueryStringParameters nvc = new QueryStringParameters(); nvc["domain-name"] = domainName; nvc["record-id"] = recordId.ToString(); nvc["host"] = host; nvc["ttl"] = ttl.ToString(); nvc["record"] = address.ToString(); if (address.AddressFamily == AddressFamily.InterNetwork) { nvc["record-type"] = RecordType.A.ToString(); } else if (address.AddressFamily == AddressFamily.InterNetworkV6) { nvc["record-type"] = RecordType.AAAA.ToString(); } else { throw new ArgumentException("Address must be IPv4 or IPv6", nameof(address)); } StatusMessage status = await ExecuteGet <StatusMessage>("/dns/mod-record.json", nvc).ConfigureAwait(false); if (status.Status == "Failed") { throw new Exception(status.StatusDescription); } return(status.Status == "Success"); }
/// <summary> /// Initialize the url of the API. /// </summary> /// <param name="identifier"> The identifier for a member. </param> /// <param name="resourceName"> The name of the resource. </param> /// <param name="parameters"> A list of parameters. </param> /// <returns> A <see cref="UriBuilder" /> object representing the url. </returns> public static UriBuilder BuildApiUrlForMember(string identifier, string resourceName, QueryStringParameters parameters) { return(BuildApiUrlForMember(identifier, new Resource { Name = resourceName }, parameters)); }
protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e) { //there is no parent category to display for Top Level items - BD if (ddlCategory.SelectedValue == "-1") { lblShowParent.Visible = false; chkShowParent.Visible = false; chkShowParentDescription.Visible = false; lblShowParentDescription.Visible = false; } else { lblShowParent.Visible = true; chkShowParent.Visible = true; chkShowParentDescription.Visible = true; lblShowParentDescription.Visible = true; } var qsp = new QueryStringParameters(); qsp.ClearKeys(); qsp.Add("ctl", Utility.AdminContainer); qsp.Add("mid", ModuleId.ToString(CultureInfo.InvariantCulture)); qsp.Add("adminType", "categorysort"); qsp.Add("itemid", ddlCategory.SelectedValue); lnkSortCategory.NavigateUrl = BuildSortUrl(); }
public void BuildApiUrlTest() { ILinkedInAuthorization authorization = new LinkedInAuthorizationMock(); LinkedInService_Accessor target = new LinkedInService_Accessor(authorization); Collection <Resource> resources = new Collection <Resource>(); resources.Add(new Resource { Name = Constants.PeopleResourceName, Identifier = Constants.CurrentUserIdentifier }); resources.Add(new Resource { Name = Constants.ResourceName }); QueryStringParameters parameters = new QueryStringParameters(); parameters.Add(Constants.QueryStringParam1, Constants.QueryStringValue1); parameters.Add(Constants.QueryStringParam2, Constants.QueryStringValue2); UriBuilder expected = new UriBuilder("http://api.linkedin.com/v1/people/~/resource?param1=value1¶m2=value2"); UriBuilder actual = UriUtility.BuildApiUrl(resources, parameters); Assert.AreEqual(expected, actual); }
protected virtual T ExecutePostRequest <T, TBody>(string relativeUrl, QueryStringParameters parameters = null, TBody body = null, IAuthenticationData authentication = null) where TBody : class { var task = Task.Run(() => ExecutePostRequestAsync <T, TBody>(relativeUrl, parameters, body, authentication)); task.Wait(); return(task.Result); }
protected virtual T ExecuteGetRequest <T>(string relativeUrl, QueryStringParameters parameters = null, IAuthenticationData authentication = null) { var task = Task.Run(() => ExecuteGetRequestAsync <T>(relativeUrl, parameters, authentication)); task.Wait(); return(task.Result); }
public void AddWhhenNameIsNull() { var queryStringParameters = new QueryStringParameters(); var exception = Assert.Throws <ArgumentNullException>(() => queryStringParameters.Add(null)); Assert.AreEqual("Value cannot be null.\r\nParameter name: name", exception.Message); }
public async Task <List <ZoneUpdateStatus> > GetUpdateStatus(string domainName) { QueryStringParameters nvc = new QueryStringParameters(); nvc["domain-name"] = domainName; return(await ExecuteGet <List <ZoneUpdateStatus> >("/dns/update-status.json", nvc).ConfigureAwait(false)); }
public async Task <bool> IsZoneUpdated(string domainName) { QueryStringParameters nvc = new QueryStringParameters(); nvc["domain-name"] = domainName; return(await ExecuteGet <bool>("/dns/is-updated.json", nvc).ConfigureAwait(false)); }
[HttpGet("getOrderedTasks")] // new QuaryStringParameters { Orderby = "your ordering query" } public IActionResult GetOrderedTasks(QueryStringParameters taskParameters) { if (taskParameters != null) { var res = _taskService.GetOrderedTasks(taskParameters); return(Ok(res)); } return(BadRequest(new { message = "Couldnt order tasks" })); }
public void RemoveQueryStringParameter(string key) { if (!QueryStringParameters.ContainsKey(key)) { return; } QueryStringParameters.Remove(key); }
public void AddWhenValueAndValueIsNull() { const string NAME = "testName"; var queryStringParameters = new QueryStringParameters(); var exception = Assert.Throws <ArgumentNullException>(() => queryStringParameters.Add(NAME, null)); Assert.AreEqual("Value cannot be null.\r\nParameter name: value", exception.Message); }
public void LoadFromQueryStringWriteLogTrue() { QueryStringParameters p = new QueryStringParameters(); NameValueCollection col = new NameValueCollection(); col.Add("log", "true"); p.LoadFromQueryString(col); UnitTestAssert.IsTrue(p.WriteLog); }
public void AddSearchParam(string key, object value) { if (string.IsNullOrEmpty(key) || value == null) { return; } QueryStringParameters.Add(key, value); }
private string GetQueryString() { if (QueryStringParameters.Count > 0) { return("?" + string.Join("&", QueryStringParameters.Select(kvp => $"{kvp.Key.ToLower()}={kvp.Value}"))); } return(string.Empty); }
public async Task <IEnumerable <Passenger> > GetAllAsync(QueryStringParameters queryStringParameters) { IQueryable <Passenger> passengersIq; // search if (!string.IsNullOrEmpty(queryStringParameters.SearchString)) { var search = queryStringParameters.SearchString; passengersIq = _context.Passengers.Where(p => p.PassportNumber == search || p.Citizenship == search || p.Surname == search || p.Name == search) .Include(passenger => passenger.Booking) .ThenInclude(booking => booking.Customer) .Include(passenger => passenger.Seat) .AsNoTracking(); } else { passengersIq = from b in _context.Passengers .Include(passenger => passenger.Booking) .ThenInclude(booking => booking.Customer) .Include(passenger => passenger.Seat) .AsNoTracking() select b; } // page IEnumerable <Passenger> passengers = await PaginatedList <Passenger> .CreateAsync(passengersIq, queryStringParameters.PageNumber, queryStringParameters.PageSize); // sort string not set if (string.IsNullOrEmpty(queryStringParameters.SortString)) { return(passengers); } // sort var sort = queryStringParameters.SortString; var count = ((PaginatedList <Passenger>)passengers).ItemCount; var index = ((PaginatedList <Passenger>)passengers).PageIndex; var size = ((PaginatedList <Passenger>)passengers).PageSize; passengers = sort switch { "name_desc" => passengers.OrderByDescending(p => p.Name), "surname" => passengers.OrderBy(p => p.Surname), "surname_desc" => passengers.OrderByDescending(p => p.Surname), "passport" => passengers.OrderBy(p => p.PassportNumber), "passport_desc" => passengers.OrderByDescending(p => p.PassportNumber), _ => passengers.OrderBy(p => p.Name) }; return(PaginatedList <Passenger> .ParsePaginatedList(passengers, count, index, size)); }
private async Task <string> ExecuteGetAsString(string url, QueryStringParameters nvc) { AddAuthentication(nvc); Uri uri = BuildUri(url, nvc); HttpResponseMessage resp = await _client.GetAsync(uri).ConfigureAwait(false); return(await resp.Content.ReadAsStringAsync().ConfigureAwait(false)); }
public void LoadFromQueryStringFilter() { QueryStringParameters p = new QueryStringParameters(); NameValueCollection col = new NameValueCollection(); col.Add("filter", "true"); p.LoadFromQueryString(col); UnitTestAssert.IsTrue(p.Filter); }
public void BuildApiUrlForMemberTest() { ILinkedInAuthorization authorization = new LinkedInAuthorizationMock(); LinkedInService_Accessor target = new LinkedInService_Accessor(authorization); string identifier = Constants.CurrentUserIdentifier; string resourceName = Constants.ResourceName; QueryStringParameters parameters = new QueryStringParameters(); UriBuilder expected = new UriBuilder("http://api.linkedin.com/v1/people/~/resource"); UriBuilder actual = UriUtility.BuildApiUrlForMember(identifier, resourceName, parameters); Assert.AreEqual(expected, actual); }
public void BuildApiUrlForCurrentUserTest() { ILinkedInAuthorization authorization = new LinkedInAuthorizationMock(); LinkedInService_Accessor target = new LinkedInService_Accessor(authorization); QueryStringParameters parameters = new QueryStringParameters(); parameters.Add(Constants.QueryStringParam1, Constants.QueryStringValue1); UriBuilder expected = new UriBuilder("http://api.linkedin.com/v1/people/~"); expected.Query = string.Format("{0}={1}", Constants.QueryStringParam1, Constants.QueryStringValue1); UriBuilder actual = UriUtility.BuildApiUrlForCurrentUser(parameters); Assert.AreEqual(expected, actual); }
public void BuildApiUrlTest() { ILinkedInAuthorization authorization = new LinkedInAuthorizationMock(); LinkedInService_Accessor target = new LinkedInService_Accessor(authorization); Collection<Resource> resources = new Collection<Resource>(); resources.Add(new Resource { Name = Constants.PeopleResourceName, Identifier = Constants.CurrentUserIdentifier }); resources.Add(new Resource {Name = Constants.ResourceName}); QueryStringParameters parameters = new QueryStringParameters(); parameters.Add(Constants.QueryStringParam1, Constants.QueryStringValue1); parameters.Add(Constants.QueryStringParam2, Constants.QueryStringValue2); UriBuilder expected = new UriBuilder("http://api.linkedin.com/v1/people/~/resource?param1=value1¶m2=value2"); UriBuilder actual = UriUtility.BuildApiUrl(resources, parameters); Assert.AreEqual(expected, actual); }
private string BuildSortUrl() { var qsp = new QueryStringParameters(); qsp.ClearKeys(); qsp.Add("ctl", Utility.AdminContainer); qsp.Add("mid", ModuleId.ToString(CultureInfo.InvariantCulture)); qsp.Add("adminType", "categorysort"); qsp.Add("windowClose", "true"); qsp.Add("itemid", ddlCategory.SelectedValue); return DotNetNuke.Common.Globals.NavigateURL(TabId, "", qsp.ToString()); }
private void BindData() { int itemId = Convert.ToInt32(cboItemType.SelectedValue, CultureInfo.InvariantCulture); if (CategoryId > -1) { //user clicked on a subcategory. itemId = CategoryId; } //set the approval status ID to approved by default, if we're using approvals look for the selected value int approvalStatusId = ApprovalStatus.Approved.GetId(); if (UseApprovals) { approvalStatusId = Convert.ToInt32(cboWorkflow.SelectedValue, CultureInfo.InvariantCulture); } var qsp = new QueryStringParameters(); DataSet ds; if (txtArticleSearch.Text.Trim() != string.Empty) { var objSecurity = new DotNetNuke.Security.PortalSecurity(); string searchKey = objSecurity.InputFilter(txtArticleSearch.Text.Trim(), DotNetNuke.Security.PortalSecurity.FilterFlag.NoSQL); // ds = itemId == -1 ? DataProvider.Instance().GetAdminItemListingSearchKey(TopLevelCategoryItemType.Category.GetId(), ItemType.Category.GetId(), Util.RelationshipType.CategoryToTopLevelCategory.GetId(), Util.RelationshipType.ItemToRelatedCategory.GetId(), approvalStatusId, " vi.createddate desc ", searchKey, PortalId) : DataProvider.Instance().GetAdminItemListingSearchKey(itemId, ItemType.Category.GetId(), Util.RelationshipType.ItemToParentCategory.GetId(), Util.RelationshipType.ItemToRelatedCategory.GetId(), approvalStatusId, " vi.createddate desc ", searchKey, PortalId); } else { ds = itemId == -1 ? DataProvider.Instance().GetAdminItemListing(TopLevelCategoryItemType.Category.GetId(), ItemType.Category.GetId(), Util.RelationshipType.CategoryToTopLevelCategory.GetId(), approvalStatusId, PortalId) : DataProvider.Instance().GetAdminItemListing(itemId, ItemType.Category.GetId(), Util.RelationshipType.ItemToParentCategory.GetId(), Util.RelationshipType.ItemToRelatedCategory.GetId(), approvalStatusId, PortalId); } DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0) { var t = new Table { Width = Unit.Percentage(100), CssClass = "Normal", CellPadding = 4, CellSpacing = 0, GridLines = GridLines.Horizontal, BorderColor = System.Drawing.Color.Gray, BorderStyle = BorderStyle.Solid, BorderWidth = Unit.Pixel(1) }; var row = new TableRow { CssClass = "listing_table_head_row" }; t.Rows.Add(row); var cell = new TableCell(); row.Cells.Add(cell); cell.Text = Localization.GetString("ID", LocalResourceFile); cell = new TableCell(); row.Cells.Add(cell); cell.Text = Localization.GetString("Name", LocalResourceFile); cell = new TableCell(); row.Cells.Add(cell); cell.Text = Localization.GetString("Description", LocalResourceFile); cell = new TableCell(); row.Cells.Add(cell); cell.Text = " "; cell = new TableCell(); row.Cells.Add(cell); cell.Text = " "; cell = new TableCell(); row.Cells.Add(cell); cell.Text = " "; cell = new TableCell(); row.Cells.Add(cell); cell.Text = " "; cell = new TableCell(); row.Cells.Add(cell); cell.Text = " "; for (int i = 0; i < dt.Rows.Count; i++) { DataRow r = dt.Rows[i]; row = new TableRow { CssClass = i % 2 == 0 ? "adminItemSearchDarkRow" : "adminItemSearchLightRow", VerticalAlign = VerticalAlign.Top }; t.Rows.Add(row); cell = new TableCell(); row.Cells.Add(cell); cell.Text = r["ItemID"].ToString(); cell = new TableCell(); row.Cells.Add(cell); cell.Text = r["Name"].ToString(); cell = new TableCell(); row.Cells.Add(cell); cell.Text = HtmlUtils.Shorten(HtmlUtils.Clean(r["Description"].ToString(), true), 200, string.Empty) + " "; cell = new TableCell(); row.Cells.Add(cell); //check if the category has any sub categories, if not don't display link var hl = new HyperLink(); if (Convert.ToInt32(r["ChildCount"], CultureInfo.InvariantCulture) > 0) { cell.Controls.Add(hl); qsp.ClearKeys(); qsp.Add("ctl", Utility.AdminContainer); qsp.Add("mid", ModuleId.ToString(CultureInfo.InvariantCulture)); qsp.Add("adminType", "categorylist"); qsp.Add("itemId", r["ItemId"]); //qsp.Add("category", r["Name"]); qsp.Add("parentId", itemId); if (TopLevelId == -1) { qsp.Add("topLevelId", cboItemType.SelectedValue); } else { qsp.Add("topLevelId", TopLevelId); } hl.NavigateUrl = BuildLinkUrl(qsp.ToString()); hl.Text = Localization.GetString("SubCategories", LocalResourceFile); } else { var l1 = new Label { Text = " <br /> " }; cell.Controls.Add(l1); } //Add the CategorySort link cell = new TableCell(); row.Cells.Add(cell); hl = new HyperLink(); cell.Controls.Add(hl); qsp.ClearKeys(); qsp.Add("ctl", Utility.AdminContainer); qsp.Add("mid", ModuleId.ToString(CultureInfo.InvariantCulture)); qsp.Add("adminType", "categorysort"); qsp.Add("itemid", r["ItemId"]); hl.NavigateUrl = BuildLinkUrl(qsp.ToString()); hl.Text = Localization.GetString("CategorySort", LocalResourceFile); cell = new TableCell(); row.Cells.Add(cell); cell = new TableCell(); row.Cells.Add(cell); hl = new HyperLink(); cell.Controls.Add(hl); qsp.ClearKeys(); qsp.Add("ctl", Utility.AdminContainer); qsp.Add("mid", ModuleId.ToString(CultureInfo.InvariantCulture)); qsp.Add("adminType", "versionslist"); qsp.Add("itemid", r["ItemId"]); hl.NavigateUrl = BuildLinkUrl(qsp.ToString()); hl.Text = Localization.GetString("Versions", LocalSharedResourceFile); cell = new TableCell(); row.Cells.Add(cell); hl = new HyperLink(); cell.Controls.Add(hl); qsp.ClearKeys(); qsp.Add("ctl", Utility.AdminContainer); qsp.Add("mid", ModuleId.ToString(CultureInfo.InvariantCulture)); qsp.Add("adminType", "categoryEdit"); qsp.Add("versionid", r["ItemVersionId"]); //qsp.Add("modid", r["ModuleId"]); qsp.Add("parentId", itemId); if (TopLevelId == -1) { qsp.Add("topLevelId", cboItemType.SelectedValue); } else { qsp.Add("topLevelId", TopLevelId); } hl.NavigateUrl = BuildLinkUrl(qsp.ToString()); hl.Text = Localization.GetString("Edit", LocalResourceFile); } phList.Controls.Add(t); if (!cboItemType.SelectedValue.Equals("-1")) { lblMessage.Text = Localization.GetString("SubCategoriesFor", LocalResourceFile) + " " + cboItemType.SelectedItem; } } else { if (!cboItemType.SelectedValue.Equals("-1")) { lblMessage.Text = Localization.GetString("NoSubcategoriesFor", LocalResourceFile) + " " + cboItemType.SelectedItem; } } }
protected string GetVersionEditUrl(object row) { var view = (DataRowView) row; var qsp = new QueryStringParameters(); qsp.ClearKeys(); qsp.Add("ctl", Utility.AdminContainer); qsp.Add("mid", ModuleId.ToString(CultureInfo.InvariantCulture)); qsp.Add("adminType", view["adminType"]); qsp.Add("versionid", view["ItemVersionId"]); //todo: why would we need modid on the URL for editing a version? //qsp.Add("modid", view["ModuleId"]); return BuildLinkUrl(qsp.ToString()); }