//US 25.02.2014 //Suchparameter könen noch nicht ausgewertet werden, da die XML Deserialisierung mit "dataTransfer" noch nicht funktioniert public searchSalesVehiclesResponse searchSalesVehicles(searchSalesVehiclesRequest request) { Int32 fahrzeugid; string fahrzeugstatus = ""; string auftragstatusverkauf = ""; string strStandtage = ""; Int32 standtage; string zulassungskz = ""; string marke = ""; string verkaufstyp = ""; string bezeichnung = ""; DateTime datumerstzulassung; string datErstzulassung = ""; DateTime datumausgang; string datAusgang = ""; Int32 kilometerstand; string farbe = ""; Int32 kw; string strKW = ""; string strKilometerstand = ""; decimal vkempfohlenbrutto; decimal vkgeplantbrutto; string fahrzeugart = ""; string strvke = ""; string strvkg = ""; DateTime dtDefaultDB; dtDefaultDB = Convert.ToDateTime("01.01.1900"); datumerstzulassung = dtDefaultDB; searchSalesVehiclesResponse res = new searchSalesVehiclesResponse(); interfaceData iData = new interfaceData(); salesVehicleType sV; System.Collections.ArrayList aFahrzeuge = new System.Collections.ArrayList(); salesmanType sT = new salesmanType(); sT.identifier = "fmad"; sT.name = "Fmade"; System.Xml.Serialization.XmlSerializer xmlReader = new System.Xml.Serialization.XmlSerializer(typeof(Bungert.interfaceData)); TextReader txtReader = new StringReader(request.Body.arg0); Bungert.interfaceData data = new Bungert.interfaceData(); data = (Bungert.interfaceData)xmlReader.Deserialize(txtReader); //Filter wird verarbeitet string vinShort = ""; string licensePlate = ""; string matchCode = ""; string bodywork = ""; string brand = ""; string color = ""; string fueltype = ""; Bungert.interfaceDataSearchSalesVehicleFirstRegistration[] fR; string fRfrom = ""; string fRto = ""; Bungert.interfaceDataSearchSalesVehicleMilage[] mile; string mileFrom = ""; string mileTo = ""; string model = ""; Bungert.interfaceDataSearchSalesVehiclePrice[] price; string priceFrom = ""; string priceTo = ""; Bungert.interfaceDataSearchSalesVehiclePS[] ps; string psFrom = ""; string psTo = ""; string salesState = ""; Bungert.interfaceDataSearchSalesVehicleStandingTime[] standingT; string standingTfrom = ""; string standingTto = ""; string stockState = ""; Bungert.interfaceDataSearchSalesVehicleVehicleTypesVehicleType[] vehicleTypes; string vehicleT = ""; string sqlWhere = ""; //verkürzte Fahrgestellnr if (!String.IsNullOrWhiteSpace(vinShort = data.Items[0].vinShort)) sqlWhere += " AND lower(a.fahrgestellnr) like '%" + vinShort.ToLower() + "%'"; //ZulassungsKZ if (!String.IsNullOrWhiteSpace(licensePlate = data.Items[0].licensePlate)) sqlWhere += " AND replace(lower(a.zulassungskz), ' ', '') like '%" + licensePlate.ToLower().Replace(" ","") + "%'"; //Bezeichnung if (!String.IsNullOrWhiteSpace(matchCode = data.Items[0].matchcode)) sqlWhere += " AND lower(a.bezeichnung) like '%" + matchCode.ToLower() + "%'"; //Ausführung (Limousine/Kombi usw.) //bodywork = data.Items[0].bodywork; //Marke if(!String.IsNullOrWhiteSpace(brand = data.Items[0].brand)) sqlWhere += " AND lower(a.marke) = '" + brand.ToLower() + "'"; //Farbe if(!String.IsNullOrWhiteSpace(color = data.Items[0].color)) sqlWhere += " AND lower(a.farbe) like '%" + color.ToLower() + "%'"; //Datum Erstzulassung fR = data.Items[0].firstRegistration; if (fR != null) { if(!String.IsNullOrWhiteSpace(fRfrom = fR[0].from)) sqlWhere += " AND a.datumerstzulassung >= '" + fRfrom.Substring(0,4) + "-" + fRfrom.Substring(4,2) + "-" + fRfrom.Substring(6,2) + "'"; if(!String.IsNullOrWhiteSpace(fRto = fR[0].to)) sqlWhere += " AND a.datumerstzulassung <= '" + fRto.Substring(0, 4) + "-" + fRto.Substring(4, 2) + "-" + fRto.Substring(6, 2) + "'"; } //Treibstoff if (!String.IsNullOrWhiteSpace(fueltype = data.Items[0].fuelType)) sqlWhere += " AND Upper(a.treibstoff) like '" + fueltype + "%'"; //Kilometerstand mile = data.Items[0].milage; if (mile != null) { if (!String.IsNullOrWhiteSpace(mileFrom = mile[0].from)) sqlWhere += " AND a.kilometerstand >= " + mileFrom; if (!String.IsNullOrWhiteSpace(mileTo = mile[0].to)) sqlWhere += " AND a.kilometerstand <= " + mileTo; } //Verkaufstyp if (!String.IsNullOrWhiteSpace(model = data.Items[0].model)) { sqlWhere += " AND (trim(a.verkaufstyp) like '" + model.Trim().Replace(" ", "") + "%'"; sqlWhere += " OR trim(a.bezeichnung) like '" + model.Trim().Replace(" ", "") + "%')"; } //VK empfohlen brutto price = data.Items[0].price; if (price != null) { if (!String.IsNullOrWhiteSpace(priceFrom = price[0].from)) sqlWhere += " AND b.vkempfohlenbrutto >= " + priceFrom; if (!String.IsNullOrWhiteSpace(priceTo = price[0].to)) sqlWhere += " AND b.vkempfohlenbrutto <= " + priceTo; } //PS (Umrechung auf KW) Faktor 1KW = 1,36PS ps = data.Items[0].ps; if (ps != null) { if (!String.IsNullOrWhiteSpace(psFrom = ps[0].from)) sqlWhere += " AND a.kw >= " + psFrom + "/1.36"; if (!String.IsNullOrWhiteSpace(psTo = ps[0].to)) sqlWhere += " AND a.kw <= " + psTo + "/1.36"; } //salesState = data.Items[0].salesState; //Standzeit //standingT = data.Items[0].standingTime; //standingTfrom = standingT[0].from; //standingTto = standingT[0].to; //stockState = data.Items[0].stockState; vehicleTypes = data.Items[0].vehicleTypes; if (vehicleTypes != null) { foreach (Bungert.interfaceDataSearchSalesVehicleVehicleTypesVehicleType vT in vehicleTypes) { switch (vT.Value) { case "demo": vehicleT += "'vorführwagen',"; break; case "used": vehicleT += "'gebrauchtwagen',"; break; case "new": vehicleT += "'neuwagen',"; break; //Wird in P2 nicht verwendet //case "agency": // vehicleT += "'agency'"; // break; } } } if (!String.IsNullOrWhiteSpace(vehicleT)) { vehicleT = "(" + vehicleT.Substring(0, vehicleT.Length - 1) + ")"; sqlWhere += " AND lower(b.fahrzeugart) IN " + vehicleT; } using (DBConnect myConnect = new DBConnect()) { String sqlCommand; //SQL Standtage US 23.05.2014 //if datumausgang is null then // datediff(day,datumeingang,today(*)) // else //datediff(day,datumeingang,datumausgang) //endif as Standtage, sqlCommand = "SELECT b.fahrzeugid, b.fahrzeugstatus, a.marke, a.verkaufstyp, a.bezeichnung, "; sqlCommand += "a.kw, a.farbe, a.datumerstzulassung, a.kilometerstand, b.vkempfohlenbrutto, b.vkgeplantbrutto, b.fahrzeugart, a.zulassungskz, "; sqlCommand += "b.auftragstatusverkauf, if b.datumausgang is null then datediff(day,b.datumeingang,today(*)) else datediff(day,b.datumeingang,b.datumausgang) endif, b.datumausgang"; sqlCommand += " FROM bungert.fahrzeug a, bungert.fahrzeugauftrag b"; sqlCommand += " WHERE a.fahrzeugid = b.fahrzeugid"; //sqlCommand += " AND b.zulassungskz = 'B-AR 6700'"; if(!String.IsNullOrWhiteSpace(sqlWhere)) sqlCommand += sqlWhere; sqlCommand += " ORDER BY b.fahrzeugid"; OdbcCommand cmd = new OdbcCommand(sqlCommand, myConnect.conn); myConnect.Connect(); OdbcDataReader reader; //DataReader Objekt wird initialisiert using (reader = cmd.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { sV = new salesVehicleType(); fahrzeugid = reader.GetInt32(0); fahrzeugstatus = reader.GetValue(1).ToString(); marke = reader.GetValue(2).ToString(); verkaufstyp = reader.GetValue(3).ToString(); bezeichnung = reader.GetValue(4).ToString(); strKW = reader.GetValue(5).ToString(); farbe = reader.GetValue(6).ToString(); datErstzulassung = reader.GetValue(7).ToString(); strKilometerstand = reader.GetValue(8).ToString(); //US 12.02.2014 - Umsetzung: Fehler bei Nullwerten während der Konvertierung zu Decimal //vkempfohlenbrutto = reader.GetDecimal(9); strvke = reader.GetValue(9).ToString(); strvkg = reader.GetValue(10).ToString(); //vkgeplantbrutto = reader.GetDecimal(10); fahrzeugart = reader.GetValue(11).ToString(); zulassungskz = reader.GetValue(12).ToString(); auftragstatusverkauf = reader.GetValue(13).ToString(); strStandtage = reader.GetValue(14).ToString(); datAusgang = reader.GetValue(15).ToString(); Decimal.TryParse(strvke, out vkempfohlenbrutto); Decimal.TryParse(strvkg, out vkgeplantbrutto); //Datum Erstzulassung if (String.IsNullOrWhiteSpace(datErstzulassung)) { datumerstzulassung = dtDefaultDB; } else { datumerstzulassung = Convert.ToDateTime(datErstzulassung); } //US 10.02.2014 //Standort muss zum Verkaeufer passen - standardmäßig "location=1" sV.location = 1; sV.vehicleNumber = fahrzeugid; salesVehicleTypeHeader sVTH = new salesVehicleTypeHeader(); sVTH.licensePlate = zulassungskz; sVTH.brand = marke; sVTH.modelShort = verkaufstyp; sVTH.model = bezeichnung; sVTH.modelLong = bezeichnung; if (String.IsNullOrWhiteSpace(strKW)) { kw = 0; } else { kw = Convert.ToInt32(strKW); } sVTH.kw = kw; sVTH.kwSpecified = true; if (String.IsNullOrWhiteSpace(strKilometerstand)) { kilometerstand = 0; } else { kilometerstand = Convert.ToInt32(strKilometerstand); } sVTH.milage = kilometerstand; sVTH.milageSpecified = true; sVTH.listPrice = Convert.ToDouble(vkempfohlenbrutto); sVTH.listPriceSpecified = true; sVTH.actualSalesPrice = Convert.ToDouble(vkgeplantbrutto); sVTH.actualSalesPriceSpecified = true; //Datum Ausgang if (String.IsNullOrWhiteSpace(datAusgang)) { datumausgang = DateTime.MaxValue; } else { datumausgang = Convert.ToDateTime(datAusgang); } //Lagerstatus switch (fahrzeugstatus.ToUpper()) { case "NG": sVTH.stockState = StockState.bestellt; sVTH.salesState = SalesState.bestellt; break; default: //IN, VF, VK sVTH.stockState = StockState.lagernd; break; } if (datumausgang <= DateTime.Today) sVTH.stockState = StockState.ausgeliefert; //Verkaufsstatus if (fahrzeugstatus.ToUpper() == "NG") sVTH.salesState = SalesState.bestellt; switch (auftragstatusverkauf.ToUpper()) { case "ER": sVTH.salesState = SalesState.reserviert; break; case "FA": sVTH.salesState = SalesState.reserviert; break; case "AB": sVTH.salesState = SalesState.reserviert; break; case "NV": sVTH.salesState = SalesState.verfügbar; break; } if (String.IsNullOrWhiteSpace(strStandtage)) { standtage = 0; } else { standtage = Convert.ToInt32(strStandtage); } sVTH.standingTime = standtage; sV.header = sVTH; aFahrzeuge.Add(sV); } } reader.Close(); } } salesVehicleType[] aSalesVehicle = new salesVehicleType[aFahrzeuge.Count]; //List<salesVehicleType> aSalesVehicle = new List<salesVehicleType>(); for (int i = 0; i < aFahrzeuge.Count; i++) { salesVehicleType salesV = (salesVehicleType)aFahrzeuge[i]; aSalesVehicle[i] = salesV; } iData.salesVehicle = aSalesVehicle; iData.interfaceVersion = 1; iData.dataProvider = "STANDARD_INTERFACE"; iData.callingUser = sT; iData.transmissionReason = ""; System.IO.StringWriter stringWriter = new System.IO.StringWriter(); var serializer = new XmlSerializer(typeof(interfaceData)); using (var xw = XmlWriter.Create(stringWriter, new XmlWriterSettings { Encoding = new UTF8Encoding() })) { serializer.Serialize(xw, iData); } #region xml encoding //string result; //using (MemoryStream memoryStream = new MemoryStream()) //{ // XmlSerializer xs = new XmlSerializer(typeof(interfaceData)); // XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8); // xs.Serialize(xmlTextWriter, iData); // result = Encoding.UTF8.GetString(memoryStream.ToArray()); //} //if (String.IsNullOrEmpty(result)) // result = ""; #endregion searchSalesVehiclesResponseBody resBody = new searchSalesVehiclesResponseBody(); resBody.@return = stringWriter.ToString(); res.Body = resBody; return res; }
//US 26.02.2014 public getSalesVehicleDetailResponse getSalesVehicleDetail(getSalesVehicleDetailRequest request) { Int32 verkaueferid; string strVerkaeuferid = ""; Int32 kundenkontonr; string strKundenkontonr = ""; string kundensuchname = ""; string fahrgestellnr = ""; Int32 modelljahr; string strModelljahr = ""; string innenausstattung = ""; Int32 hubraum; string strHubraum = ""; string treibstoff = ""; string zuendschluesselnr = ""; string tuerschluesselnr = ""; string radiocode = ""; string zulassungskz = ""; DateTime datumabmeldung; string strDatumabmeldung = ""; Int32 anzahlvorbesitzer; Int32 vorbesitzeradrid; string kbahsnr = ""; string kbatsnr = ""; DateTime datumzulassungkunde; string strDatumzulassungkunde = ""; DateTime datumhu; string strDatumhu = ""; DateTime datumau; string strDatumau = ""; Boolean unfallfahrzeug; string kfzbriefnr = ""; string kfzbriefort = ""; DateTime datumausgang; string strDatumausgang = ""; DateTime datumverkauf; string strDatumverkauf = ""; Boolean differenzbesteuerung; Int32 einkaeufer; DateTime datumeingang; string strDatumeingang = ""; Int32 gutschriftnr; string zusatztext = ""; string aktenzeichen = ""; decimal optionenwerkvk; string strOWVK; decimal zubehoervk; string strZVK; decimal optionenhaendlervk; string strOHVK; decimal fahrzeugek; string strFEK; decimal optionenwerkek; string strOWEK; decimal optionenhaendlerek; string strOHEK; decimal zubehoerek; string strZEK; decimal aufbereitungek; string strAEK; string motorseriennr = ""; Int32 vehicleNumber = 0; Int32 auftragnr = 0; DateTime dtDefaultDB; dtDefaultDB = Convert.ToDateTime("01.01.1900"); datumabmeldung = dtDefaultDB; datumzulassungkunde = dtDefaultDB; unfallfahrzeug = false; datumausgang = dtDefaultDB; datumverkauf = dtDefaultDB; differenzbesteuerung = false; getSalesVehicleDetailResponse res = new getSalesVehicleDetailResponse(); interfaceData iData = new interfaceData(); salesVehicleTypeDetailsBasis sVDB; System.Collections.ArrayList aFahrzeuge = new System.Collections.ArrayList(); salesmanType sT = new salesmanType(); sT.identifier = "fmad"; sT.name = "Fmade"; salesVehicleType sV = new salesVehicleType(); sV.location = 1; if (String.IsNullOrWhiteSpace(request.Body.arg0)) { vehicleNumber = 0; } else { vehicleNumber = Convert.ToInt32(request.Body.arg0); } using (DBConnect myConnect = new DBConnect()) { String sqlCommand; //US 27.02.2014 //Optionen aus der Tabelle "fahrzeugauftragoptionen" müssen noch abgerufen werden sqlCommand = "SELECT b.verkaeufer, b.kundenkontonr, b.kundensuchname, a.fahrgestellnr, a.modelljahr, a.innenausstattung, a.hubraum, a.treibstoff, a.zuendschluesselnr, a.tuerschluesselnr, a.radiocode,"; sqlCommand += " a.zulassungskz, b.datumabmeldung, b.anzahlvorbesitzer, b.vorbesitzeradrid, a.kbahsnr, a.kbatsnr, a.datumzulassungkunde, a.datumhu, a.datumau, b.unfallfahrzeug, a.kfzbriefnr, b.kfzbriefort, "; sqlCommand += " b.datumausgang, b.datumverkauf, b.differenzbesteuerung, b.einkaeufer, b.datumeingang, b.gutschriftnr, b.zusatztext, b.aktenzeichen, b.optionenwerkvk, b.zubehoervk, b.optionenhaendlervk, "; sqlCommand += " b.fahrzeugek, b.optionenwerkek, b.optionenhaendlerek, b.zubehoerek, b.aufbereitungek, a.motorseriennr, b.auftragnr "; sqlCommand += " FROM bungert.fahrzeug a, bungert.fahrzeugauftrag b"; sqlCommand += " WHERE a.fahrzeugid = b.fahrzeugid"; sqlCommand += " AND b.fahrzeugid = "; sqlCommand += String.IsNullOrWhiteSpace(request.Body.arg0.ToString()) ? "0" : request.Body.arg0.ToString() ; sqlCommand += " ORDER BY b.fahrzeugid"; OdbcCommand cmd = new OdbcCommand(sqlCommand, myConnect.conn); myConnect.Connect(); OdbcDataReader reader; //DataReader Objekt wird initialisiert using (reader = cmd.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { sVDB = new salesVehicleTypeDetailsBasis(); strVerkaeuferid = reader.GetValue(0).ToString(); strKundenkontonr = reader.GetValue(1).ToString(); kundensuchname = reader.GetValue(2).ToString(); fahrgestellnr = reader.GetValue(3).ToString(); strModelljahr = reader.GetValue(4).ToString(); innenausstattung = reader.GetValue(5).ToString(); strHubraum = reader.GetValue(6).ToString(); treibstoff = reader.GetValue(7).ToString(); zuendschluesselnr = reader.GetValue(8).ToString(); tuerschluesselnr = reader.GetValue(9).ToString(); radiocode = reader.GetValue(10).ToString(); zulassungskz = reader.GetValue(11).ToString(); strDatumabmeldung = reader.GetValue(12).ToString(); anzahlvorbesitzer = reader.GetInt32(13); vorbesitzeradrid = reader.GetInt32(14); kbahsnr = reader.GetValue(15).ToString(); kbatsnr = reader.GetValue(16).ToString(); strDatumzulassungkunde = reader.GetValue(17).ToString(); strDatumhu = reader.GetValue(18).ToString(); strDatumau = reader.GetValue(19).ToString(); unfallfahrzeug = reader.GetBoolean(20); kfzbriefnr = reader.GetValue(21).ToString(); kfzbriefort = reader.GetValue(22).ToString(); strDatumausgang = reader.GetValue(23).ToString(); strDatumverkauf = reader.GetValue(24).ToString(); differenzbesteuerung = reader.GetBoolean(25); einkaeufer = reader.GetInt32(26); strDatumeingang = reader.GetValue(27).ToString(); gutschriftnr = reader.GetInt32(28); zusatztext = reader.GetValue(29).ToString(); aktenzeichen = reader.GetValue(30).ToString(); //US 13.03.2014 - Umsetzung: Fehler bei Nullwerten während der Konvertierung zu Decimal strOWVK = reader.GetValue(31).ToString(); strZVK = reader.GetValue(32).ToString(); strOHVK = reader.GetValue(33).ToString(); strFEK = reader.GetValue(34).ToString(); strOWEK = reader.GetValue(35).ToString(); strOHEK = reader.GetValue(36).ToString(); strZEK = reader.GetValue(37).ToString(); strAEK = reader.GetValue(38).ToString(); motorseriennr = reader.GetValue(39).ToString(); auftragnr = reader.GetInt32(40); Decimal.TryParse(strOWVK, out optionenwerkvk); Decimal.TryParse(strZVK, out zubehoervk); Decimal.TryParse(strOHVK, out optionenhaendlervk); Decimal.TryParse(strFEK, out fahrzeugek); Decimal.TryParse(strOWEK, out optionenwerkek); Decimal.TryParse(strOHEK, out optionenhaendlerek); Decimal.TryParse(strZEK, out zubehoerek); Decimal.TryParse(strAEK, out aufbereitungek); salesVehicleTypeDetailsBasisBuyer byer = new salesVehicleTypeDetailsBasisBuyer(); salesmanType salesman = new salesmanType(); if (String.IsNullOrWhiteSpace(strVerkaeuferid)) { verkaueferid = 0; } else { verkaueferid = Convert.ToInt32(strVerkaeuferid); } if (String.IsNullOrWhiteSpace(strKundenkontonr)) { kundenkontonr = 0; } else { kundenkontonr = Convert.ToInt32(strKundenkontonr); } salesman = getSalesman(verkaueferid, myConnect); salesVehicleTypeDetailsBasisSalesman sVTDBS = new salesVehicleTypeDetailsBasisSalesman(); sVTDBS.id = verkaueferid.ToString(); sVTDBS.name = salesman.name; sVDB.salesman = sVTDBS; byer.id = kundenkontonr; byer.idSpecified = true; byer.name = kundensuchname; sVDB.buyer = byer; sVDB.vin = fahrgestellnr; sVDB.yearOfModel = strModelljahr; sVDB.interiorColor = innenausstattung; if (String.IsNullOrWhiteSpace(strHubraum)) { hubraum = 0; } else { hubraum = Convert.ToInt32(strHubraum); } sVDB.cubicCapacity = hubraum; sVDB.cubicCapacitySpecified = true; sVDB.fuelType = treibstoff; sVDB.engineNumber = motorseriennr; sVDB.keyNumber1 = zuendschluesselnr; sVDB.keyNumber2 = tuerschluesselnr; sVDB.radioCode = radiocode; sVDB.licensePlate = zulassungskz; //Datum Abmeldung if (String.IsNullOrWhiteSpace(strDatumabmeldung)) { datumabmeldung = dtDefaultDB; } else { datumabmeldung = Convert.ToDateTime(strDatumabmeldung); } sVDB.deRegistrationDate = datumabmeldung; sVDB.numberPreOwners = anzahlvorbesitzer; //TODO US 18.03.2014 //sVDB.namePrevOwner = vorbesitzeradrid; sVDB.kbaHsn = kbahsnr; sVDB.kbaTsn = kbatsnr; //Datum Zulassung Kunde if (String.IsNullOrWhiteSpace(strDatumzulassungkunde)) { datumzulassungkunde = dtDefaultDB; } else { datumzulassungkunde = Convert.ToDateTime(strDatumzulassungkunde); } sVDB.lastRegistrationDate = datumzulassungkunde; sVDB.lastRegistrationDateSpecified = true; //Datum HU if (String.IsNullOrWhiteSpace(strDatumhu)) { datumhu = dtDefaultDB; } else { datumhu = Convert.ToDateTime(strDatumhu); } sVDB.testDate1 = datumhu; sVDB.testDate1Specified = true; //Datum AU if (String.IsNullOrWhiteSpace(strDatumau)) { datumau = dtDefaultDB; } else { datumau = Convert.ToDateTime(strDatumau); } sVDB.testDate2 = datumau; sVDB.testDate2Specified = true; sVDB.wrack = unfallfahrzeug; sVDB.wrackSpecified = true; sVDB.carLetter = kfzbriefnr; sVDB.carLetterLocation = kfzbriefort; //Datum Ausgang if (String.IsNullOrWhiteSpace(strDatumausgang)) { datumausgang = dtDefaultDB; } else { datumausgang = Convert.ToDateTime(strDatumausgang); } sVDB.deliveryDate = datumausgang; sVDB.deliveryDateSpecified = true; //Datum Verkauf if (String.IsNullOrWhiteSpace(strDatumverkauf)) { datumverkauf = dtDefaultDB; } else { datumverkauf = Convert.ToDateTime(strDatumverkauf); } sVDB.salesContractDate = datumverkauf; sVDB.salesContractDateSpecified = true; //Datum Eingang if (String.IsNullOrWhiteSpace(strDatumeingang)) { datumeingang = dtDefaultDB; } else { datumeingang = Convert.ToDateTime(strDatumeingang); } salesVehicleTypeDetailsBasisIncomeOfVehicle incomeV = new salesVehicleTypeDetailsBasisIncomeOfVehicle(); incomeV.vat = differenzbesteuerung; incomeV.date = datumeingang; incomeV.dateSpecified = true; incomeV.invoiceNumber = gutschriftnr.ToString(); //TODO US 18.03.2014 //Salesman sVDB.incomeOfVehicle = incomeV; sVDB.remarks = zusatztext; sVDB.matchcode = aktenzeichen; salesVehicleTypeDetails details = new salesVehicleTypeDetails(); details.basis = sVDB; salesVehicleTypeDetailsPrices prices = new salesVehicleTypeDetailsPrices(); prices.optionsSpecified = (prices.options = Convert.ToDouble(optionenwerkvk)) > 0; prices.equipmentSpecified = (prices.equipment = Convert.ToDouble(zubehoervk)) > 0; prices.othersSpecified = (prices.others = Convert.ToDouble(optionenhaendlervk)) > 0; salesVehicleTypeDetailsPricesPurchase purchase = new salesVehicleTypeDetailsPricesPurchase(); purchase.vehicleSpecified = (purchase.vehicle = Convert.ToDouble(fahrzeugek)) > 0; purchase.optionsSpecified = (purchase.options = Convert.ToDouble(optionenwerkek)) > 0; purchase.equipmentSpecified = (purchase.equipment = Convert.ToDouble(optionenhaendlerek)) > 0; purchase.othersSpecified = (purchase.others = Convert.ToDouble(zubehoerek)) > 0; prices.purchase = purchase; salesVehicleTypeDetailsPricesEfforts efforts = new salesVehicleTypeDetailsPricesEfforts(); efforts.internEffort1Specified = (efforts.internEffort1 = Convert.ToDouble(aufbereitungek)) > 0; prices.efforts = efforts; details.prices = prices; details.options = getOptions(auftragnr, myConnect); sV.details = details; aFahrzeuge.Add(sV); } } reader.Close(); } } salesVehicleType[] aSalesVehicle = new salesVehicleType[aFahrzeuge.Count]; //List<salesVehicleType> aSalesVehicle = new List<salesVehicleType>(); for (int i = 0; i < aFahrzeuge.Count; i++) { salesVehicleType salesV = (salesVehicleType)aFahrzeuge[i]; aSalesVehicle[i] = salesV; } iData.salesVehicle = aSalesVehicle; iData.interfaceVersion = 1; iData.dataProvider = "STANDARD_INTERFACE"; iData.callingUser = sT; iData.transmissionReason = ""; System.IO.StringWriter stringWriter = new System.IO.StringWriter(); var serializer = new XmlSerializer(typeof(interfaceData)); using (var xw = XmlWriter.Create(stringWriter, new XmlWriterSettings { Encoding = new UTF8Encoding() })) { serializer.Serialize(xw, iData); } #region xml encoding //string result; //using (MemoryStream memoryStream = new MemoryStream()) //{ // XmlSerializer xs = new XmlSerializer(typeof(interfaceData)); // XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8); // xs.Serialize(xmlTextWriter, iData); // result = Encoding.UTF8.GetString(memoryStream.ToArray()); //} //if (String.IsNullOrEmpty(result)) // result = ""; #endregion getSalesVehicleDetailResponseBody resBody = new getSalesVehicleDetailResponseBody(); resBody.@return = stringWriter.ToString(); res.Body = resBody; return res; }