Ejemplo n.º 1
0
        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"]);
        }
Ejemplo n.º 2
0
        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"]);