Exemplo n.º 1
0
 private LocationDTO BuildLocation(CreateLocationResponse data)
 {
     try {
         return(new LocationDTO()
         {
             Address = data.Address,
             Id = data.Id,
             Link = data.Link,
             Name = data.Name,
             Notes = data.Notes,
             TeamId = data.TeamId
         });
     }
     catch (Exception exc) {
         throw new InvalidOperationException("SchedulingService BuildLocation()", exc);
     }
 }
Exemplo n.º 2
0
        public Task <LocationDTO> CreateLocationAsync(CreateLocationDataModel createLocationDataModel, CancellationTokenSource cancellationTokenSource) =>
        Task <LocationDTO> .Run(async() => {
            if (!CrossConnectivity.Current.IsConnected)
            {
                throw new InvalidOperationException(AppConsts.ERROR_INTERNET_CONNECTION);
            }

            LocationDTO createdLocation = null;

            CreateLocationRequest createLocationRequest = new CreateLocationRequest()
            {
                AccessToken = GlobalSettings.Instance.UserProfile.AccesToken,
                Data        = createLocationDataModel,
                Url         = GlobalSettings.Instance.Endpoints.ScheduleEndpoints.CreateNewLocation
            };

            try {
                CreateLocationResponse createLocationResponse = await _requestProvider.PostAsync <CreateLocationRequest, CreateLocationResponse>(createLocationRequest);

                if (createLocationResponse != null)
                {
                    createdLocation = BuildLocation(createLocationResponse);
                }
                else
                {
                    throw new InvalidOperationException(CREATE_LOCATION_COMMON_ERROR_MESSAGE);
                }
            }
            catch (ServiceAuthenticationException exc) {
                _identityUtilService.RefreshToken();

                throw exc;
            }
            catch (Exception exc) {
                Crashes.TrackError(exc);

                throw;
            }

            return(createdLocation);
        }, cancellationTokenSource.Token);