public ViewLocationPage() { InitializeComponent(); BindingContext = new ViewLocationViewModel(App.EventAggregator, App.SignalRService); ((ViewLocationViewModel)BindingContext).PropertyChanged += ViewLocationPage_PropertyChanged; }
public async Task <IViewComponentResult> InvokeAsync(int jobId, CancellationToken cancellationToken) { var user = await _authService.GetCurrentUser(HttpContext, cancellationToken); if (user == null) { throw new UnauthorizedAccessException("No user in session"); } var jobDetails = (await _requestService.GetJobSummaryAsync(jobId, cancellationToken)); var canView = await _requestService.LogViewLocationEvent(user.ID, jobDetails.RequestID, jobId); ViewLocationViewModel viewLocationViewModel; if (canView) { var postCodeCoordinates = (await _addressService.GetPostcodeCoordinates(jobDetails.PostCode)).First(); var distanceInMiles = await _addressService.GetDistanceBetweenPostcodes(jobDetails.PostCode, user.PostalCode, cancellationToken); viewLocationViewModel = new ViewLocationViewModel() { IsAllowed = canView, Coordinates = postCodeCoordinates, Distance = distanceInMiles, PostCode = jobDetails.PostCode, encodedJobID = Base64Utils.Base64Encode(jobDetails.JobID) }; } else { viewLocationViewModel = new ViewLocationViewModel() { IsAllowed = canView, Coordinates = null, Distance = null, PostCode = null, encodedJobID = Base64Utils.Base64Encode(jobDetails.JobID) }; } return(View("ViewLocationPopup", viewLocationViewModel)); }