Beispiel #1
0
        public async Task <IActionResult> Reject(int bookingId, [FromBody] ManualBookingRejectionRequest rejectionRequest)
        {
            var(_, _, admin, _) = await _administratorContext.GetCurrent();

            var(_, isFailure, error) = await _bookingManagementService.RejectManually(bookingId, rejectionRequest.Reason, admin);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
Beispiel #2
0
        public async Task <IActionResult> Refresh(int bookingId)
        {
            var(_, _, admin, _) = await _administratorContext.GetCurrent();

            var(_, isFailure, error) = await _bookingManagementService.RefreshStatus(bookingId, admin);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
Beispiel #3
0
        public async Task <IActionResult> GetCounterparty()
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, counterpartyInfo, error) = await _counterpartyService.Get(agent.CounterpartyId, LanguageCode);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(Ok(counterpartyInfo));
        }
Beispiel #4
0
        public async Task <IActionResult> GetChildAgencyPolicies([FromRoute] int agencyId)
        {
            var agent = await _agentContext.GetAgent();

            var(_, isFailure, markupList, error) = await _policyManager.GetForChildAgency(agencyId, agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(Ok(markupList));
        }
Beispiel #5
0
        public async Task <IActionResult> InviteAdministrator([FromBody] SendAdminInvitationRequest request)
        {
            var(_, _, admin, _) = await _administratorContext.GetCurrent();

            var(_, isFailure, _, error) = await _adminInvitationCreateService.Send(request.ToUserInvitationData(), admin.Id);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
        public async Task <IActionResult> GetAvailabilityForAccommodation([FromRoute] Guid searchId, [FromRoute] string htId)
        {
            Counters.AccommodationAvailabilitySearchTimes.Inc();

            var(_, isFailure, response, error) = await _roomSelectionService.Get(searchId, htId, await _agentContextService.GetAgent(), LanguageCode);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(Ok(response));
        }
Beispiel #7
0
        public async Task <IActionResult> GetContractFile()
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, (stream, contentType), error) = await _contractFileService.Get(agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(File(stream, contentType));
        }
Beispiel #8
0
        public async Task <IActionResult> RefreshStatus([FromRoute] int bookingId)
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, error) = await _bookingManagementService.RefreshStatus(bookingId, agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(Ok());
        }
Beispiel #9
0
        public async Task <IActionResult> FinalizeBooking([FromRoute] string referenceCode)
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, bookingDetails, error) = await _bankCreditCardBookingFlow.Finalize(referenceCode, agent, LanguageCode);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(Ok(bookingDetails));
        }
Beispiel #10
0
        public async Task <IActionResult> CancelBookingByReferenceCode(string referenceCode)
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, error) = await _bookingManagementService.Cancel(referenceCode, agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
Beispiel #11
0
        public async Task <Result <Accommodation, ProblemDetails> > GetAccommodation(Guid searchId, Guid resultId, AgentContext agent, string languageCode)
        {
            var(_, isFailure, selectedResult, error) = await GetSelectedResult(searchId, resultId, agent);

            if (isFailure)
            {
                return(ProblemDetailsBuilder.Fail <Accommodation>(error));
            }

            return(await _supplierConnectorManager
                   .Get(selectedResult.Supplier)
                   .GetAccommodation(selectedResult.Result.Accommodation.Id, languageCode));
        }
        public async Task <IActionResult> CompleteOffline(int bookingId)
        {
            var(_, _, administrator, _) = await _administratorContext.GetCurrent();

            var(_, isFailure, error) = await _bookingPaymentService.CompleteOffline(bookingId, administrator);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
        public async Task <IActionResult> Disapprove(int reportId)
        {
            var(_, _, admin, _) = await _administratorContext.GetCurrent();

            var(_, isFailure, error) = await _reportsManagementService.Disapprove(reportId, admin);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
Beispiel #14
0
        public async Task <IActionResult> ModifyPolicy(int id, [FromBody] MarkupPolicySettings policySettings)
        {
            var agent = await _agentContext.GetAgent();

            var(_, isFailure, error) = await _policyManager.Modify(id, policySettings, agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
        public async Task <IActionResult> RemoveRoom([FromRoute] int accommodationId, [FromRoute] int roomId)
        {
            var(_, isFailure, error) = await _accommodationManagementService.RemoveRooms(accommodationId, new List <int> {
                roomId
            });

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
Beispiel #16
0
        public async Task <IActionResult> AddPolicy([FromBody] MarkupPolicyData policyData)
        {
            var agent = await _agentContext.GetAgent();

            var(_, isFailure, error) = await _policyManager.Add(policyData, agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
Beispiel #17
0
        public async Task <IActionResult> RemovePolicy(int id)
        {
            var agent = await _agentContext.GetAgent();

            var(_, isFailure, error) = await _policyManager.Remove(id, agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
Beispiel #18
0
        public async Task <IActionResult> RecreateInvitation(string invitationCodeHash)
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, code, error) = await _agentInvitationCreateService.Recreate(invitationCodeHash);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(Ok(code));
        }
Beispiel #19
0
        public async Task <IActionResult> SendBookingInvoice([Required] int bookingId, [Required][FromBody] SendBookingDocumentRequest sendMailRequest)
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, error) = await _bookingDocumentsService.SendInvoice(bookingId, sendMailRequest.Email, agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
Beispiel #20
0
        public async Task <IActionResult> Delete(int cardId)
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, error) = await _cardsManagementService.Delete(cardId, agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
Beispiel #21
0
        public async Task <IActionResult> UpdatePermissionsInAgency(int agentId,
                                                                    [FromBody] List <InAgencyPermissions> newPermissions)
        {
            var(_, isFailure, permissions, error) = await _permissionManagementService
                                                    .SetInAgencyPermissions(agentId, newPermissions, await _agentContextService.GetAgent());

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(Ok(permissions));
        }
Beispiel #22
0
        public async Task <IActionResult> AddPolicy([FromRoute] int agencyId, [FromBody] MarkupPolicySettings settings)
        {
            var agent = await _agentContext.GetAgent();

            var(_, isFailure, error) = await _policyManager.Add(agencyId, settings, agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
Beispiel #23
0
        public async Task <IActionResult> ActivateAgency(int agencyId)
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, error) = await _agencyManagementService.ActivateChildAgency(agencyId, agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(NoContent());
        }
Beispiel #24
0
        public async Task <IActionResult> GetBookingInvoice([Required] int bookingId)
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, document, error) = await _bookingDocumentsService.GetActualInvoice(bookingId, agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            var(regData, invoice) = document;
            return(Ok(new BookingDocument <BookingInvoiceInfo>(regData.Number, regData.Date.DateTime, invoice)));
        }
Beispiel #25
0
        public async Task <IActionResult> GetBookingStatusHistory(int bookingId)
        {
            var agent = await _agentContextService.GetAgent();

            var(_, bookingIsFailure, _, bookingError) = await _bookingRecordManager.Get(bookingId)
                                                        .CheckPermissions(agent);

            if (bookingIsFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(bookingError)));
            }

            return(Ok(await _bookingInfoService.GetBookingStatusHistory(bookingId)));
        }
Beispiel #26
0
        public async Task <IActionResult> CreateInvitation([FromBody] SendAgentInvitationRequest request)
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, code, error) = await _agentInvitationCreateService.Create(request.ToUserInvitationData(),
                                                                                        UserInvitationTypes.Agent, agent.AgentId, agent.AgencyId);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(Ok(code));
        }
        public async Task <IActionResult> GetFullBookingReport(DateTime from, DateTime end)
        {
            var(_, isFailure, stream, error) = await _reportService.GetFullBookingsReport(from, end);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(new FileStreamResult(stream, new MediaTypeHeaderValue("text/csv"))
            {
                FileDownloadName = $"full-bookings-report-{from:g}-{end:g}.csv"
            });
        }
Beispiel #28
0
        public async Task <IActionResult> SetRolesInAgency(int agentId, [FromBody] List <int> newRoles)
        {
            var(_, isFailure, error) = await _rolesAssignmentService
                                       .SetInAgencyRoles(agentId, newRoles, await _agentContextService.GetAgent());

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            await _agentContextInternal.RefreshAgentContext();

            return(Ok());
        }
        public async Task <IActionResult> GetAgencyWiseDirectConnectivityReport(DateTime from, DateTime end)
        {
            var(_, isFailure, stream, error) = await _reportService.GetAgencyWiseReport(from, end);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(new FileStreamResult(stream, new MediaTypeHeaderValue("text/csv"))
            {
                FileDownloadName = $"direct-connectivity-report-agencies-{from:g}-{end:g}.csv"
            });
        }
Beispiel #30
0
        public async Task <IActionResult> GetBookingCancellationPenalty(int bookingId)
        {
            var agent = await _agentContextService.GetAgent();

            var(_, isFailure, booking, error) = await _bookingRecordManager.Get(bookingId)
                                                .CheckPermissions(agent);

            if (isFailure)
            {
                return(BadRequest(ProblemDetailsBuilder.Build(error)));
            }

            return(Ok(BookingCancellationPenaltyCalculator.Calculate(booking, _dateTimeProvider.UtcNow())));
        }