private async Task CancelRequest() { accessRequest.Status = Domain.Entities.AccessRequest.ApprovalStatus.Cancelled; var accessRequestMessage = new Domain.Entities.AccessRequest { Id = accessRequest.Id, Status = new Domain.Entities.OptionSet { Key = (int)accessRequest.Status } }; await Mediator.Send(new UpdateAccessRequestCommand { AccessRequest = accessRequestMessage }); Dispatcher.Dispatch(new GetManagerApprovalsAction()); Dispatcher.Dispatch(new GetMyAccessRequestsAction()); NavigationManager.NavigateTo(Localizer["my-access-requests"]); }
public async Task OnSurveyCompleted(string surveyResult) { SurveyCompleted = true; var submission = JsonConvert.DeserializeObject <AccessRequestSubmission>(surveyResult); var accessRequest = new Domain.Entities.AccessRequest { AssetRequests = new List <AssetRequest>(), Building = new Building { Id = submission.building }, Details = submission.details, EndTime = submission.startDate.AddHours(submission.endTime), Floor = new Floor { Id = submission.floor }, Manager = new Contact { Id = submission.manager }, Reason = new OptionSet { Key = submission.reason }, StartTime = submission.startDate.AddHours(submission.startTime), Visitors = new List <Contact>() }; if (submission.visitors != null) { foreach (var visitor in submission.visitors) { var match = Regex.Match(visitor.name.Trim(), @"^(?<first>[^\s]+)\s*(?<last>.*)$"); var firstName = match.Groups["first"].Value; var lastName = match.Groups["last"].Value; accessRequest.Visitors.Add( new Contact { FirstName = firstName, LastName = lastName, EmailAddress = visitor.email, PhoneNumber = visitor.telephone } ); } } accessRequest.AssetRequests.AddRange(Repeat((int)Asset.Chair, submission.chair)); accessRequest.AssetRequests.AddRange(Repeat((int)Asset.Laptop, submission.laptop)); accessRequest.AssetRequests.AddRange(Repeat((int)Asset.Tablet, submission.tablet)); accessRequest.AssetRequests.AddRange(Repeat((int)Asset.Monitor, submission.monitor)); accessRequest.AssetRequests.AddRange(Repeat((int)Asset.DockingStation, submission.dockingStation)); accessRequest.AssetRequests.AddRange(Repeat((int)Asset.Keyboard, submission.keyboard)); accessRequest.AssetRequests.AddRange(Repeat((int)Asset.Mouse, submission.mouse)); accessRequest.AssetRequests.AddRange(Repeat((int)Asset.Cables, submission.cables)); accessRequest.AssetRequests.AddRange(Repeat((int)Asset.Headset, submission.headset)); accessRequest.AssetRequests.AddRange(Repeat((int)Asset.Printer, submission.printer)); if (!string.IsNullOrWhiteSpace(submission.other)) { accessRequest.AssetRequests.Add(new AssetRequest { Asset = new OptionSet { Key = (int)Asset.Other }, Other = submission.other }); } await Mediator.Send(new CreateAccessRequestForCurrentUserCommand { AccessRequest = accessRequest }); Dispatcher.Dispatch(new GetMyAccessRequestsAction()); Dispatcher.Dispatch(new GetManagerApprovalsAction()); NavigationManager.NavigateTo(Localizer["my-access-requests"]);