public virtual string GetProperty(string strPropertyName, string strFormat, System.Globalization.CultureInfo formatProvider, DotNetNuke.Entities.Users.UserInfo accessingUser, DotNetNuke.Services.Tokens.Scope accessLevel, ref bool propertyNotFound)
        {
            switch (strPropertyName.ToLower())
            {
            case "commentid": // Int
                return(CommentId.ToString(strFormat, formatProvider));

            case "userid": // Int
                return(UserId.ToString(strFormat, formatProvider));

            case "flightid": // Int
                return(FlightId.ToString(strFormat, formatProvider));

            case "datime": // DateTime
                return(Datime.ToString(strFormat, formatProvider));

            case "remarks": // NVarCharMax
                return(PropertyAccess.FormatString(Remarks, strFormat));

            default:
                propertyNotFound = true;
                break;
            }

            return(Null.NullString);
        }
示例#2
0
        public async Task <IActionResult> BookSeats(
            [FromServices] ICommandHandler <BookFlightSeats.Command, BookFlightSeats.Result> bookSeats,
            [FromRoute] FlightId id,
            [FromBody] BookSeatsInputModel inputModel)
        {
            var result = await bookSeats.ExecuteAsync(new BookFlightSeats.Command(
                                                          id,
                                                          inputModel.NumberOfSeats,
                                                          inputModel.ReservationId));

            switch (result)
            {
            case BookFlightSeats.Result.Success _:
                return(Accepted());

            case BookFlightSeats.Result.NotFound _:
                return(NotFound());

            case BookFlightSeats.Result.Conflict conflict:
                return(Conflict(new { conflict.Message }));

            case BookFlightSeats.Result.ConcurrentWrite _:
                return(StatusCode(StatusCodes.Status503ServiceUnavailable));

            default:
                throw new InvalidProgramException($"Unknown result: {result.GetType()}");
            }
        }
示例#3
0
        public void ToStringReturnsId()
        {
            var id       = "KLM 12345 BCA";
            var flightId = FlightId.From(id);

            flightId.ToString().Should().Be(id);
        }
示例#4
0
        public virtual string GetProperty(string strPropertyName, string strFormat, System.Globalization.CultureInfo formatProvider, DotNetNuke.Entities.Users.UserInfo accessingUser, DotNetNuke.Services.Tokens.Scope accessLevel, ref bool propertyNotFound)
        {
            switch (strPropertyName.ToLower())
            {
            case "flightid": // Int
                return(FlightId.ToString(strFormat, formatProvider));

            case "beaconid": // Int
                return(BeaconId.ToString(strFormat, formatProvider));

            case "passeddistance": // Int
                if (PassedDistance == null)
                {
                    return("");
                }
                ;
                return(((int)PassedDistance).ToString(strFormat, formatProvider));

            case "passorder": // Int
                return(PassOrder.ToString(strFormat, formatProvider));

            default:
                propertyNotFound = true;
                break;
            }

            return(Null.NullString);
        }
 public async Task <bool> ExistedFlightId(FlightId flightId, CancellationToken cancellationToken)
 {
     return(await _context.Flights
            .AnyAsync(l => l.FlightId.Segment1 == flightId.Segment1 &&
                      l.FlightId.Segment2 == flightId.Segment2 &&
                      l.FlightId.Segment3 == flightId.Segment3));
 }
示例#6
0
        public async Task ShouldPersistNewFlightInDbContext()
        {
            // arrange
            Context.Tenants.Add(new Tenant
            {
                Id          = 1,
                Name        = "test",
                TenantGroup = Domain.Enums.TenantGroup.A
            });
            Context.SaveChanges();

            //act
            var requesHandler = new CreateFlightCommandHandler(Context);
            await requesHandler.Handle(new CreateFlightCommand
            {
                FlightId = FlightId.From("KLM 12345 BCA"),
                Days     = new List <DayOfWeek> {
                    DayOfWeek.Monday
                },
                DefaultPrice = 24,
                From         = "Europe",
                To           = "Africa",
                Hour         = 10,
                Minute       = 30,
                TenantId     = 1
            }, CancellationToken.None);

            //assert
            Assert.IsTrue(Context.Flights.Count() == 1);
        }
示例#7
0
        public static FlightId GetFlightID(bool arr, string airline, string fltnum, double offset = 0.0)
        {
            LookupCode apCode = new LookupCode();

            apCode.codeContextField = CodeContext.IATA;
            apCode.valueField       = Parameters.APT_CODE;
            LookupCode[] ap = { apCode };

            LookupCode alCode = new LookupCode();

            alCode.codeContextField = CodeContext.IATA;
            alCode.valueField       = airline;;
            LookupCode[] al = { alCode };


            FlightId flightID = new FlightId();

            flightID.flightKindField        = arr ? FlightKind.Arrival : FlightKind.Departure;
            flightID.airportCodeField       = ap;
            flightID.airlineDesignatorField = al;
            flightID.scheduledDateField     = DateTime.Now.AddDays(offset);
            flightID.flightNumberField      = fltnum;

            return(flightID);
        }
        public async Task <Result> ExecuteAsync(Command command)
        {
            var flightId = FlightId.New();
            var events   = Flight.Create(flightId, command.FromAirport, command.ToAirport, command.DepartureTime, command.ArrivalTime);
            await store.CreateStreamAsync(flightId, events);

            return(new Result.Success(flightId));
        }
示例#9
0
        public async Task <bool> NotExistedFlightId(FlightId flightId, CancellationToken cancellationToken)
        {
            var exists = await _context.Flights
                         .AnyAsync(l => l.FlightId.Segment1 == flightId.Segment1 &&
                                   l.FlightId.Segment2 == flightId.Segment2 &&
                                   l.FlightId.Segment3 == flightId.Segment3);

            return(!exists);
        }
示例#10
0
        public void ShouldReturnCorrectFlightIdSegments()
        {
            var id       = "KLM 12345 BCA";
            var flightId = FlightId.From(id);

            flightId.Segment1.Should().Be("KLM");
            flightId.Segment2.Should().Be("12345");
            flightId.Segment3.Should().Be("BCA");
        }
示例#11
0
 /**
  * Constructor with given parameters
  **/
 public FlightPlan(int passengersNum, string company, InitialLocation init,
                   List <Segment> seg)
 {
     Id              = FlightId.GetRandomId();
     Passengers      = passengersNum;
     CompanyName     = company;
     InitialLocation = init;
     // the all path
     Segments = seg;
 }
示例#12
0
 public FlightCreated(FlightId flightId,
                      IataAirportCode fromAirport, IataAirportCode toAirport,
                      LocalTime departureTime, LocalTime arrivalTime)
 {
     FlightId      = flightId;
     FromAirport   = fromAirport ?? throw new ArgumentNullException(nameof(fromAirport));
     ToAirport     = toAirport ?? throw new ArgumentNullException(nameof(toAirport));
     DepartureTime = departureTime;
     ArrivalTime   = arrivalTime;
 }
示例#13
0
 /**
  * Constructor with given parameters
  **/
 public Flight(double lon, double lat, int passengersNum, string company,
               DateTime time, bool external)
 {
     Id          = FlightId.GetRandomId();
     Longitude   = lon;
     Latitude    = lat;
     Passengers  = passengersNum;
     CompanyName = company;
     DateTime    = time;
     IsExternal  = external;
 }
示例#14
0
 public FlightDetails(
     FlightId id,
     VersionTag versionTag,
     ushort capacity,
     IEnumerable <Booking> bookings)
 {
     Id         = id;
     VersionTag = versionTag;
     Capacity   = capacity;
     Bookings   = bookings;
 }
示例#15
0
        private void flightSaktaubyValues(string propertyNameFieldtxt, string valueFieldtxt)
        {
            var todoItem = (flight)BindingContext;

            ServiceReference2.AMSIntegrationServiceClient proxy = new ServiceReference2.AMSIntegrationServiceClient(
                ServiceReference2.AMSIntegrationServiceClient.EndpointConfiguration.BasicHttpBinding_IAMSIntegrationService,
                "http://57.31.17.135/SITAAMSIntegrationService/v1/SITAAMSIntegrationService/");

            FlightId idFl = new FlightId();

            idFl.flightNumberField  = todoItem.FlightNumber;
            idFl.scheduledDateField = todoItem.FlightSTA;
            idFl.flightKindField    = FlightKind.Arrival;

            LookupCode asq = new LookupCode();

            asq.codeContextField = CodeContext.IATA;
            asq.valueField       = todoItem.CIata;


            ObservableCollection <LookupCode> airdEs = new ObservableCollection <LookupCode>();

            airdEs.Add(asq);
            idFl.airlineDesignatorField = airdEs;

            LookupCode qsa = new LookupCode();

            qsa.codeContextField = CodeContext.IATA;
            qsa.valueField       = "TSE";

            ObservableCollection <LookupCode> airportLo = new ObservableCollection <LookupCode>();

            airportLo.Add(qsa);
            idFl.airportCodeField = airportLo;

            PropertyValue val1 = new PropertyValue();

            val1.valueField        = valueFieldtxt;
            val1.propertyNameField = propertyNameFieldtxt;

            ObservableCollection <PropertyValue> values = new ObservableCollection <PropertyValue>();

            values.Add(val1);

            proxy.UpdateFlightCompleted += Proxy_UpdateFlightCompleted;
            proxy.UpdateFlightAsync(idFl, values);
        }
        public async Task ShouldReturnOneFlightWithCustomPrice()
        {
            var from   = DateTimeOffset.Parse("2021-02-02T10:00:00Z");
            var tenant = new Tenant
            {
                Id          = 1,
                Name        = "test",
                TenantGroup = Domain.Enums.TenantGroup.A
            };

            Context.Tenants.Add(tenant);
            Context.Flights.Add(new Flight
            {
                FlightId     = FlightId.From("KLM 12345 BCA"),
                Monday       = true,
                DefaultPrice = 24,
                From         = "Europe",
                To           = "Africa",
                Hour         = 10,
                Minute       = 30,
                CreatedBy    = tenant,
                CustomPrices = new List <FlightPrice>
                {
                    new FlightPrice
                    {
                        From  = from,
                        To    = from.AddDays(10),
                        Value = 30
                    }
                }
            });

            Context.SaveChanges();

            var availableFlightsQuery = new GetAvailableFlightQueryHandler(Context, _mapper);
            var result = await availableFlightsQuery.Handle(new GetAvailableFlightQuery
            {
                FlightId = FlightId.From("KLM 12345 BCA"),
                From     = from,
                To       = from.AddDays(7)
            }, CancellationToken.None);

            Assert.True(result.Count == 1);
            Assert.AreEqual("2021-02-08 10:30:00", result.First().DepartureDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
            Assert.AreEqual(30, result.First().Price);
        }
示例#17
0
        public PassengerBaggage(Flight flight, Passenger passenger, BaggageLimits baggageLimits)
        {
            if (flight == null)
            {
                throw new ArgumentNullException(nameof(flight));
            }
            if (passenger == null)
            {
                throw new ArgumentNullException(nameof(passenger));
            }

            baggage = new List <PassengerBag>();

            PassengerId = PassengerId.Of(passenger.Id);
            FlightId    = FlightId.Of(flight.Id);

            Limits = baggageLimits ?? throw new ArgumentNullException(nameof(baggageLimits));
        }
        public async Task ShouldPersistNewFlightPurchaseInDbContext()
        {
            var tenant = new Tenant
            {
                Id          = 1,
                Name        = "test",
                TenantGroup = Domain.Enums.TenantGroup.A
            };

            Context.Tenants.Add(tenant);
            Context.Flights.Add(new Flight
            {
                FlightId     = FlightId.From("KLM 12345 BCA"),
                Monday       = true,
                DefaultPrice = 24,
                From         = "Europe",
                To           = "Africa",
                Hour         = 10,
                Minute       = 30,
                CreatedBy    = tenant
            });

            Context.SaveChanges();

            var from = DateTimeOffset.Parse("2021-02-02T10:00:00Z");

            var availableFlightsQuery = new GetAvailableFlightQueryHandler(Context, _mapper);
            var result = await availableFlightsQuery.Handle(new GetAvailableFlightQuery
            {
                FlightId = FlightId.From("KLM 12345 BCA"),
                From     = from,
                To       = from.AddDays(7)
            }, CancellationToken.None);

            var createFlightPurchaseCommand = new CreateFlightPurchaseCommandHandler(Context, _mapper);
            var purchase = await createFlightPurchaseCommand.Handle(new CreateFlightPurchaseCommand
            {
                Flight   = result.First(),
                TenantId = 1
            }, CancellationToken.None);

            //assert
            Assert.IsTrue(Context.FlightPurchases.Count() == 1);
        }
        public async Task ShouldReturnZeroResults()
        {
            var tenant = new Tenant
            {
                Id          = 1,
                Name        = "test",
                TenantGroup = Domain.Enums.TenantGroup.A
            };

            Context.Tenants.Add(tenant);
            Context.Flights.Add(new Flight
            {
                FlightId     = FlightId.From("KLM 12345 BCA"),
                Monday       = true,
                DefaultPrice = 24,
                From         = "Europe",
                To           = "Africa",
                Hour         = 10,
                Minute       = 30,
                CreatedBy    = tenant
            });

            Context.SaveChanges();

            var from = DateTimeOffset.Parse("2021-02-02T10:00:00Z");

            var availableFlightsQuery = new GetAvailableFlightQueryHandler(Context, _mapper);
            var result = await availableFlightsQuery.Handle(new GetAvailableFlightQuery
            {
                FlightId = FlightId.From("KLM 12345 BCA"),
                From     = from,
                To       = from.AddDays(4)
            }, CancellationToken.None);

            Assert.True(result.Count == 0);
        }
 public FlightSummary(FlightId id, ushort capacity, ushort numberOfBookedSeats)
 {
     Id                  = id;
     Capacity            = capacity;
     NumberOfBookedSeats = numberOfBookedSeats;
 }
示例#21
0
 public void ShouldThrowUnsupportedFlightIdExceptionGivenNotSupportedId()
 {
     FluentActions.Invoking(() => FlightId.From("KLM 12345 BCAx"))
     .Should().Throw <UnsupportedFlightIdException>();
 }
示例#22
0
 public BookSeatsCommand(FlightId flightId, VersionTag?versionTag, ushort numberOfSeats)
 {
     FlightId      = flightId;
     VersionTag    = versionTag;
     NumberOfSeats = numberOfSeats;
 }
 public Created(FlightId id)
 {
     Id = id;
 }
示例#24
0
 public Command(FlightId flightId, int numberOfSeats, string reservationId)
 {
     FlightId      = flightId;
     NumberOfSeats = numberOfSeats;
     ReservationId = reservationId;
 }
 public GetFlightDetailsQuery(FlightId flightId)
 {
     FlightId = flightId;
 }
 public FlightSeatsAllotted(FlightId flightId, int numberOfSeats)
 {
     FlightId      = flightId;
     NumberOfSeats = numberOfSeats;
 }
 public Command(FlightId flightId, int numberOfSeats)
 {
     FlightId      = flightId;
     NumberOfSeats = numberOfSeats;
 }
 public Success(FlightId flightId)
 {
     FlightId = flightId;
 }
示例#29
0
 protected bool Equals(FlightId other)
 {
     return(value == other.value);
 }
        public virtual string GetProperty(string strPropertyName, string strFormat, System.Globalization.CultureInfo formatProvider, DotNetNuke.Entities.Users.UserInfo accessingUser, DotNetNuke.Services.Tokens.Scope accessLevel, ref bool propertyNotFound)
        {
            switch (strPropertyName.ToLower())
            {
            case "flightid": // Int
                return(FlightId.ToString(strFormat, formatProvider));

            case "portalid": // Int
                return(PortalId.ToString(strFormat, formatProvider));

            case "userid": // Int
                return(UserId.ToString(strFormat, formatProvider));

            case "category": // Int
                return(Category.ToString(strFormat, formatProvider));

            case "takeoffdescription": // NVarChar
                return(PropertyAccess.FormatString(TakeoffDescription, strFormat));

            case "takeofftime": // DateTime
                return(TakeoffTime.ToString(strFormat, formatProvider));

            case "takeoffcoords": // NVarChar
                if (TakeoffCoords == null)
                {
                    return("");
                }
                ;
                return(PropertyAccess.FormatString(TakeoffCoords, strFormat));

            case "takeofflatitude": // Float
                return(TakeoffLatitude.ToString(strFormat, formatProvider));

            case "takeofflongitude": // Float
                return(TakeoffLongitude.ToString(strFormat, formatProvider));

            case "takeoffaltitude": // Int
                if (TakeoffAltitude == null)
                {
                    return("");
                }
                ;
                return(((int)TakeoffAltitude).ToString(strFormat, formatProvider));

            case "landingdescription": // NVarChar
                if (LandingDescription == null)
                {
                    return("");
                }
                ;
                return(PropertyAccess.FormatString(LandingDescription, strFormat));

            case "landingtime": // DateTime
                return(LandingTime.ToString(strFormat, formatProvider));

            case "landingcoords": // NVarChar
                if (LandingCoords == null)
                {
                    return("");
                }
                ;
                return(PropertyAccess.FormatString(LandingCoords, strFormat));

            case "landinglatitude": // Float
                return(LandingLatitude.ToString(strFormat, formatProvider));

            case "landinglongitude": // Float
                return(LandingLongitude.ToString(strFormat, formatProvider));

            case "landingaltitude": // Int
                if (LandingAltitude == null)
                {
                    return("");
                }
                ;
                return(((int)LandingAltitude).ToString(strFormat, formatProvider));

            case "landingbeaconid": // Int
                if (LandingBeaconId == null)
                {
                    return("");
                }
                ;
                return(((int)LandingBeaconId).ToString(strFormat, formatProvider));

            case "maxheight": // Int
                if (MaxHeight == null)
                {
                    return("");
                }
                ;
                return(((int)MaxHeight).ToString(strFormat, formatProvider));

            case "maxvario": // Float
                if (MaxVario == null)
                {
                    return("");
                }
                ;
                return(((double)MaxVario).ToString(strFormat, formatProvider));

            case "maxspeed": // Float
                if (MaxSpeed == null)
                {
                    return("");
                }
                ;
                return(((double)MaxSpeed).ToString(strFormat, formatProvider));

            case "averagespeed": // Float
                if (AverageSpeed == null)
                {
                    return("");
                }
                ;
                return(((double)AverageSpeed).ToString(strFormat, formatProvider));

            case "durationmins": // Int
                return(DurationMins.ToString(strFormat, formatProvider));

            case "distance": // Int
                return(Distance.ToString(strFormat, formatProvider));

            case "status": // Int
                return(Status.ToString(strFormat, formatProvider));

            case "totalpoints": // Int
                return(TotalPoints.ToString(strFormat, formatProvider));

            case "entrymethod": // Int
                return(EntryMethod.ToString(strFormat, formatProvider));

            case "summary": // NVarChar
                if (Summary == null)
                {
                    return("");
                }
                ;
                return(PropertyAccess.FormatString(Summary, strFormat));

            case "validatedbyuserid": // Int
                if (ValidatedByUserID == null)
                {
                    return("");
                }
                ;
                return(((int)ValidatedByUserID).ToString(strFormat, formatProvider));

            case "validatedondate": // DateTime
                if (ValidatedOnDate == null)
                {
                    return("");
                }
                ;
                return(((DateTime)ValidatedOnDate).ToString(strFormat, formatProvider));

            default:
                propertyNotFound = true;
                break;
            }

            return(Null.NullString);
        }