WebAPI - Como obter as localizações a que um funcionário tem acesso?

WebAPI - Como obter as localizações a que um funcionário tem acesso?

O método devolve a lista de localizações e o seu nível de acesso ao qual o funcionário tem permissão.

O método a utilizar para obter a lista de localizações e o seu nível de acesso ao qual o funcionário tem permissões é:
GET
 /api/mytenant/myorganization/settings/assetsByUsers/getLocationsByUser?username=user@domain.com&modifiedOn=2020-11-20T09:55:33.396836+00:00&maxRecords=100&company=Demo

Os parâmetros do método são opcionais. Se o parâmetro maxRecords não for especificado, devolve no máximo 100 registos. Se o parâmetro company não for especificado, devolve os elementos da primeira empresa criada. A lógica é a seguinte:
  1. username: devolve todas as localizações ao qual este funcionário tem acesso, este parâmetro deve ser o email do funcionário.
  2. modifiedOn: devolve todas as localizações que foram alteradas com data superiores à data inserida.
  3. maxRecords: este parâmetro é utilizado para colocar um limite de dados a obter. Este parâmetro deve ser um valor inteiro, igual ou inferior a 100.
  4. company: devolve as localizações ao que o funcionário tem acesso da empresa. Este parâmetro deve ser a chave da empresa.
O servidor devolve uma resposta HttpStatusCode.OK, com a lista das localizações e os seus níveis de acesso, por empresa.

A estrutura de dados do método é a seguinte:

  1. {
    "accessLevels": [
    {
      "accessLevelId": "3aa1a912-010c-4af3-97b8-2e7b1544f363",
      "accessLevel": "T", 
      "acessLevelModifiedOn":"2020-11-20T09:55:33.396836+00:00"
    },
    {
      "accessLevelId": "c1474504-aa6c-4a5c-b9c8-fa302195e3c7",
      "accessLevel": "G", 
      "acessLevelModifiedOn":"2020-11-20T09:55:33.396836+00:00"
    }
    ],
    "locationKey": "AUD",
    "description": "Auditorium",
    "id": "2a99cf7c-90dd-4df1-8c04-43a6a924c6a0",
    "isActive": true,
    "modifiedOn": "2020-11-17T11:02:21.0713241+00:00",
    "isUpTime": true,
    "criticality": "0000000001",
    "barcode": null,
    "parentLocationDesc": "1st Floor",
    "parentLocation": "F01",
    "locationFunctionDesc": "Conference Room",
    "locationFunction": "CR",
    "responsible": null,
    "countryDesc": null,
    "country": null,
    "latitud": null,
    "longitud": null,
  2. "picture": "null,
    "pictureThumbnail": null,
    "remarks": null,
    "keyword": "Factory",
    "externalReferenceID": null,
    "streetName": null,
    "buildingNumber": null,
    "postalZone": null,
    "cityName": null,
    "telephone": null,
    "mobile": null,
    "company": "Demonstration Company"
    }

No parâmetro modifiedOn será necessário ter atenção o encoding do html, o "+" deverá ser substituído por "%2b".
Caso a data inserida no parâmetro de pesquisa "modifiedOn" seja superior ou igual à data "acessLevelModifiedOn", a mesma apresentará um valor "0001-01-01T00:00:00+00:00"