public IList <Event> GetRangeForAssets(List <long> assetIds, DateTime from, DateTime to, List <long> eventTypeIds = null, string menuId = null)
        {
            EventFilter eventFilter = new EventFilter()
            {
                EntityIds = assetIds, EventTypeIds = eventTypeIds, MenuId = menuId
            };
            IHttpRestRequest request = GetRequest(APIControllerRoutes.EventsController.GETRANGEFORASSETS, HttpMethod.Post);

            request.AddUrlSegment("from", from.ToString(DataFormats.DateTime_Format));
            request.AddUrlSegment("to", to.ToString(DataFormats.DateTime_Format));
            request.AddJsonBody(eventFilter);
            IHttpRestResponse <List <Event> > response = Execute <List <Event> >(request);

            return(response.Data);
        }
Beispiel #2
0
        public async Task <List <ActiveEvent> > GetLatestForOrganisationAsync(long organisationId, byte quantity = 1, List <long> eventTypeIds = null)
        {
            EventFilter eventFilter = new EventFilter()
            {
                EventTypeIds = eventTypeIds
            };
            IHttpRestRequest request = GetRequest(APIControllerRoutes.ActiveEventsController.GETLATESTFORGROUP, HttpMethod.Post);

            request.AddUrlSegment("groupId", organisationId.ToString());
            request.AddUrlSegment("quantity", quantity.ToString());
            request.AddJsonBody(eventFilter);
            IHttpRestResponse <List <ActiveEvent> > response = await ExecuteAsync <List <ActiveEvent> >(request).ConfigureAwait(false);

            return(response.Data);
        }
Beispiel #3
0
        public long AddDriver(Driver driver)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.DriversController.ADDDRIVER, HttpMethod.Post);

            request.AddJsonBody(driver);
            IHttpRestResponse response = Execute(request);
            var  idHeaderVal           = GetResponseHeader(response.Headers, "driverid");
            long driverId;

            if (!long.TryParse(idHeaderVal, out driverId) || driverId == 0)
            {
                throw new Exception("Could not determine the id of the newly-created driver");
            }
            return(driverId);
        }
Beispiel #4
0
        public async Task <IList <Event> > GetSinceForGroupsAsync(List <long> groupIds, string entityType, DateTime since, List <long> eventTypeIds = null, string menuId = null)
        {
            EventFilter eventFilter = new EventFilter()
            {
                EntityIds = groupIds, EventTypeIds = eventTypeIds, MenuId = menuId
            };
            IHttpRestRequest request = GetRequest(APIControllerRoutes.EventsController.GETSINCEFORGROUPS, HttpMethod.Post);

            request.AddUrlSegment("entityType", entityType);
            request.AddUrlSegment("since", since.ToString(DataFormats.DateTime_Format));
            request.AddJsonBody(eventFilter);
            IHttpRestResponse <List <Event> > response = await ExecuteAsync <List <Event> >(request).ConfigureAwait(false);

            return(response.Data);
        }
Beispiel #5
0
        public async Task <IList <Trip> > GetLatestForDriversAsync(List <long> driverIds, byte quantity = 1, DateTime?cachedSince = null, bool includeSubTrips = false)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.TripsController.GETLATESTFORDRIVERS, HttpMethod.Post);

            request.AddUrlSegment("quantity", quantity.ToString());
            if (cachedSince.HasValue)
            {
                request.AddQueryParameter("cachedSince", cachedSince.Value.ToUniversalTime().ToString(DataFormats.DateTime_Format));
            }
            request.AddQueryParameter("includeSubTrips", includeSubTrips.ToString());
            request.AddJsonBody(driverIds);
            IHttpRestResponse <List <Trip> > response = await ExecuteAsync <List <Trip> >(request).ConfigureAwait(false);

            return(response.Data);
        }
        public IList <Event> GetSinceForAssets(List <long> assetIds, DateTime since, byte quantity, List <long> eventTypeIds = null, string menuId = null)
        {
            EventFilter eventFilter = new EventFilter()
            {
                EntityIds = assetIds, EventTypeIds = eventTypeIds, MenuId = menuId
            };
            IHttpRestRequest request = GetRequest(APIControllerRoutes.EventsController.GETSINCEFORASSETS, HttpMethod.Post);

            request.AddUrlSegment("since", since.ToString(DataFormats.DateTime_Format));
            request.AddUrlSegment("quantity", quantity.ToString());
            request.AddJsonBody(eventFilter);
            IHttpRestResponse <List <Event> > response = Execute <List <Event> >(request);

            return(response.Data);
        }
        public async Task <IList <Event> > GetRangeForDriversAsync(List <long> driverIds, DateTime from, DateTime to, List <long> eventTypeIds = null, string menuId = null)
        {
            EventFilter eventFilter = new EventFilter()
            {
                EntityIds = driverIds, EventTypeIds = eventTypeIds, MenuId = menuId
            };
            IHttpRestRequest request = GetRequest(APIControllerRoutes.EventsController.GETRANGEFORDRIVERS, HttpMethod.Post);

            request.AddUrlSegment("from", from.ToString(DataFormats.DateTime_Format));
            request.AddUrlSegment("to", to.ToString(DataFormats.DateTime_Format));
            request.AddJsonBody(eventFilter);
            IHttpRestResponse <List <Event> > response = await ExecuteAsync <List <Event> >(request).ConfigureAwait(false);

            return(response.Data);
        }
Beispiel #8
0
        public IList <Trip> GetLatestForAssets(List <long> assetIds, byte quantity = 1, DateTime?cachedSince = null, bool includeSubTrips = false)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.TripsController.GETLATESTFORASSETS, HttpMethod.Post);

            request.AddUrlSegment("quantity", quantity.ToString());
            if (cachedSince.HasValue)
            {
                request.AddQueryParameter("cachedSince", cachedSince.Value.ToUniversalTime().ToString(DataFormats.DateTime_Format));
            }
            request.AddQueryParameter("includeSubTrips", includeSubTrips.ToString());
            request.AddJsonBody(assetIds);
            IHttpRestResponse <List <Trip> > response = Execute <List <Trip> >(request);

            return(response.Data);
        }
        public async Task <long> AddAsync(Asset asset)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.AssetsController.ADD, HttpMethod.Post);

            request.AddJsonBody(asset);
            IHttpRestResponse response = await ExecuteAsync(request).ConfigureAwait(false);

            string idHeaderVal = GetResponseHeader(response.Headers, "assetId");
            long   assetId;

            if (!long.TryParse(idHeaderVal, out assetId) || assetId == 0)
            {
                throw new Exception("Could not determine the id of the newly-created asset");
            }
            return(assetId);
        }
        public async Task <long> SendRelayCommandAsync(long groupId, long assetId, uint relayDrive, uint relayState, MessageTransport?preferredTransport = null)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.DeviceCommandsController.SENDRELAYCOMMAND, HttpMethod.Get);

            request.AddUrlSegment("groupId", groupId.ToString());
            request.AddUrlSegment("assetId", assetId.ToString());
            request.AddUrlSegment("relayDrive", relayDrive.ToString());
            request.AddUrlSegment("relayState", relayState.ToString());
            if (preferredTransport.HasValue)
            {
                request.AddQueryParameter("preferredTransport", preferredTransport.ToString());
            }
            IHttpRestResponse <long> response = await ExecuteAsync <long>(request).ConfigureAwait(false);

            return(response.Data);
        }
        public async Task <long> SendTrackingRequestAsync(long groupId, long assetId, uint intervalSeconds, uint durationSeconds, MessageTransport?preferredTransport = null)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.DeviceCommandsController.SENDTRACKINGREQUEST, HttpMethod.Get);

            request.AddUrlSegment("groupId", groupId.ToString());
            request.AddUrlSegment("assetId", assetId.ToString());
            request.AddUrlSegment("intervalSeconds", intervalSeconds.ToString());
            request.AddUrlSegment("durationSeconds", durationSeconds.ToString());
            if (preferredTransport.HasValue)
            {
                request.AddQueryParameter("preferredTransport", preferredTransport.ToString());
            }
            IHttpRestResponse <long> response = await ExecuteAsync <long>(request).ConfigureAwait(false);

            return(response.Data);
        }
        public List <HosViolation> GetDriverViolationsByListOfDriverIdsInDateRange(ParameterEntityType entityTypeId, List <long> entityIds, DateTime fromDateTime, DateTime toDateTime)
        {
            var dataRequest = new HosDataRequest {
                EntityTypeId = entityTypeId, EntityIds = entityIds
            };

            IHttpRestRequest request = GetRequest(APIControllerRoutes.HosDataController.GETDRIVERVIOLATIONSBYLISTOFDRIVERIDSINDATERANGE, HttpMethod.Post);

            request.AddUrlSegment("from", fromDateTime.ToString(DataFormats.DateTime_Format));
            request.AddUrlSegment("to", toDateTime.ToString(DataFormats.DateTime_Format));
            request.AddJsonBody(dataRequest);

            IHttpRestResponse <List <HosViolation> > response = Execute <List <HosViolation> >(request);

            return(response.Data);
        }
Beispiel #13
0
        public long AddOrganisationSubGroup(long parentGroupId, string name)
        {
            var request = GetRequest(APIControllerRoutes.GroupsController.ADDORGSUBGROUP, HttpMethod.Post);

            request.AddUrlSegment("parentGroupId", parentGroupId.ToString());
            request.AddJsonBody(name);
            IHttpRestResponse response = Execute(request);
            var  idHeaderVal           = GetResponseHeader(response.Headers, "groupid");
            long groupId;

            if (!long.TryParse(idHeaderVal, out groupId) || groupId == 0)
            {
                throw new Exception("Could not determine the id of the newly-created group");
            }
            return(groupId);
        }
        public async Task <List <HosEventDriverSummary> > GetHosEventDataSummaryAsync(ParameterEntityType entityTypeId, List <long> entityIds, List <byte> eventTypeIds, DateTime fromDateTime, DateTime toDateTime)
        {
            var dataRequest = new HosEventDataRequest {
                EntityTypeId = entityTypeId, EntityIds = entityIds, EventTypeIds = eventTypeIds
            };

            IHttpRestRequest request = GetRequest(APIControllerRoutes.HosDataController.GETHOSEVENTDATASUMMARY, HttpMethod.Post);

            request.AddUrlSegment("from", fromDateTime.ToString(DataFormats.DateTime_Format));
            request.AddUrlSegment("to", toDateTime.ToString(DataFormats.DateTime_Format));
            request.AddJsonBody(dataRequest);

            IHttpRestResponse <List <HosEventDriverSummary> > response = await ExecuteAsync <List <HosEventDriverSummary> >(request).ConfigureAwait(false);

            return(response.Data);
        }
        public async Task <bool> AddAssetStateAsync(long groupId, AssetState assetState)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.AssetsController.ADDASSETSTATE, HttpMethod.Post);

            request.AddUrlSegment("groupId", groupId.ToString());
            request.AddJsonBody(assetState);
            IHttpRestResponse response = await ExecuteAsync(request).ConfigureAwait(false);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public long SendSetAcronymCommand(long groupId, long assetId, uint?param1 = null, uint?param2 = null, uint?param3 = null, MessageTransport?preferredTransport = null)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.DeviceCommandsController.SENDSETACRONYMCOMMAND, HttpMethod.Get);

            request.AddUrlSegment("groupId", groupId.ToString());
            request.AddUrlSegment("assetId", assetId.ToString());
            request.AddUrlSegment("param1", param1.HasValue ? param1.Value.ToString() : "0");
            request.AddUrlSegment("param2", param2.HasValue ? param2.Value.ToString() : "0");
            request.AddUrlSegment("param3", param3.HasValue ? param3.Value.ToString() : "0");
            if (preferredTransport.HasValue)
            {
                request.AddQueryParameter("preferredTransport", preferredTransport.ToString());
            }
            IHttpRestResponse <long> response = Execute <long>(request);

            return(response.Data);
        }
Beispiel #17
0
        public async Task <long> AddSiteAsync(long parentGroupId, string name)
        {
            var request = GetRequest(APIControllerRoutes.GroupsController.ADDSITE, HttpMethod.Post);

            request.AddUrlSegment("parentGroupId", parentGroupId.ToString());
            request.AddJsonBody(name);
            IHttpRestResponse response = await ExecuteAsync(request).ConfigureAwait(false);

            var  idHeaderVal = GetResponseHeader(response.Headers, "groupid");
            long groupId;

            if (!long.TryParse(idHeaderVal, out groupId) || groupId == 0)
            {
                throw new Exception("Could not determine the id of the newly-created site");
            }
            return(groupId);
        }
        public IList <Event> GetLatestForAssets(List <long> assetIds, byte quantity = 1, DateTime?cachedSince = null, List <long> eventTypeIds = null, string menuId = null)
        {
            EventFilter eventFilter = new EventFilter()
            {
                EntityIds = assetIds, EventTypeIds = eventTypeIds, MenuId = menuId
            };
            IHttpRestRequest request = GetRequest(APIControllerRoutes.EventsController.GETLATESTFORASSETS, HttpMethod.Post);

            request.AddUrlSegment("quantity", quantity.ToString());
            if (cachedSince.HasValue)
            {
                request.AddQueryParameter("cachedSince", cachedSince.Value.ToUniversalTime().ToString(DataFormats.DateTime_Format));
            }
            request.AddJsonBody(eventFilter);
            IHttpRestResponse <List <Event> > response = Execute <List <Event> >(request);

            return(response.Data);
        }
        public async Task <IList <Event> > GetLatestForDriversAsync(List <long> driverIds, byte quantity = 1, DateTime?cachedSince = null, List <long> eventTypeIds = null, string menuId = null)
        {
            EventFilter eventFilter = new EventFilter()
            {
                EntityIds = driverIds, EventTypeIds = eventTypeIds, MenuId = menuId
            };
            IHttpRestRequest request = GetRequest(APIControllerRoutes.EventsController.GETLATESTFORDRIVERS, HttpMethod.Post);

            request.AddUrlSegment("quantity", quantity.ToString());
            if (cachedSince.HasValue)
            {
                request.AddQueryParameter("cachedSince", cachedSince.Value.ToUniversalTime().ToString(DataFormats.DateTime_Format));
            }
            request.AddJsonBody(eventFilter);
            IHttpRestResponse <List <Event> > response = await ExecuteAsync <List <Event> >(request).ConfigureAwait(false);

            return(response.Data);
        }
Beispiel #20
0
        public async Task <List <TripRibasMetrics> > GetRibasMetricsForDriversAsync(List <long> driverIds, DateTime @from, DateTime to)
        {
            if ((driverIds?.Count ?? 0) == 0)
            {
                throw new ArgumentException("No driver ids specified", nameof(driverIds));
            }
            if (from.CompareTo(to) > 0)
            {
                throw new ArgumentException("Invalid date range specified");
            }
            IHttpRestRequest request = GetRequest(APIControllerRoutes.TripsController.GETTRIPRIBASMETRICSBYDATERANGEFORDRIVERS, HttpMethod.Post);

            request.AddUrlSegment("from", from.ToString(DataFormats.DateTime_Format));
            request.AddUrlSegment("to", to.ToString(DataFormats.DateTime_Format));
            request.AddJsonBody(driverIds);
            IHttpRestResponse <List <TripRibasMetrics> > response = await ExecuteAsync <List <TripRibasMetrics> >(request).ConfigureAwait(false);

            return(response.Data);
        }
Beispiel #21
0
        public async Task <long> AddDriverAsync(Driver driver)
        {
            if (driver.FmDriverId == -1 || driver.FmDriverId == 0 || driver.FmDriverId == 1)
            {
                throw new ArgumentException("FmDriverId -1, 0 and 1 was reserved");
            }
            IHttpRestRequest request = GetRequest(APIControllerRoutes.DriversController.ADDDRIVER, HttpMethod.Post);

            request.AddJsonBody(driver);
            IHttpRestResponse response = await ExecuteAsync(request).ConfigureAwait(false);

            var  idHeaderVal = GetResponseHeader(response.Headers, "driverid");
            long driverId;

            if (!long.TryParse(idHeaderVal, out driverId) || driverId == 0)
            {
                throw new Exception("Could not determine the id of the newly-created driver");
            }
            return(driverId);
        }
Beispiel #22
0
        public CreatedSinceResult <ActiveEvent> GetCreatedSinceForOrganisation(long organisationId, string sinceToken, int quantity)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.ActiveEventsController.GETCREATEDSINCEFORORGANISATION, HttpMethod.Get);

            request.AddUrlSegment("organisationId", organisationId.ToString());
            request.AddUrlSegment("sinceToken", sinceToken);
            request.AddUrlSegment("quantity", quantity.ToString());
            IHttpRestResponse <List <ActiveEvent> > response = Execute <List <ActiveEvent> >(request);
            string sHasMoreItems = GetResponseHeader(response.Headers, "HasMoreItems");
            string getSinceToken = GetResponseHeader(response.Headers, "GetSinceToken");
            bool   hasMoreItems  = false;

            if (!bool.TryParse(sHasMoreItems, out hasMoreItems))
            {
                throw new Exception("Could not read the HasMoreItems header");
            }
            return(new CreatedSinceResult <ActiveEvent>()
            {
                HasMoreItems = hasMoreItems, GetSinceToken = getSinceToken, Items = response.Data
            });
        }
Beispiel #23
0
        public CreatedSinceResult <ActiveEvent> GetCreatedSinceForAssets(List <long> assetIds, string sinceToken, int quantity)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.ActiveEventsController.GETCREATEDSINCEFORASSETSASYNC, HttpMethod.Post);

            request.AddUrlSegment("sinceToken", sinceToken);
            request.AddUrlSegment("quantity", quantity.ToString());
            request.AddJsonBody(assetIds);
            IHttpRestResponse <List <ActiveEvent> > response = Execute <List <ActiveEvent> >(request);
            string sHasMoreItems = GetResponseHeader(response.Headers, "HasMoreItems");
            string getSinceToken = GetResponseHeader(response.Headers, "GetSinceToken");
            bool   hasMoreItems  = false;

            if (!bool.TryParse(sHasMoreItems, out hasMoreItems))
            {
                throw new Exception("Could not read the HasMoreItems header");
            }
            return(new CreatedSinceResult <ActiveEvent>()
            {
                HasMoreItems = hasMoreItems, GetSinceToken = getSinceToken, Items = response.Data
            });
        }
        public async Task <CreatedSinceResult <Event> > GetCreatedSinceForDriversAsync(List <long> driverIds, string sinceToken, int quantity)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.EventsController.GETCREATEDSINCEFORDRIVERSASYNC, HttpMethod.Post);

            request.AddUrlSegment("sinceToken", sinceToken);
            request.AddUrlSegment("quantity", quantity.ToString());
            request.AddJsonBody(driverIds);
            IHttpRestResponse <List <Event> > response = await ExecuteAsync <List <Event> >(request).ConfigureAwait(false);

            string sHasMoreItems = GetResponseHeader(response.Headers, "HasMoreItems");
            string getSinceToken = GetResponseHeader(response.Headers, "GetSinceToken");
            bool   hasMoreItems  = false;

            if (!bool.TryParse(sHasMoreItems, out hasMoreItems))
            {
                throw new Exception("Could not read the HasMoreItems header");
            }
            return(new CreatedSinceResult <Event>()
            {
                HasMoreItems = hasMoreItems, GetSinceToken = getSinceToken, Items = response.Data
            });
        }
        public CreatedSinceResult <Trip> GetCreatedSinceForDrivers(List <long> driverIds, string sinceToken, int quantity, bool includeSubTrips = false)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.TripsController.GETCREATEDSINCEFORDRIVERSASYNC, HttpMethod.Post);

            request.AddUrlSegment("sinceToken", sinceToken);
            request.AddUrlSegment("quantity", quantity.ToString());
            request.AddQueryParameter("includeSubTrips", includeSubTrips.ToString());
            request.AddJsonBody(driverIds);
            IHttpRestResponse <List <Trip> > response = Execute <List <Trip> >(request);
            string sHasMoreItems = GetResponseHeader(response.Headers, "HasMoreItems");
            string getSinceToken = GetResponseHeader(response.Headers, "GetSinceToken");
            bool   hasMoreItems  = false;

            if (!bool.TryParse(sHasMoreItems, out hasMoreItems))
            {
                throw new Exception("Could not read the HasMoreItems header");
            }
            return(new CreatedSinceResult <Trip>()
            {
                HasMoreItems = hasMoreItems, GetSinceToken = getSinceToken, Items = response.Data
            });
        }
Beispiel #26
0
        public async Task <CreatedSinceResult <Trip> > GetCreatedSinceForOrganisationAsync(long organisationId, string sinceToken, int quantity, bool includeSubTrips = false)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.TripsController.GETCREATEDSINCEFORORGANISATION, HttpMethod.Get);

            request.AddUrlSegment("organisationId", organisationId.ToString());
            request.AddUrlSegment("sinceToken", sinceToken);
            request.AddUrlSegment("quantity", quantity.ToString());
            request.AddQueryParameter("includeSubTrips", includeSubTrips.ToString());
            IHttpRestResponse <List <Trip> > response = await ExecuteAsync <List <Trip> >(request).ConfigureAwait(false);

            string sHasMoreItems = GetResponseHeader(response.Headers, "HasMoreItems");
            string getSinceToken = GetResponseHeader(response.Headers, "GetSinceToken");
            bool   hasMoreItems  = false;

            if (!bool.TryParse(sHasMoreItems, out hasMoreItems))
            {
                throw new Exception("Could not read the HasMoreItems header");
            }
            return(new CreatedSinceResult <Trip>()
            {
                HasMoreItems = hasMoreItems, GetSinceToken = getSinceToken, Items = response.Data
            });
        }
        public async Task <CreatedSinceResult <Trip> > GetCreatedSinceForGroupsAsync(List <long> groupIds, string entityType, string sinceToken, int quantity, bool includeSubTrips = false)
        {
            IHttpRestRequest request = GetRequest(APIControllerRoutes.TripsController.GETCREATEDSINCEFORGROUPSASYNC, HttpMethod.Post);

            request.AddUrlSegment("entityType", entityType);
            request.AddUrlSegment("sinceToken", sinceToken);
            request.AddUrlSegment("quantity", quantity.ToString());
            request.AddQueryParameter("includeSubTrips", includeSubTrips.ToString());
            request.AddJsonBody(groupIds);
            IHttpRestResponse <List <Trip> > response = await ExecuteAsync <List <Trip> >(request).ConfigureAwait(false);

            string sHasMoreItems = GetResponseHeader(response.Headers, "HasMoreItems");
            string getSinceToken = GetResponseHeader(response.Headers, "GetSinceToken");
            bool   hasMoreItems  = false;

            if (!bool.TryParse(sHasMoreItems, out hasMoreItems))
            {
                throw new Exception("Could not read the HasMoreItems header");
            }
            return(new CreatedSinceResult <Trip>()
            {
                HasMoreItems = hasMoreItems, GetSinceToken = getSinceToken, Items = response.Data
            });
        }
        public IHttpRestResponse Execute(IHttpRestRequest request, int maxRetryAttempts = 3)
        {
            IHttpRestResponse resp = ExecuteAsync(request, maxRetryAttempts).ConfigureAwait(false).GetAwaiter().GetResult();

            return(resp);
        }
        public IHttpRestResponse <T> Execute <T>(IHttpRestRequest request, int maxRetryAttempts = 3) where T : new()
        {
            IHttpRestResponse <T> respT = ExecuteAsync <T>(request, maxRetryAttempts).ConfigureAwait(false).GetAwaiter().GetResult();

            return(respT);
        }