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"); }
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); }