Пример #1
0
        public void CreateTrip_POST()
        {
            var airSegment = new AirSegment()
            {
                ArrivalAirportCode   = RandomHelper.GetRandomGuid(),
                ArrivalDate          = "Jan 20, 2020, 12:30:00",
                DepartureAirportCode = RandomHelper.GetRandomGuid(),
                DepartureDate        = "Jan 20, 2020, 12:30:00"
            };

            var traveller = new Traveller()
            {
                FirstName      = "JOE",
                LastName       = "Soda",
                PersonalNumber = 5,
                Email          = "*****@*****.**"
            };

            Trip trip = new Trip()
            {
                Id          = RandomHelper.GetRandomGuid(),
                BookingDate = "Jan 20, 2020, 12:30:00",
                AirSegments = new List <AirSegment>()
                {
                    airSegment
                },
                Travellers = new List <Traveller>()
                {
                    traveller
                }
            };

            var response = TripService.CreateTrip(trip);

            DataCollectionClass <Trip> dataCollection = JsonHelper.Deserialize <Trip>();

            dataCollection.DataCollection.Add(trip);
            JsonHelper.Serialize <Trip>(dataCollection);

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode, "Incorrect creating of trip");
        }
Пример #2
0
        public ICollection <NameElement> GetNameElements(string typeName)
        {
            List <NameElement> nameElementsList = new List <NameElement>();

            if (typeName == "NameElement")
            {
                XmlNodeList innerElement = GetChildNodesByName("NameElement");

                for (int i = 0; i < innerElement.Count; i++)
                {
                    NameElement nameElement = new NameElement();
                    var         items       = innerElement.Item(i);
                    var         nodes       = items.Cast <XmlNode>();
                    foreach (XmlNode node in nodes)
                    {
                        switch (node.Name)
                        {
                        case "Tattoo":
                        {
                            nameElement.Tattoo = Convert.ToInt32(node.InnerText);
                            break;
                        }

                        case "ElementNo":
                        {
                            nameElement.ElementNo = Convert.ToInt32(node.InnerText);
                            break;
                        }

                        case "LastName":
                        {
                            nameElement.LastName = node.InnerText;
                            break;
                        }

                        case "FirstName":
                        {
                            nameElement.FirstName = node.InnerText;
                            break;
                        }

                        case "Title":
                        {
                            nameElement.Title = node.InnerText;
                            break;
                        }

                        default:
                        {
                            //Console.WriteLine($"Property {node.Name} not assign!");
                            break;
                        }
                        }
                    }

                    List <SsrDocs> ssrDocsList     = new List <SsrDocs>();
                    XmlNodeList    ssrDocsElements = GetChildNodesByName("SsrDocs");
                    for (int j = 0; j < ssrDocsElements.Count; j++)
                    {
                        SsrDocs ssrDocs = new SsrDocs();
                        items = ssrDocsElements.Item(j);
                        nodes = items.Cast <XmlNode>();
                        foreach (XmlNode node in nodes)
                        {
                            switch (node.Name)
                            {
                            case "AirlineCode":
                            {
                                ssrDocs.AirlineCode = node.InnerText;
                                break;
                            }

                            case "DocType":
                            {
                                ssrDocs.DocType = node.InnerText;
                                break;
                            }

                            case "DocCountry":
                            {
                                ssrDocs.DocCountry = node.InnerText;
                                break;
                            }

                            case "DocNumber":
                            {
                                ssrDocs.DocNumber = node.InnerText;
                                break;
                            }

                            case "PaxCountry":
                            {
                                ssrDocs.PaxCountry = node.InnerText;
                                break;
                            }

                            case "BirthDate":
                            {
                                ssrDocs.BirthDate = node.InnerText;
                                break;
                            }

                            case "Gender":
                            {
                                ssrDocs.Gender = node.InnerText;
                                break;
                            }

                            case "ExpiryDate":
                            {
                                ssrDocs.ExpiryDate = node.InnerText;
                                break;
                            }

                            case "LastName":
                            {
                                ssrDocs.LastName = node.InnerText;
                                break;
                            }

                            case "FirstName":
                            {
                                ssrDocs.FirstName = node.InnerText;
                                break;
                            }

                            default:
                            {
                                break;
                            }
                            }
                        }
                        ssrDocsList.Add(ssrDocs);
                    }
                    ;
                    nameElement.SsrDocs = ssrDocsList;

                    List <Ticket> ticketsList     = new List <Ticket>();
                    XmlNodeList   ticketsElements = GetChildNodesByName("Ticket");
                    for (int k = 0; k < ticketsElements.Count; k++)
                    {
                        Ticket ticket      = new Ticket();
                        var    ticketNodes = ticketsElements.Item(k).Cast <XmlNode>();
                        foreach (XmlNode node in ticketNodes)
                        {
                            switch (node.Name)
                            {
                            case "OfficeidTicketing":
                            {
                                ticket.OfficeidTicketing = node.InnerText;
                                break;
                            }

                            case "Status":
                            {
                                ticket.Status = node.InnerText;
                                break;
                            }

                            case "No":
                            {
                                ticket.No = node.InnerText;
                                break;
                            }

                            case "IataAgencyCode":
                            {
                                ticket.IataAgencyCode = node.InnerText;
                                break;
                            }

                            case "ValidatingCarrier":
                            {
                                ticket.ValidatingCarrier = node.InnerText;
                                break;
                            }

                            case "DocCurrency":
                            {
                                ticket.DocCurrency = node.InnerText;
                                break;
                            }

                            case "FareCurrency":
                            {
                                ticket.FareCurrency = node.InnerText;
                                break;
                            }

                            case "Fare":
                            {
                                ticket.Fare = Convert.ToDouble(node.InnerText);
                                break;
                            }

                            case "FareEquiv":
                            {
                                ticket.FareEquiv = Convert.ToDouble(node.InnerText);
                                break;
                            }

                            case "FareRate":
                            {
                                ticket.FareRate = Convert.ToDouble(node.InnerText);
                                break;
                            }

                            case "DocTotal":
                            {
                                ticket.DocTotal = Convert.ToDouble(node.InnerText);
                                break;
                            }

                            case "DocGrandTotal":
                            {
                                ticket.DocGrandTotal = Convert.ToDouble(node.InnerText);
                                break;
                            }

                            case "MiscellaneousFeesTotal":
                            {
                                ticket.MiscellaneousFeesTotal = Convert.ToDouble(node.InnerText);
                                break;
                            }

                            case "MiscellaneousFeesVatTotal":
                            {
                                ticket.MiscellaneousFeesVatTotal = Convert.ToDouble(node.InnerText);
                                break;
                            }

                            case "TaxTotal":
                            {
                                ticket.TaxTotal = Convert.ToDouble(node.InnerText);
                                break;
                            }

                            case "Commission":
                            {
                                ticket.Commission = node.InnerText;
                                break;
                            }

                            case "TourCode":
                            {
                                ticket.TourCode = node.InnerText;
                                break;
                            }

                            case "Endorsement":
                            {
                                ticket.Endorsement = node.InnerText;
                                break;
                            }

                            case "Type":
                            {
                                ticket.Type = node.InnerText;
                                break;
                            }

                            case "Ttype":
                            {
                                ticket.Ttype = node.InnerText;
                                break;
                            }

                            case "FlightClass":
                            {
                                ticket.FlightClass = node.InnerText;
                                break;
                            }

                            case "OrigCity":
                            {
                                ticket.OrigCity = node.InnerText;
                                break;
                            }

                            case "DestCity":
                            {
                                ticket.DestCity = node.InnerText;
                                break;
                            }

                            default:
                            {
                                break;
                            }
                            }
                        }


                        // Парсим сегменты авиа маршрутов
                        List <AirSegment> airSegmentList      = new List <AirSegment>();
                        XmlNodeList       airSegmentsElements = GetChildNodesByName("AirSegment");
                        for (int m = 0; m < airSegmentsElements.Count; m++)
                        {
                            AirSegment airSegment = new AirSegment();
                            var        airNodes   = airSegmentsElements.Item(m).Cast <XmlNode>();
                            foreach (XmlNode node in airNodes)
                            {
                                switch (node.Name)
                                {
                                case "No":
                                {
                                    airSegment.No = Convert.ToInt32(node.InnerText);
                                    break;
                                }

                                case "ServiceCarrier":
                                {
                                    airSegment.ServiceCarrier = node.InnerText;
                                    break;
                                }

                                case "FlightNo":
                                {
                                    airSegment.FlightNo = node.InnerText;
                                    break;
                                }

                                case "AirClass":
                                {
                                    airSegment.AirClass = node.InnerText;
                                    break;
                                }

                                case "BkgClass":
                                {
                                    airSegment.BkgClass = node.InnerText;
                                    break;
                                }

                                case "DepartureDate":
                                {
                                    airSegment.DepartureDate = node.InnerText;
                                    break;
                                }

                                case "DepartureTime":
                                {
                                    airSegment.DepartureTime = node.InnerText;
                                    break;
                                }

                                case "ArrivalDate":
                                {
                                    airSegment.ArrivalDate = node.InnerText;
                                    break;
                                }

                                case "ArrivalTime":
                                {
                                    airSegment.ArrivalTime = node.InnerText;
                                    break;
                                }

                                case "FareBasis":
                                {
                                    airSegment.FareBasis = node.InnerText;
                                    break;
                                }

                                case "BaggageAllow":
                                {
                                    airSegment.BaggageAllow = node.InnerText;
                                    break;
                                }

                                case "Meal":
                                {
                                    airSegment.Meal = node.InnerText;
                                    break;
                                }

                                case "TerminalArrival":
                                {
                                    airSegment.TerminalArrival = node.InnerText;
                                    break;
                                }

                                case "FlightDurationTime":
                                {
                                    airSegment.FlightDurationTime = node.InnerText;
                                    break;
                                }

                                case "Mileage":
                                {
                                    airSegment.Mileage = node.InnerText;
                                    break;
                                }

                                case "Equipment":
                                {
                                    airSegment.Equipment = node.InnerText;
                                    break;
                                }

                                case "AcRecLoc":
                                {
                                    airSegment.AcRecLoc = node.InnerText;
                                    break;
                                }

                                default:
                                {
                                    break;
                                }
                                }
                            }

                            // Парсим аэропорты
                            Airport origAirport = new Airport();
                            var     origNodes   = GetChildNodesByName("OrigAirport").Cast <XmlNode>();
                            foreach (XmlNode node in origNodes)
                            {
                                switch (node.Name)
                                {
                                case "Code":
                                {
                                    origAirport.Code = node.InnerText;
                                    break;
                                }

                                case "AmaName":
                                {
                                    origAirport.AmaName = node.InnerText;
                                    break;
                                }

                                default:
                                {
                                    Console.WriteLine($"Property {node.Name} not assign!");
                                    break;
                                }
                                }
                            }
                            airSegment.OrigAirport = origAirport;
                            Airport destAirport = new Airport();
                            var     destNodes   = GetChildNodesByName("DestAirport").Cast <XmlNode>();
                            foreach (XmlNode node in destNodes)
                            {
                                switch (node.Name)
                                {
                                case "Code":
                                {
                                    destAirport.Code = node.InnerText;
                                    break;
                                }

                                case "AmaName":
                                {
                                    destAirport.AmaName = node.InnerText;
                                    break;
                                }

                                default:
                                {
                                    Console.WriteLine($"Property {node.Name} not assign!");
                                    break;
                                }
                                }
                            }
                            airSegment.DestAirport = destAirport;

                            airSegmentList.Add(airSegment);
                        }
                        ;
                        // Парсим таксы билетов
                        List <Tax>  taxesList     = new List <Tax>();
                        XmlNodeList taxesElements = GetChildNodesByName("Tax");
                        for (int n = 0; n < taxesElements.Count; n++)
                        {
                            Tax tax     = new Tax();
                            var taxNode = taxesElements.Item(n).Cast <XmlNode>();
                            foreach (XmlNode node in taxNode)
                            {
                                switch (node.Name)
                                {
                                case "Amount":
                                {
                                    tax.Amount = Convert.ToDouble(node.InnerText);
                                    break;
                                }

                                case "TaxCode":
                                {
                                    tax.TaxCode = node.InnerText;
                                    break;
                                }

                                case "NatureCode":
                                {
                                    tax.NatureCode = node.InnerText;
                                    break;
                                }

                                default:
                                {
                                    Console.WriteLine($"Property {node.Name} not assign!");
                                    break;
                                }
                                }
                            }
                            taxesList.Add(tax);
                        }
                        ;

                        // Получаем иформацию об истории
                        List <History> historyList     = new List <History>();
                        XmlNodeList    historyElements = GetChildNodesByName("History");
                        for (int q = 0; q < historyElements.Count; q++)
                        {
                            History history      = new History();
                            var     historyNodes = historyElements.Item(q).Cast <XmlNode>();
                            foreach (XmlNode node in historyNodes)
                            {
                                switch (node.Name)
                                {
                                case "Action":
                                {
                                    history.Action = node.InnerText;
                                    break;
                                }

                                case "ActionDate":
                                {
                                    history.ActionDate = node.InnerText;
                                    break;
                                }

                                case "AirFile":
                                {
                                    history.AirFile = node.InnerText;
                                    break;
                                }

                                case "AgentSign":
                                {
                                    history.AgentSign = node.InnerText;
                                    break;
                                }

                                case "Amount":
                                {
                                    history.Amount = node.InnerText;
                                    break;
                                }

                                case "NationalAmount":
                                {
                                    history.NationalAmount = node.InnerText;
                                    break;
                                }

                                case "NationalCurrency":
                                {
                                    history.NationalCurrency = node.InnerText;
                                    break;
                                }

                                case "FormOfPayment":
                                {
                                    history.FormOfPayment = node.InnerText;
                                    break;
                                }

                                default:
                                {
                                    Console.WriteLine($"Property {node.Name} not assign!");
                                    break;
                                }
                                }
                            }
                            historyList.Add(history);
                        }
                        ticket.History    = historyList;
                        ticket.AirSegment = airSegmentList;
                        ticket.Tax        = taxesList;
                        ticketsList.Add(ticket);
                    }

                    nameElement.Ticket = ticketsList;   // Add ticket to name collection
                    nameElementsList.Add(nameElement);  // Add nameElem to collection
                }
            }
            return(nameElementsList);
        }