private List <PassengerDto> GetTotalPassengers()
        {
            List <PassengerDto> passengerDtos = new List <PassengerDto>();
            var query = from b in _bookingDBContext.BookingDetails
                        group b by new
            {
                b.FlightScheduleId
            } into g
                select new
            {
                TotalNumberOfPassenger = g.Sum(p => p.NoOfPassenger),
                g.Key.FlightScheduleId
            };

            foreach (var q in query)
            {
                PassengerDto passenger = new PassengerDto
                {
                    FlightScheduleId = q.FlightScheduleId,
                    TotalPassengers  = q.TotalNumberOfPassenger
                };
                passengerDtos.Add(passenger);
            }
            return(passengerDtos);
        }
Esempio n. 2
0
        public async Task <IActionResult> PassengerLogin([FromBody] PassengerLoginModel model)
        {
            var passenger = _passengerRepo.Query(x => x.ReservationCode == model.ReservationCode).Include(x => x.Seat).ThenInclude(y => y.Plane).FirstOrDefault();

            if (null == passenger)
            {
                throw new ArgumentException("incorrect reservationCode");
            }

            var result = await _signInManager.PasswordSignInAsync(passenger.UserName, "Test123!", false, false);

            if (result.Succeeded)
            {
                var token = TokenHelper.GetToken(passenger);

                var passengerDto = new PassengerDto {
                    UserName = passenger.UserName,
                    PlaneId  = passenger.Seat.Plane.Id,
                    Id       = passenger.Id.ToString(),
                    Token    = token,
                    Seat     = new SeatDto(passenger.Seat),
                };

                return(Ok(passengerDto));
            }
            throw new ArgumentException("incorrect reservationCode");
        }
        public async Task <bool> AddNewPassenger(PassengerDto p)
        {
            try
            {
                _memoryCache.TryGetValue(PassengerKey, out List <PassengerDto> pCache);
                _memoryCache.TryGetValue(DocumentTypeKey, out List <DocumentTypeDto> dCache);

                var documentType = dCache.Find(c => c.Id == p.DocumentTypeId);
                if (documentType != null)
                {
                    p.DocumentType = documentType;
                }
                p.Id        = pCache.Count + 1;
                p.IssueDate = DateTime.UtcNow;
                p.IsActive  = true;
                pCache.Add(p);

                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(false);
            }
            finally
            {
                await Task.Delay(new TimeSpan(0));
            }
        }
Esempio n. 4
0
        public bool DeletePassenger(PassengerDto model)
        {
            try
            {
                var param = new SqlParameter[10];
                param[0] = new SqlParameter("@Id", model.Id);
                param[1] = new SqlParameter("@Name", model.Name);
                param[2] = new SqlParameter("@Surname", model.Surname);
                param[3] = new SqlParameter("@Age", model.Age);
                param[4] = new SqlParameter("@BirthDate", model.BirthDate);
                param[5] = new SqlParameter("@Tc", model.Tc);
                param[6] = new SqlParameter("@IsTc", model.IsTc);
                param[7] = new SqlParameter("@PassportNo", model.PassportNo);
                param[8] = new SqlParameter("@PassengerAndTicketId", model.PassengerAndTicketId);

                param[9] = new SqlParameter("@OperationType", "DEL");

                var cmd = new SqlCommand("prdCityOperation", new SqlConnection(connStr));
                cmd.CommandType = CommandType.StoredProcedure;

                for (int i = 0; i < param.Length; i++)
                {
                    cmd.Parameters.Add(param[i]);
                }

                cmd.CommandTimeout = (1000 * 60 * 10);

                cmd.ExecuteNonQuery();
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
        public async Task <bool> ChangePassengerInfo(PassengerDto p)
        {
            try
            {
                _memoryCache.TryGetValue(PassengerKey, out List <PassengerDto> pCache);
                _memoryCache.TryGetValue(DocumentTypeKey, out List <DocumentTypeDto> dCache);

                var passenger = pCache.Find(c => c.Id == p.Id);
                if (passenger != null)
                {
                    p.Adapt(passenger);
                    passenger.DocumentType = dCache.Find(c => c.Id == p.DocumentTypeId);
                    passenger.IssueDate    = DateTime.UtcNow;
                }

                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(false);
            }
            finally
            {
                await Task.Delay(new TimeSpan(0));
            }
        }
Esempio n. 6
0
        public async Task <IActionResult> Edit(int id, [FromBody] PassengerDto obj, string scenario)
        {
            switch (scenario)
            {
            case Scenario.Online:

                try
                {
                    _passengerOperation =
                        new PassengerOperation(new OnlinePassengerManager(_passengerRepository,
                                                                          _documentTypeRepository));
                    return(Ok(await _passengerOperation.ChangePassengerInfo(obj)));
                }
                catch (Exception ex)
                {
                    _logger.LogCritical(ex.Message, ex);
                    return(BadRequest(ex.Message));
                }

            case Scenario.Offline:
                try
                {
                    _passengerOperation = new PassengerOperation(new OfflinePassengerManager(_memoryCache));
                    return(Ok(await _passengerOperation.ChangePassengerInfo(obj)));
                }
                catch (Exception ex)
                {
                    _logger.LogCritical(ex.Message, ex);
                    return(BadRequest(ex.Message));
                }

            default:
                return(Ok());
            }
        }
        public async Task <IActionResult> Edit(PassengerDto passenger, string scenario)
        {
            try
            {
                HttpClient client = new()
                { BaseAddress = new Uri(Configuration.GetConnectionString("PassengerApi")) };

                var response = await client.PutAsync(
                    client.BaseAddress + "api/" + scenario + "/Passenger/Edit/" + passenger.Id,
                    new StringContent(JsonConvert.SerializeObject(passenger), Encoding.UTF8, "application/json"));

                if (!response.IsSuccessStatusCode)
                {
                    return(View("Error", new ErrorViewModel
                    {
                        ErrorCode = (int)response.StatusCode + " " + response.ReasonPhrase,
                        ErrorMessage = response.RequestMessage != null
                            ? response.RequestMessage.ToString()
                            : "No message delivered by the service."
                    }));
                }

                var result =
                    Convert.ToBoolean(JsonConvert.DeserializeObject(response.Content.ReadAsStringAsync().Result));
                return(result ? RedirectToAction("Index", "Passenger", new { scenario }) : View(passenger));
            }
            catch (Exception exception)
            {
                _logger.LogCritical(exception.Message, exception);
                return(View("Error", new ErrorViewModel {
                    ErrorMessage = exception.Message
                }));
            }
        }
Esempio n. 8
0
 internal static void ShowPrintTravel(OrderDetailDto order, PassengerDto passenger, ResponseChangeOrder rasorder = null, ResponseAfterSalePassenger raspassenger = null, int flag = 0, OrderInfoViewModel orderInfoViewModel = null, AfterSaleInfoViewModel afterSaleInfoViewModel = null, Action <bool?> call = null)
 {
     DispatcherHelper.UIDispatcher.Invoke(new Action(() =>
     {
         var window = new PrintTravelWindow {
             Owner = Application.Current.MainWindow
         };
         var vm = new PrintTravelViewModel
         {
             RspOrder             = order,
             Passenger            = passenger,
             RsAferSaleOrder      = rasorder,
             RsAfterSalePassenger = raspassenger,
             RFlag = flag,
             OrderInfoViewModel     = orderInfoViewModel,
             AfterSaleInfoViewModel = afterSaleInfoViewModel
         };
         vm.Init();
         window.DataContext = vm;
         var result         = window.ShowDialog();
         if (call != null)
         {
             call(result);
         }
         window.DataContext = null;
     }));
 }
Esempio n. 9
0
 private static PassengerViewModel BuildPassenger(PassengerDto passenger)
 {
     return(new PassengerViewModel
     {
         FirstName = passenger.FirstName,
         SecondName = passenger.SecondName,
         PassengerType = BuilPassengerType(passenger.PassengerType)
     });
 }
        public PassengerEntity toEntity(PassengerDto passengerDto)
        {
            PassengerEntity passenger = new PassengerEntity();

            passenger.PassengerId = passengerDto.PassengerId;
            passenger.FirstName   = passengerDto.FirstName;
            passenger.LastName    = passengerDto.LastName;
            passenger.PlaneId     = passengerDto.PlaneId ?? null;

            return(passenger);
        }
Esempio n. 11
0
        internal PassengerDto HateoasMainLinksPassenger(PassengerDto passenger)
        {
            var passengerDto = passenger;

            passengerDto.Links.Add(UrlLink("all", "GetPassengers", null));
            passengerDto.Links.Add(UrlLink("_self", "GetPassengerById", new { id = passengerDto.Id }));
            passengerDto.Links.Add(UrlLink("_next", "GetPassengerById", new { id = passengerDto.Id + 1 }));
            passengerDto.Links.Add(UrlLink("_name=Greta", "GetPassengerByName", new { Name = "Greta" }));
            passengerDto.Links.Add(UrlLink("_identificationNumber", "GetPassengerByIdentificationNumber", new { IdentificationNumber = "199002128812" }));

            return(passengerDto);
        }
Esempio n. 12
0
 public async Task <bool> AddNewPassenger(PassengerDto p)
 {
     try
     {
         var newPassenger = p.Adapt(new Data.Entity.Passenger());
         return(newPassenger != null && await _passengerRepository.CreateAsync(newPassenger));
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
Esempio n. 13
0
        public void SavePassenger(PassengerDto dto)
        {
            var passenger = _railwayContext.Passengers.FirstOrDefault(x => x.Id == dto.Id);

            if (passenger != null)
            {
                Mapper.Map(dto, passenger);
            }
            else
            {
                passenger = Mapper.Map <Passenger>(dto);
                _railwayContext.Passengers.Add(passenger);
            }

            _railwayContext.SaveChanges();
        }
Esempio n. 14
0
 public async Task <ActionResult <PassengerDto> > PostEvent(PassengerDto passengerDto)
 {
     try
     {
         var mappedEntity = _mapper.Map <Passenger>(passengerDto);
         _passengerRepo.Add(mappedEntity);
         if (await _passengerRepo.Save())
         {
             return(Created($"/api/v1.0/Destinations/{mappedEntity.ID}", _mapper.Map <Destination>(mappedEntity)));
         }
     }
     catch (Exception e)
     {
         return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Database Failure: {e.Message}"));
     }
     return(BadRequest());
 }
Esempio n. 15
0
        public async Task <bool> ChangePassengerInfo(PassengerDto p)
        {
            try
            {
                var passenger = await _passengerRepository.GetByIdAsync(p.Id);

                if (passenger != null)
                {
                    var updatedPassenger = p.Adapt(passenger);
                    return(updatedPassenger != null && await _passengerRepository.UpdateAsync(updatedPassenger));
                }

                return(false);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Esempio n. 16
0
        public PassengerDto[] CreatePassengers(int columns, int rows)
        {
            var passengers = new List <PassengerDto>();
            var count      = rows * columns;

            for (var i = 0; i < count; i++)
            {
                var passenger = new PassengerDto
                {
                    Id              = $"{i + 1}",
                    Satisfaction    = Math.Round(randomizer.GetRandomDouble(), 2),
                    Quality         = Math.Round(randomizer.GetRandomDouble(), 2),
                    TransportType   = TransportTypes.GetRandomTransportTypeBetweenCarAndBus(randomizer),
                    FirstBusQuality = 0.5
                };
                passengers.Add(passenger);
            }

            return(passengers.ToArray());
        }
        public IActionResult CreatePassenger([FromBody] PassengerDto passenger)
        {
            try
            {
                if (passenger == null)
                {
                    return(BadRequest());
                }

                // custom validation to make sure duplicate passengers don't get created
                if (_flightInfoRepository.GetPassengersByNameAndMobile(passenger.Name, passenger.Mobile) != null)
                {
                    ModelState.AddModelError("Passenger", "Passenger Already Exists.");
                    _logger.LogCritical($"Passenger Already Exists with Name: {passenger.Name}, mobile: {passenger.Mobile}");
                }

                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var passengerEntity = AutoMapper.Mapper.Map <Passenger>(passenger);
                _flightInfoRepository.AddPassenger(passengerEntity);

                if (!_flightInfoRepository.Save())
                {
                    _logger.LogCritical("An Error Occured While Handing Your Request.");
                    return(StatusCode(500, "An Error Occured While Handing Your Request."));
                }

                var newPassenger = AutoMapper.Mapper.Map <PassengerDto>(passengerEntity);
                return(CreatedAtRoute("GetPassengerById", new { id = passengerEntity.Id }, newPassenger));
            }
            catch (Exception ex)
            {
                _logger.LogCritical("An Error Occured While Handing Your Request. {0}", ex.ToString());
                return(StatusCode(500, "An Error Occured While Handing Your Request."));
            }
        }
Esempio n. 18
0
        public async Task <ActionResult <PassengerDto> > PutEvent(int id, PassengerDto passengerDto)
        {
            try
            {
                var oldpassenger = await _passengerRepository.GetPassengerById(id);

                if (oldpassenger == null)
                {
                    return(NotFound($"Couldn't find any passenger with id: {id}"));
                }

                var newPassenger = _mapper.Map(passengerDto, oldpassenger);
                _passengerRepository.Update(newPassenger);
                if (await _passengerRepository.Save())
                {
                    return(NoContent());
                }
            }
            catch (Exception e)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Database Failure: {e.Message}"));
            }
            return(BadRequest());
        }
Esempio n. 19
0
 public void AddPassenger(PassengerDto passenger)
 {
     _passengerRepository.AddNewPassenger(_mapper.Map <PassengerDto, Passenger>(passenger));
 }
 public async Task <bool> AddNewPassenger(PassengerDto obj)
 {
     return(await _passengerManager.AddNewPassenger(obj));
 }
 public async Task <bool> ChangePassengerInfo(PassengerDto obj)
 {
     return(await _passengerManager.ChangePassengerInfo(obj));
 }
Esempio n. 22
0
 public bool AddPassenger(PassengerDto passenger)
 {
     return(_passengerRepository.AddNewPassenger(_mapper.Map <PassengerDto, Passenger>(passenger)));
 }
Esempio n. 23
0
        public void GetFlightInfo(PassengerDto expectedPassenger, Flight expectedFlight, HttpClient client, HttpResponseMessage result)
        {
            "Given that I have a flight with one passenger in the database".x(() =>
            {
                expectedPassenger = new PassengerDto
                {
                    Id      = 5,
                    Name    = "Bob",
                    Surname = "XYZ"
                };

                Passenger passenger = new Passenger {
                    Id = expectedPassenger.Id
                };

                expectedFlight = new Flight
                {
                    Id         = 123,
                    Number     = "abc",
                    Operator   = "xyz",
                    Passengers = new List <Passenger> {
                        passenger
                    }
                };

                client = factory.WithWebHostBuilder(builder =>
                {
                    builder.ConfigureAppConfiguration((hostingContext, config) =>
                    {
                        config.AddInMemoryCollection(new Dictionary <string, string>
                        {
                            { "ProviderUrl", mockProviderServiceBaseUri }
                        });
                    });
                    builder.ConfigureServices(services =>
                    {
                        // Create a new service provider.
                        var serviceProvider = new ServiceCollection()
                                              .AddEntityFrameworkInMemoryDatabase()
                                              .BuildServiceProvider();

                        // Add a database context (ApplicationDbContext) using an in-memory
                        // database for testing.
                        services.AddDbContext <DatabaseContext>(options =>
                        {
                            options.UseInMemoryDatabase("InMemoryDbForTesting");
                            options.UseInternalServiceProvider(serviceProvider);
                        });

                        // Build the service provider.
                        var sp = services.BuildServiceProvider();
                        using (var scope = sp.CreateScope())
                        {
                            var scopedServices = scope.ServiceProvider;
                            var dbContext      = scopedServices.GetRequiredService <DatabaseContext>();
                            dbContext.Passengers.Add(passenger);
                            dbContext.Flights.Add(expectedFlight);
                            dbContext.SaveChanges();
                        }
                    });
                }).CreateClient();
            });

            "And the Passengers Api has the details of the passenger".x(() =>
            {
                mockProviderService
                .Given($"There is a passenger with id {expectedPassenger.Id}")
                .UponReceiving("A GET request to retrieve the passenger data")
                .With(new ProviderServiceRequest
                {
                    Method = HttpVerb.Get,
                    Path   = $"/api/passengers/{expectedPassenger.Id}"
                })
                .WillRespondWith(new ProviderServiceResponse
                {
                    Status  = 200,
                    Headers = new Dictionary <string, object>
                    {
                        { "Content-Type", "application/json; charset=utf-8" }
                    },
                    Body = new
                    {
                        expectedPassenger.Id,
                        Name    = Match.Type(expectedPassenger.Name),
                        Surname = Match.Type(expectedPassenger.Surname)
                    }
                });
            });

            "When I query the Flights Api".x(async() =>
            {
                result = await client.GetAsync($"/api/flights/{expectedFlight.Id}");
            });

            "Then the Flights Api should return the flight info with the passenger detail".x(async() =>
            {
                result.EnsureSuccessStatusCode();
                var content            = await result.Content.ReadAsStringAsync();
                var expectedPassengers = new List <PassengerDto> {
                    expectedPassenger
                };
                string expectedResponse = JsonConvert.SerializeObject(new
                {
                    expectedFlight.Id,
                    expectedFlight.Number,
                    expectedFlight.Operator,
                    passengers = expectedPassengers
                });

                expectedResponse.Should().BeEquivalentTo(content);
            });
        }
Esempio n. 24
0
        internal PassengerDto HateoasSideLinks(PassengerDto passenger)
        {
            PassengerDto passengerDto = passenger;

            throw new System.NotImplementedException();
        }
Esempio n. 25
0
 public PassengerDto FindPassenger(PassengerDto passengerDto)
 {
     return(PassengerMapper.toDto(PassengerRepository.GetPassengerByID(passengerDto.PassengerId)));
 }
Esempio n. 26
0
        public PassengerDto AddPassenger(PassengerDto passengerDto)
        {
            PassengerEntity passengerEntity = PassengerRepository.InsertPassengerEntity(PassengerMapper.toEntity(passengerDto));

            return(PassengerMapper.toDto(passengerEntity));
        }