예제 #1
0
        public async Task <IEnumerable <SearchUserResult> > FindUsers(string query, Brand brand, OrganizationGroup orgGroup, AmSpaceUserStatus status, string domain, string identityNumber)
        {
            var url = new UriBuilder(Endpoints.SearchUsersEndpoint);

            url.AddQuery("query", query);
            if (status != AmSpaceUserStatus.ANY)
            {
                url.AddQuery("status", ((int)status).ToString());
            }
            url.AddQueryNotNull("brand", brand?.Id);
            url.AddQueryNotNull("organization_group", orgGroup?.Id);
            url.AddQueryNotNull("domain", domain);
            url.AddQueryNotNull("person_legal_id", identityNumber);
            var pager = await RequestWrapper.GetAsyncWrapper <SearchUsers>(url.ToString());

            var result = new List <SearchUserResult>();

            result.AddRange(pager.Results);
            while (!string.IsNullOrEmpty(pager.Next))
            {
                pager = await RequestWrapper.GetAsyncWrapper <SearchUsers>(pager.Next);

                result.AddRange(pager.Results);
            }
            return(result);
        }
예제 #2
0
        public void ToBcd_Test()
        {
            UriBuilder uri = new UriBuilder("http://a/b/c");

            uri = uri.AddQuery("name", "z");

            Assert.AreEqual("http://a:80/b/c?name=z", uri.ToString());
            uri = uri.AddQuery("age", "12");
            Assert.AreEqual("http://a:80/b/c?name=z&age=12", uri.ToString());
        }
        public void AddQueryMultiKey()
        {
            string urlString = "http://www.test.com/";

            UriBuilder uriBuilder = new UriBuilder(urlString);

            uriBuilder.AddQuery("key1", "value1", "value2");
            uriBuilder.AddQuery("key2", "value3", "value4");
            Assert.IsTrue(uriBuilder.HasQuery("key1", "value1", "value2"), "Adding key1 failed");
            Assert.IsTrue(uriBuilder.HasQuery("key2", "value3", "value4"), "Adding key2 failed");
        }
        public void AddQuery()
        {
            string urlString = "http://www.test.com/";

            UriBuilder uriBuilder = new UriBuilder(urlString);

            uriBuilder.AddQuery("key", "value1");
            Assert.IsTrue(uriBuilder.HasQuery("key", "value1"), "Adding from blank failed");
            Assert.IsFalse(uriBuilder.HasQuery("key", "value2"), "Unexpected value found");

            uriBuilder.AddQuery("key", "value1");
            Assert.IsTrue(uriBuilder.HasQuery("key", "value1"), "Adding existing failed");
            Assert.IsFalse(uriBuilder.HasQuery("key", "value2"), "Unexpected value found");
        }
        public void GetQueryKeys()
        {
            string urlString = "http://www.test.com/";

            UriBuilder uriBuilder = new UriBuilder(urlString);

            HashSet <string> inputKeys = new HashSet <string>
            {
                "key1",
                "key2",
                "key3",
                "key4",
                "key5",
            };

            foreach (string key in inputKeys)
            {
                uriBuilder.AddQuery(key, "value");
            }

            HashSet <string> retrievedKeys = new HashSet <string>(uriBuilder.GetQueryKeys());

            Assert.AreEqual <int>(uriBuilder.GetQueryKeys().Count, inputKeys.Count, "Count does not match input count");

            Assert.IsTrue(inputKeys.SetEquals(retrievedKeys), "Retrieved result does not match set keys");
        }
        public void GetQueryValues()
        {
            string urlString = "http://www.test.com/";

            UriBuilder uriBuilder = new UriBuilder(urlString);

            HashSet <string> inputValues = new HashSet <string>
            {
                "value1",
                "value2",
                "value3",
                "value4",
                "value5",
            };

            foreach (string value in inputValues)
            {
                uriBuilder.AddQuery("key", value);
            }

            HashSet <string> retrievedValues = new HashSet <string>(uriBuilder.GetQueryValues("key"));

            Assert.AreEqual <int>(uriBuilder.GetQueryValues("key").Count, inputValues.Count, "Count does not match input count");

            Assert.IsTrue(inputValues.SetEquals(retrievedValues), "Retrieved result does not match set values");

            Assert.AreEqual <int>(uriBuilder.GetQueryValues("unknownkey").Count, 0, "Count for unknown key is not 0");
        }
예제 #7
0
        public string BuildShareEndPoint(string token)
        {
            var builder = new UriBuilder(_webSiteEndPoint);

            builder.AddQuery(new { token, open = "referral" });
            return(builder.ToString());
        }
        public void AddQueryMultiValue()
        {
            string urlString = "http://www.test.com/";

            UriBuilder uriBuilder = new UriBuilder(urlString);

            uriBuilder.AddQuery("key", "value1", "value2");
            Assert.IsTrue(uriBuilder.HasQuery("key", "value1"), "Adding multiple from blank failed");
            Assert.IsTrue(uriBuilder.HasQuery("key", "value2"), "Adding multiple from blank failed");
            Assert.IsTrue(uriBuilder.HasQuery("key", "value1", "value2"), "Adding multiple from blank failed");

            uriBuilder.AddQuery("key", "value1", "value2");
            Assert.IsTrue(uriBuilder.HasQuery("key", "value1"), "Adding multiple from blank failed");
            Assert.IsTrue(uriBuilder.HasQuery("key", "value2"), "Adding multiple from blank failed");
            Assert.IsTrue(uriBuilder.HasQuery("key", "value1", "value2"), "Adding multiple from blank failed");
        }
예제 #9
0
        protected void HandleSearch()
        {
            UriBuilder uriBuilder = new UriBuilder(NavigationManager.Uri).ClearQuery();

            if (SearchStatus != -1)
            {
                uriBuilder.AddQuery("status", SearchStatus.ToString());
            }

            if (IsDateAsc)
            {
                uriBuilder.AddQuery("dateAsc", IsDateAsc.ToString());
            }

            NavigationManager.NavigateTo(uriBuilder.ToString(), true);
        }
예제 #10
0
        public static async Task CallServiceBusAsync(

            [ServiceBusTrigger("communication", "call", Connection = "AzureWebJobsServiceBus")]
            SmsMessage msg,
            [TwilioCall(AccountSidSetting = "TwilioSid", AuthTokenSetting = "TwilioToken", From = "+1 203-347-4577")] IAsyncCollector <CreateCallOptions> options,
            [Inject] IHostUriService hostUriService)
        {
            var from = new PhoneNumber("+1 203-347-4577");
            var to   = new PhoneNumber(msg.PhoneNumber);

            var hostName2 = hostUriService.GetHostUri();

            var uriBuilder = new UriBuilder(hostName2)
            {
                Path = "/api/twilio",
            };

            uriBuilder.AddQuery(new NameValueCollection()
            {
                ["code"]    = msg.Message,
                ["culture"] = msg.CultureInfo.ToString()
            });
            var call = new CreateCallOptions(to, from)
            {
                Url = uriBuilder.Uri,
                MachineDetection = "Enable"
            };
            await options.AddAsync(call);
        }
예제 #11
0
        public async Task <IEnumerable <People> > GetPeopleInPositionsAsync(IEnumerable <Position> positions)
        {
            var url             = new UriBuilder(Endpoints.PeopleEndpoint);
            var positionsString = positions.Select(_ => _.Id.ToString()).Aggregate((curr, next) => $"{curr},{next}");

            url.AddQuery("positions", positionsString);
            return(await RequestWrapper.GetAsyncWrapper <IEnumerable <People> >(url.ToString()));
        }
예제 #12
0
        public async Task <IEnumerable <Position> > GetPositionsInLevelsAsync(IEnumerable <Level> levels)
        {
            var url          = new UriBuilder(Endpoints.PositionsEndpoint);
            var levelsString = levels.Select(_ => _.Id.ToString()).Aggregate((curr, next) => $"{curr},{next}");

            url.AddQuery("levels", levelsString);
            return(await RequestWrapper.GetAsyncWrapper <IEnumerable <Position> >(url.ToString()));
        }
        public void RemoveQuery()
        {
            string urlString = "http://www.test.com/";

            UriBuilder uriBuilder = new UriBuilder(urlString);

            uriBuilder.AddQuery("key1", "value1", "value2");
            uriBuilder.RemoveQuery("key1");

            Assert.AreEqual <string>(urlString, uriBuilder.Uri.ToString(), "Removing queries failed");

            uriBuilder.AddQuery("key1", "value1", "value2");
            uriBuilder.AddQuery("key2", "value1", "value2");
            uriBuilder.RemoveQuery("key1");

            Assert.IsFalse(uriBuilder.HasQuery("key1"), "Removing query failed");
            Assert.IsTrue(uriBuilder.HasQuery("key2"), "Query unexpectedly removed");
        }
예제 #14
0
        public string BuildCourseEndPoint(string courseName)
        {
            var builder = new UriBuilder(_webSiteEndPoint)
            {
                Path = "ask"
            };

            builder.AddQuery(new { Course = courseName });
            return(builder.ToString());
        }
예제 #15
0
        public string BuildWalletEndPoint(string token)
        {
            var builder = new UriBuilder(_webSiteEndPoint)
            {
                Path = "wallet"
            };

            builder.AddQuery(new { token });
            return(builder.ToString());
        }
예제 #16
0
        public Uri BuildShortUrlEndpoint(string identifier, object?parameters = null)
        {
            var builder = new UriBuilder(_webSiteEndPoint)
            {
                Path = $"go/{identifier}"
            };

            builder.AddQuery(parameters);
            return(builder.Uri);
        }
예제 #17
0
        public string BuildDocumentThumbnailEndpoint(long id, object?parameters = null)
        {
            var path    = ImageFunctionDocumentRoute.InjectSingleValue("id", id);
            var builder = new UriBuilder(_functionEndPoint)
            {
                Path = $"api/{path}"
            };

            builder.AddQuery(parameters);
            return(builder.ToString());
        }
예제 #18
0
        public void AddQuery_WithQuery_QueryRemains()
        {
            var builder = new UriBuilder(new Uri("http://www.someUri.co?xxx=yyy"));

            builder.AddQuery(new
            {
                z = "p"
            });

            builder.ToString().Should().BeEquivalentTo("http://www.someUri.co:80/?xxx=yyy&z=p");
        }
예제 #19
0
        public string BuildQuestionEndPoint
            (long id, object?parameters = null)
        {
            var builder = new UriBuilder(_webSiteEndPoint)
            {
                Path = $"question/{id}"
            };

            builder.AddQuery(parameters);
            return(builder.ToString());
        }
예제 #20
0
        public void AddQuery_BaseUrl_Ok()
        {
            var builder = new UriBuilder(new Uri("http://www.someUri.co"));

            builder.AddQuery(new
            {
                z = "p"
            });

            builder.ToString().Should().BeEquivalentTo("http://www.someUri.co:80/?z=p");
        }
예제 #21
0
        public string BuildDocumentEndPoint(long id, object?parameters = null)
        {
            var base62  = new Base62(id);
            var builder = new UriBuilder(_webSiteEndPoint)
            {
                Path = $"document/{base62.ToString()}"
            };

            builder.AddQuery(parameters);
            return(builder.ToString());
        }
예제 #22
0
        public void AddQuery_BaseUrlNVC_Ok()
        {
            var builder = new UriBuilder(new Uri("http://www.someUri.co"));
            var nvc     = new NameValueCollection()
            {
                ["z"] = "p"
            };

            builder.AddQuery(nvc);

            builder.ToString().Should().BeEquivalentTo("http://www.someUri.co:80/?z=p");
        }
예제 #23
0
        public static UriBuilder AddQueryNotNull(this UriBuilder builder, string key, params object[] values)
        {
            var nonEmptyValues = values
                                 .Where(_ => _ != null)
                                 .Select(_ => _.ToString())
                                 .Where(_ => !string.IsNullOrEmpty(_))
                                 .ToArray();

            return(nonEmptyValues.Any() ?
                   builder.AddQuery(key, nonEmptyValues) :
                   builder);
        }
예제 #24
0
        /// <summary>
        /// Generate link with query string
        /// </summary>
        /// <param name="urlHelper"></param>
        /// <param name="routeName">the route we want</param>
        /// <param name="routeValue">route object</param>
        /// <param name="queryString">query string</param>
        /// <returns>link</returns>
        private static string Link(this IUrlHelper urlHelper, string routeName, object routeValue, object queryString)
        {
            var url = urlHelper.Link(routeName, routeValue);

            url = url.Replace("_", "-");
            var builder = new UriBuilder(new Uri(url));
            var nvc     = new NameValueCollection();

            AddObject(string.Empty, queryString, nvc);
            builder.AddQuery(nvc);
            return(builder.ToString());
        }
예제 #25
0
        public void AddQuery_WithQueryNVC_QueryRemains()
        {
            var nvc = new NameValueCollection()
            {
                ["z"] = "p"
            };
            var builder = new UriBuilder(new Uri("http://www.someUri.co?xxx=yyy"));

            builder.AddQuery(nvc);

            builder.ToString().Should().BeEquivalentTo("http://www.someUri.co:80/?xxx=yyy&z=p");
        }
예제 #26
0
        public string BuildDocumentImageShareEndpoint(long id, object?parameters = null)
        {
            var injectionObj = new
            {
                id,
            };
            var path    = ImageFunctionDocumentShareRoute.Inject(injectionObj);
            var builder = new UriBuilder(_functionEndPoint)
            {
                Path = $"api/{path}"
            };

            builder.AddQuery(parameters);
            return(builder.ToString());
        }
예제 #27
0
        public string BuildUserImageEndpoint(long id, string imageName, string?userName, object?parameters = null)
        {
            var injectionObj = new
            {
                id,
                file = !string.IsNullOrEmpty(imageName) ? imageName : userName
            };
            var path    = ImageFunctionUserRoute.Inject(injectionObj);
            var builder = new UriBuilder(_functionEndPoint)
            {
                Path = $"api/{path}"
            };

            builder.AddQuery(parameters);
            return(builder.ToString());
        }
예제 #28
0
        private static string BuildUserImage(long id, string image, string name, IHostUriService hostUriService)
        {
            var uri             = hostUriService.GetHostUri();
            var uriBuilderImage = new UriBuilder(uri)
            {
                Path = $"api/image/user/{id}/{image ?? name}"
            };
            var userImageNvc = new NameValueCollection()
            {
                ["width"]  = "34",
                ["height"] = "34",
                ["mode"]   = "crop"
            };

            uriBuilderImage.AddQuery(userImageNvc);
            return(uriBuilderImage.ToString());
        }
예제 #29
0
        public Uri BuildShortUrlEndpoint(string identifier, string country)
        {
            var nvc             = new NameValueCollection();
            var webSiteEndpoint = _webSiteEndPoint;

            if (country?.Equals("IN", StringComparison.OrdinalIgnoreCase) == true)
            {
                webSiteEndpoint = _indiaWebSiteEndpoint;
            }

            var builder = new UriBuilder(webSiteEndpoint)
            {
                Path = $"go/{identifier}"
            };

            builder.AddQuery(nvc);
            return(builder.Uri);
        }
예제 #30
0
        public async Task <IEnumerable <JpaFile> > GetJpaHistoryByUsernameAsync(string username)
        {
            var url = new UriBuilder(Endpoints.JpaHistoryAdminEndpoint);

            url.AddQuery("username", username);
            var pager = await RequestWrapper.GetAsyncWrapper <JpaFileList>(url.ToString());

            var result = new List <JpaFile>();

            result.AddRange(pager.Results);
            while (!string.IsNullOrEmpty(pager.Next))
            {
                pager = await RequestWrapper.GetAsyncWrapper <JpaFileList>(pager.Next);

                result.AddRange(pager.Results);
            }
            return(result);
        }