Beispiel #1
0
        /// <summary>
        /// Calls the API and gets the results
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="httpClient"></param>
        /// <returns></returns>
        public Task <IEnumerable <TResult> > Call <TResult>(HttpClient httpClient)
            where TResult : new()
        {
            if (query is null)
            {
                throw new Exception("No query provided");
            }

            if (httpClient is null)
            {
                throw new ArgumentNullException(nameof(httpClient));
            }

            httpClient.BaseAddress = igdbConfiguration.IgdbUrl;

            if (httpClient.DefaultRequestHeaders.Contains(UserKeyHeaderName))
            {
                httpClient.DefaultRequestHeaders.Remove(UserKeyHeaderName);
            }

            httpClient.DefaultRequestHeaders.Add(UserKeyHeaderName, igdbConfiguration.UserToken);

            var builder = new RequestBuilder <T>(new Apicalypse.DotNet.Configuration.RequestBuilderConfiguration
            {
                CaseContract = Apicalypse.DotNet.Configuration.CaseContract.SnakeCase
            });

            query.Invoke(builder);

            return(builder.Build().Send <TResult>(httpClient, EndpointMapper.Map <T>()));
        }
Beispiel #2
0
 public void EndpointMapper_MapsEndpointsAsExpected()
 {
     Assert.AreEqual("reports/current_totals", EndpointMapper.GetEndpoint(EndpointName.CurrentTotalsReports));
     Assert.AreEqual("current_user", EndpointMapper.GetEndpoint(EndpointName.CurrentUser));
     Assert.AreEqual("customfields", EndpointMapper.GetEndpoint(EndpointName.CustomFields));
     Assert.AreEqual("customfielditems", EndpointMapper.GetEndpoint(EndpointName.CustomFieldItems));
     Assert.AreEqual("customfielditem_filters", EndpointMapper.GetEndpoint(EndpointName.CustomFieldItemFilters));
     Assert.AreEqual("customfielditem_jobcode_filters", EndpointMapper.GetEndpoint(EndpointName.CustomFieldItemJobcodeFilters));
     Assert.AreEqual("customfielditem_user_filters", EndpointMapper.GetEndpoint(EndpointName.CustomFieldItemUserFilters));
     Assert.AreEqual("effective_settings", EndpointMapper.GetEndpoint(EndpointName.EffectiveSettings));
     Assert.AreEqual("files", EndpointMapper.GetEndpoint(EndpointName.Files));
     Assert.AreEqual("files/raw", EndpointMapper.GetEndpoint(EndpointName.FilesRaw));
     Assert.AreEqual("geofence_configs", EndpointMapper.GetEndpoint(EndpointName.GeofenceConfigs));
     Assert.AreEqual("geolocations", EndpointMapper.GetEndpoint(EndpointName.Geolocations));
     Assert.AreEqual("groups", EndpointMapper.GetEndpoint(EndpointName.Groups));
     Assert.AreEqual("invitations", EndpointMapper.GetEndpoint(EndpointName.Invitations));
     Assert.AreEqual("jobcodes", EndpointMapper.GetEndpoint(EndpointName.Jobcodes));
     Assert.AreEqual("jobcode_assignments", EndpointMapper.GetEndpoint(EndpointName.JobcodeAssignments));
     Assert.AreEqual("last_modified_timestamps", EndpointMapper.GetEndpoint(EndpointName.LastModifiedTimestamps));
     Assert.AreEqual("locations", EndpointMapper.GetEndpoint(EndpointName.Locations));
     Assert.AreEqual("locations_map", EndpointMapper.GetEndpoint(EndpointName.LocationsMaps));
     Assert.AreEqual("managed_clients", EndpointMapper.GetEndpoint(EndpointName.ManagedClients));
     Assert.AreEqual("notifications", EndpointMapper.GetEndpoint(EndpointName.Notifications));
     Assert.AreEqual("reports/payroll", EndpointMapper.GetEndpoint(EndpointName.PayrollReports));
     Assert.AreEqual("reports/payroll_by_jobcode", EndpointMapper.GetEndpoint(EndpointName.PayrollByJobcodeReports));
     Assert.AreEqual("reports/project", EndpointMapper.GetEndpoint(EndpointName.ProjectReports));
     Assert.AreEqual("reminders", EndpointMapper.GetEndpoint(EndpointName.Reminders));
     Assert.AreEqual("schedule_calendars", EndpointMapper.GetEndpoint(EndpointName.ScheduleCalendars));
     Assert.AreEqual("schedule_events", EndpointMapper.GetEndpoint(EndpointName.ScheduleEvents));
     Assert.AreEqual("timesheets", EndpointMapper.GetEndpoint(EndpointName.Timesheets));
     Assert.AreEqual("timesheets_deleted", EndpointMapper.GetEndpoint(EndpointName.TimesheetsDeleted));
     Assert.AreEqual("users", EndpointMapper.GetEndpoint(EndpointName.Users));
 }
        public void RpcLocalPipe_UriLocal()
        {
            var endpointBinding = new EndpointBindingInfo(RpcProtseq.ncalrpc, null, "test");
            var wcf             = EndpointMapper.RpcToWcf(endpointBinding);

            Assert.AreEqual("ipc:///test", wcf);
        }
        public void RpcNamedPipe_WcfNamedPipe()
        {
            var endpointBinding = new EndpointBindingInfo(RpcProtseq.ncacn_np, "127.0.0.1", "test");
            var wcf             = EndpointMapper.RpcToWcf(endpointBinding);

            Assert.AreEqual("net.pipe://127.0.0.1/test", wcf);
        }
        public void WcfNamedPipe_RpcNamedPipe()
        {
            string wcf = "net.pipe://127.0.0.1/1/test.test/test";
            var    rpc = EndpointMapper.WcfToRpc(wcf);

            Assert.AreEqual(@"127.0.0.1", rpc.NetworkAddr);
            Assert.AreEqual(@"\pipe\1\test.test\test", rpc.EndPoint);
        }
        public void UriLocal_RpcLocal()
        {
            string wcf = "ipc:///1/test.test/test";
            var    rpc = EndpointMapper.WcfToRpc(wcf);

            Assert.AreEqual(null, rpc.NetworkAddr);
            Assert.AreEqual(@"1/test.test/test", rpc.EndPoint);
        }
        public void WcfTcp_RpcTcp()
        {
            string wcf = "net.tcp://127.0.0.1:666";
            var    rpc = EndpointMapper.WcfToRpc(wcf);

            Assert.AreEqual(@"127.0.0.1", rpc.NetworkAddr);
            Assert.AreEqual(@"666", rpc.EndPoint);
        }
        public void should_map_to_kinly_endpoint_dto()
        {
            var ep  = new Endpoint("Displayname", "sip", "pin", "*****@*****.**");
            var dto = EndpointMapper.MapToEndpoint(ep);

            dto.Id.Should().Be(ep.Id);
            dto.Pin.Should().Be(ep.Pin);
            dto.DisplayName.Should().Be(ep.DisplayName);
            dto.SipAddress.Should().Be(ep.SipAddress);
        }
        private Uri CreateRequestUri(EndpointName endpointName, Dictionary <string, string> filters = null)
        {
            string endpointSegment = EndpointMapper.GetEndpoint(endpointName);
            Uri    fullUri         = new Uri($"{this.context.ConnectionInfo.BaseUri}/{endpointSegment}");

            return(filters?.Count > 0
                ? new UriBuilder(fullUri)
            {
                Query = filters.ToUrlQueryString()
            }.Uri
                : fullUri);
        }