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); } }
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);