예제 #1
0
        public async Task <AirlineReservationResponse> CancelReservation(ReservationOptionsParameter param, string username)
        {
            try
            {
                var temp = await reservationRepo.CancelReservation(param, username);

                if (temp.Success)
                {
                    await unitOfWork.CompleteAsync();
                }

                return(temp);
            }
            catch (Exception e)
            {
                return(new AirlineReservationResponse(e.Message));
            }
        }
예제 #2
0
        public async Task <IActionResult> CancelReservation(ReservationOptionsParameter param)
        {
            try
            {
                var ret = await service.CancelReservation(param, User.Identity.Name);

                if (ret.Success)
                {
                    return(Ok(true));
                }
                else
                {
                    return(BadRequest(new { Message = ret.Message }));
                }
            }
            catch
            {
                return(StatusCode(500));
            }
        }
예제 #3
0
        public async Task <AirlineReservationResponse> AcceptReservation(ReservationOptionsParameter param, string username, bool investingPoints)
        {
            try
            {
                var temp = await reservationRepo.AcceptReservation(param, username);

                if (temp.Success)
                {
                    //await unitOfWork.CompleteAsync();
                    CalculatePrices(temp.Resource);
                    if (investingPoints)
                    {
                        var temp4 = ReducePrice(temp.Resource, username);

                        var points = CalculatePoints(temp.Resource.AirlineTickets.First().Flight.Distance);
                        var temp5  = temp.Resource.AirlineTickets.FirstOrDefault(i => i.TicketOwner != null && i.TicketOwner.Username == username);
                        if (temp5 != null)
                        {
                            temp5.TicketOwner.Points += points;
                            await unitOfWork.CompleteAsync();
                        }

                        return(temp4);
                    }

                    var points2 = CalculatePoints(temp.Resource.AirlineTickets.First().Flight.Distance);
                    var temp6   = temp.Resource.AirlineTickets.FirstOrDefault(i => i.TicketOwner != null && i.TicketOwner.Username == username);
                    if (temp6 != null)
                    {
                        temp6.TicketOwner.Points += points2;
                        await unitOfWork.CompleteAsync();
                    }
                }
                return(temp);
            }
            catch (Exception e)
            {
                return(new AirlineReservationResponse(e.Message));
            }
        }
예제 #4
0
        public async Task <IActionResult> AcceptReservation(ReservationOptionsParameter param)
        {
            if (param.LuggageWeight < 0 || string.IsNullOrWhiteSpace(param.PassportNumber))
            {
                return(BadRequest("Invalid parameters supplied"));
            }
            try
            {
                var ret = await service.AcceptReservation(param, User.Identity.Name, param.InvestingPoints);

                if (ret.Success)
                {
                    return(Ok(true));
                }
                else
                {
                    return(BadRequest(new { Message = ret.Message }));
                }
            }
            catch
            {
                return(StatusCode(500));
            }
        }