private XmlNode AddTransactionsToXML(XmlDocument xml, EveMarketMonitorApp.DatabaseClasses.EMMADataSet.TransactionsDataTable transactions, 
            long APIEntityID, bool forCorp, int walletID)
        {
            XmlNode rowSet = NewTransactionsRowset(xml);

            foreach (EveMarketMonitorApp.DatabaseClasses.EMMADataSet.TransactionsRow transaction in transactions)
            {
                if (transaction.ID < 9000000000000000000)
                {
                    if (transaction.BuyerID == APIEntityID)
                    {
                        if (!forCorp || transaction.BuyerWalletID == walletID)
                        {
                            XmlNode node = AddTransRow(xml, APIEntityID, transaction, true, forCorp);
                            rowSet.AppendChild(node);
                        }
                    }
                    if (transaction.SellerID == APIEntityID)
                    {
                        if (!forCorp || transaction.SellerWalletID == walletID)
                        {
                            XmlNode node = AddTransRow(xml, APIEntityID, transaction, false, forCorp);
                            rowSet.AppendChild(node);
                        }
                    }
                }
            }

            return rowSet;
        }
        private XmlNode AddTransRow(XmlDocument xml, long APIEntityID, EveMarketMonitorApp.DatabaseClasses.EMMADataSet.TransactionsRow transaction, bool clientSeller, bool forCorp)
        {
            XmlNode row = xml.CreateNode(XmlNodeType.Element, "row", "");

            XmlAttribute datetimeAtt = xml.CreateAttribute("transactionDateTime", "");
            datetimeAtt.Value = transaction.DateTime.ToString("s", System.Globalization.CultureInfo.InvariantCulture);
            row.Attributes.Append(datetimeAtt);
            XmlAttribute idAtt = xml.CreateAttribute("transactionID", "");
            idAtt.Value = transaction.ID.ToString();
            row.Attributes.Append(idAtt);
            XmlAttribute quantityAtt = xml.CreateAttribute("quantity", "");
            quantityAtt.Value = transaction.Quantity.ToString();
            row.Attributes.Append(quantityAtt);
            XmlAttribute typeNameAtt = xml.CreateAttribute("typeName", "");
            typeNameAtt.Value = Items.GetItemName(transaction.ItemID);
            row.Attributes.Append(typeNameAtt);
            XmlAttribute typeIDAtt = xml.CreateAttribute("typeID", "");
            typeIDAtt.Value = transaction.ItemID.ToString();
            row.Attributes.Append(typeIDAtt);
            XmlAttribute priceAtt = xml.CreateAttribute("price", "");
            priceAtt.Value = transaction.Price.ToString(System.Globalization.CultureInfo.InvariantCulture);
            row.Attributes.Append(priceAtt);
            XmlAttribute clientIDAtt = xml.CreateAttribute("clientID", "");
            clientIDAtt.Value = clientSeller ? transaction.SellerID.ToString() : transaction.BuyerID.ToString();
            row.Attributes.Append(clientIDAtt);
            XmlAttribute clientNameAtt = xml.CreateAttribute("clientName", "");
            clientNameAtt.Value = Names.GetName(clientSeller ? transaction.SellerID : transaction.BuyerID);
            row.Attributes.Append(clientNameAtt);
            XmlAttribute stationIDAtt = xml.CreateAttribute("stationID", "");
            stationIDAtt.Value = transaction.StationID.ToString();
            row.Attributes.Append(stationIDAtt);
            XmlAttribute stationNameAtt = xml.CreateAttribute("stationName", "");
            stationNameAtt.Value = Stations.GetStationName(transaction.StationID);
            row.Attributes.Append(stationNameAtt);
            XmlAttribute transTypeAtt = xml.CreateAttribute("transactionType", "");
            transTypeAtt.Value = clientSeller ? "buy" : "sell";
            row.Attributes.Append(transTypeAtt);
            XmlAttribute transForAtt = xml.CreateAttribute("transactionFor", "");
            transForAtt.Value = !forCorp ? "personal" : "corporation";
            row.Attributes.Append(transForAtt);
            XmlAttribute journalIDAtt = xml.CreateAttribute("journalTransactionID", "");
            journalIDAtt.Value = "0";
            row.Attributes.Append(journalIDAtt);

            return row;
        }
        private XmlNode AddMarketOrderToXML(XmlDocument xml, EveMarketMonitorApp.DatabaseClasses.EMMADataSet.OrdersDataTable marketOrders)
        {
            XmlNode rowSet = NewMarketOrderRowset(xml);

            foreach (EveMarketMonitorApp.DatabaseClasses.EMMADataSet.OrdersRow order in marketOrders)
            {
                XmlNode node = AddMarketOrderRow(xml, order);
                rowSet.AppendChild(node);
            }

            return rowSet;
        }
        private XmlNode AddMarketOrderRow(XmlDocument xml, EveMarketMonitorApp.DatabaseClasses.EMMADataSet.OrdersRow order)
        {
            XmlNode row = xml.CreateNode(XmlNodeType.Element, "row", "");

            XmlAttribute idAtt = xml.CreateAttribute("orderID", "");
            idAtt.Value = order.EveOrderID.ToString();
            row.Attributes.Append(idAtt);
            XmlAttribute charAtt = xml.CreateAttribute("charID", "");
            charAtt.Value = order.OwnerID.ToString();
            row.Attributes.Append(charAtt);
            XmlAttribute stationAtt = xml.CreateAttribute("stationID", "");
            stationAtt.Value = order.StationID.ToString();
            row.Attributes.Append(stationAtt);
            XmlAttribute volEnteredAtt = xml.CreateAttribute("volEntered", "");
            volEnteredAtt.Value = order.TotalVol.ToString();
            row.Attributes.Append(volEnteredAtt);
            XmlAttribute volRemainingAtt = xml.CreateAttribute("volRemaining", "");
            volRemainingAtt.Value = order.RemainingVol.ToString();
            row.Attributes.Append(volRemainingAtt);
            XmlAttribute minVolumeAtt = xml.CreateAttribute("minVolume", "");
            minVolumeAtt.Value = order.MinVolume.ToString();
            row.Attributes.Append(minVolumeAtt);
            XmlAttribute stateAtt = xml.CreateAttribute("orderState", "");
            if(order.OrderState == 1) { stateAtt.Value = "1"; }
            if(order.OrderState == 2) { stateAtt.Value = "2"; }
            if(order.OrderState == 3) { stateAtt.Value = "3"; }
            if(order.OrderState == 4) { stateAtt.Value = "4"; }
            if(order.OrderState == 5) { stateAtt.Value = "5"; }
            if(order.OrderState == 999) { stateAtt.Value = "0"; }
            if(order.OrderState == 1000) { stateAtt.Value = "2"; }
            if(order.OrderState == 1001) { stateAtt.Value = "0"; }
            if(order.OrderState == 2000) { stateAtt.Value = "2"; }
            row.Attributes.Append(stateAtt);
            XmlAttribute typeAtt = xml.CreateAttribute("typeID", "");
            typeAtt.Value = order.ItemID.ToString();
            row.Attributes.Append(typeAtt);
            XmlAttribute rangeAtt = xml.CreateAttribute("range", "");
            rangeAtt.Value = order.Range.ToString();
            row.Attributes.Append(rangeAtt);
            XmlAttribute walletAtt = xml.CreateAttribute("accountKey", "");
            walletAtt.Value = order.WalletID.ToString();
            row.Attributes.Append(walletAtt);
            XmlAttribute durationAtt = xml.CreateAttribute("duration", "");
            durationAtt.Value = order.Duration.ToString();
            row.Attributes.Append(durationAtt);
            XmlAttribute escrowAtt = xml.CreateAttribute("escrow", "");
            escrowAtt.Value = order.Escrow.ToString(System.Globalization.NumberFormatInfo.InvariantInfo);
            row.Attributes.Append(escrowAtt);
            XmlAttribute priceAtt = xml.CreateAttribute("price", "");
            priceAtt.Value = order.Price.ToString(System.Globalization.NumberFormatInfo.InvariantInfo);
            row.Attributes.Append(priceAtt);
            XmlAttribute bidAtt = xml.CreateAttribute("bid", "");
            bidAtt.Value = order.BuyOrder ? "1" : "0";
            row.Attributes.Append(bidAtt);
            XmlAttribute issuedAtt = xml.CreateAttribute("issued", "");
            issuedAtt.Value = order.Issued.ToString("s", System.Globalization.CultureInfo.InvariantCulture);
            row.Attributes.Append(issuedAtt);

            return row;
        }
        private XmlNode AddJournalToXML(XmlDocument xml, EveMarketMonitorApp.DatabaseClasses.EMMADataSet.JournalDataTable journalEntries,
            long APIEntityID, bool forCorp, int walletID)
        {
            XmlNode rowSet = NewJournalRowset(xml);

            foreach (EveMarketMonitorApp.DatabaseClasses.EMMADataSet.JournalRow journalEntry in journalEntries)
            {
                if (journalEntry.SenderID == APIEntityID || (forCorp && journalEntry.SCorpID == APIEntityID))
                {
                    if (!forCorp || journalEntry.SWalletID == walletID)
                    {
                        XmlNode node = AddJournalRow(xml, APIEntityID, journalEntry, true, forCorp);
                        rowSet.AppendChild(node);
                    }
                }
                if (journalEntry.RecieverID == APIEntityID || (forCorp && journalEntry.RCorpID == APIEntityID))
                {
                    if (!forCorp || journalEntry.RWalletID == walletID)
                    {
                        XmlNode node = AddJournalRow(xml, APIEntityID, journalEntry, false, forCorp);
                        rowSet.AppendChild(node);
                    }
                }
            }

            return rowSet;
        }
        private XmlNode AddJournalRow(XmlDocument xml, long APIEntityID, EveMarketMonitorApp.DatabaseClasses.EMMADataSet.JournalRow journalEntry, bool currentUserIsSender, bool forCorp)
        {
            XmlNode row = xml.CreateNode(XmlNodeType.Element, "row", "");

            XmlAttribute idAtt = xml.CreateAttribute("refID", "");
            idAtt.Value = journalEntry.ID.ToString();
            row.Attributes.Append(idAtt);
            XmlAttribute dateAtt = xml.CreateAttribute("date", "");
            dateAtt.Value = journalEntry.Date.ToString("s", System.Globalization.CultureInfo.InvariantCulture);
            row.Attributes.Append(dateAtt);
            XmlAttribute typeAtt = xml.CreateAttribute("refTypeID", "");
            typeAtt.Value = journalEntry.TypeID.ToString();
            row.Attributes.Append(typeAtt);
            XmlAttribute fromNameAtt = xml.CreateAttribute("ownerName1", "");
            fromNameAtt.Value = Names.GetName(journalEntry.SenderID);
            row.Attributes.Append(fromNameAtt);
            XmlAttribute fromIDAtt = xml.CreateAttribute("ownerID1", "");
            fromIDAtt.Value = journalEntry.SenderID.ToString();
            row.Attributes.Append(fromIDAtt);
            XmlAttribute toNameAtt = xml.CreateAttribute("ownerName2", "");
            toNameAtt.Value = Names.GetName(journalEntry.RecieverID);
            row.Attributes.Append(toNameAtt);
            XmlAttribute toIDAtt = xml.CreateAttribute("ownerID2", "");
            toIDAtt.Value = journalEntry.RecieverID.ToString();
            row.Attributes.Append(toIDAtt);
            XmlAttribute argNameAtt = xml.CreateAttribute("argName1", "");
            argNameAtt.Value = currentUserIsSender ? journalEntry.SArgName : journalEntry.RArgName;
            row.Attributes.Append(argNameAtt);
            XmlAttribute argIDAtt = xml.CreateAttribute("argID1", "");
            argIDAtt.Value = currentUserIsSender ? journalEntry.SArgID.ToString() : journalEntry.RArgID.ToString();
            row.Attributes.Append(argIDAtt);
            XmlAttribute amountAtt = xml.CreateAttribute("amount", "");
            amountAtt.Value = journalEntry.Amount.ToString(System.Globalization.CultureInfo.InvariantCulture);
            row.Attributes.Append(amountAtt);
            XmlAttribute balanceAtt = xml.CreateAttribute("balance", "");
            balanceAtt.Value = currentUserIsSender ? journalEntry.SBalance.ToString() : journalEntry.RBalance.ToString();
            row.Attributes.Append(balanceAtt);
            XmlAttribute reasonAtt = xml.CreateAttribute("reason", "");
            reasonAtt.Value = journalEntry.Reason;
            row.Attributes.Append(reasonAtt);

            return row;
        }
        private XmlNode AddIndustryJobRow(XmlDocument xml, EveMarketMonitorApp.DatabaseClasses.EMMADataSet.IndustryJobsRow job)
        {
            XmlNode row = xml.CreateNode(XmlNodeType.Element, "row", "");

            XmlAttribute idAtt = xml.CreateAttribute("jobID", "");
            idAtt.Value = job.ID.ToString();
            row.Attributes.Append(idAtt);
            XmlAttribute assemblyLineIDAtt = xml.CreateAttribute("assemblyLineID", "");
            assemblyLineIDAtt.Value = job.AssemblyLineID.ToString();
            row.Attributes.Append(assemblyLineIDAtt);
            XmlAttribute containerIDAtt = xml.CreateAttribute("containerID", "");
            containerIDAtt.Value = job.ContainerID.ToString();
            row.Attributes.Append(containerIDAtt);
            XmlAttribute installedItemIDAtt = xml.CreateAttribute("installedItemID", "");
            installedItemIDAtt.Value = job.InstalledItemID.ToString();
            row.Attributes.Append(installedItemIDAtt);
            XmlAttribute installedItemLocationIDAtt = xml.CreateAttribute("installedItemLocationID", "");
            installedItemLocationIDAtt.Value = job.InstalledItemLocationID.ToString();
            row.Attributes.Append(installedItemLocationIDAtt);
            XmlAttribute installedItemQuantityAtt = xml.CreateAttribute("installedItemQuantity", "");
            installedItemQuantityAtt.Value = job.InstalledItemQuantity.ToString();
            row.Attributes.Append(installedItemQuantityAtt);
            XmlAttribute installedItemProductivityLevelAtt = xml.CreateAttribute("installedItemProductivityLevel", "");
            installedItemProductivityLevelAtt.Value = job.InstalledItemPL.ToString();
            row.Attributes.Append(installedItemProductivityLevelAtt);
            XmlAttribute installedItemMaterialLevelAtt = xml.CreateAttribute("installedItemMaterialLevel", "");
            installedItemMaterialLevelAtt.Value = job.InstalledItemME.ToString();
            row.Attributes.Append(installedItemMaterialLevelAtt);
            XmlAttribute installedItemLicensedProductionRunsRemainingAtt =
                xml.CreateAttribute("installedItemLicensedProductionRunsRemaining", "");
            installedItemLicensedProductionRunsRemainingAtt.Value = job.InstalledItemRunsRemaining.ToString();
            row.Attributes.Append(installedItemLicensedProductionRunsRemainingAtt);
            XmlAttribute outputLocationIDAtt = xml.CreateAttribute("outputLocationID", "");
            outputLocationIDAtt.Value = job.OutputLcoationID.ToString();
            row.Attributes.Append(outputLocationIDAtt);
            XmlAttribute installerIDAtt = xml.CreateAttribute("installerID", "");
            installerIDAtt.Value = job.InstallerID.ToString();
            row.Attributes.Append(installerIDAtt);
            XmlAttribute runsAtt = xml.CreateAttribute("runs", "");
            runsAtt.Value = job.JobRuns.ToString();
            row.Attributes.Append(runsAtt);
            XmlAttribute licensedProductionRunsAtt = xml.CreateAttribute("licensedProductionRuns", "");
            licensedProductionRunsAtt.Value = job.OutputRuns.ToString();
            row.Attributes.Append(licensedProductionRunsAtt);
            EveDataSet.staStationsRow station = Stations.GetStation(job.OutputLcoationID);
            if (station != null)
            {
                XmlAttribute installedInSolarSystemIDAtt = xml.CreateAttribute("installedInSolarSystemID", "");
                installedInSolarSystemIDAtt.Value = station.solarSystemID.ToString();
                row.Attributes.Append(installedInSolarSystemIDAtt);
            }
            XmlAttribute containerLocationIDAtt = xml.CreateAttribute("containerLocationID", "");
            containerLocationIDAtt.Value = job.OutputLcoationID.ToString();
            row.Attributes.Append(containerLocationIDAtt);
            XmlAttribute materialMultiplierAtt = xml.CreateAttribute("materialMultiplier", "");
            materialMultiplierAtt.Value = job.MaterialModifier.ToString(System.Globalization.NumberFormatInfo.InvariantInfo);
            row.Attributes.Append(materialMultiplierAtt);
            XmlAttribute charMaterialMultiplierAtt = xml.CreateAttribute("charMaterialMultiplier", "");
            charMaterialMultiplierAtt.Value = job.CharMaterialModifier.ToString(System.Globalization.NumberFormatInfo.InvariantInfo);
            row.Attributes.Append(charMaterialMultiplierAtt);
            XmlAttribute timeMultiplierAtt = xml.CreateAttribute("timeMultiplier", "");
            timeMultiplierAtt.Value = job.TimeMultiplier.ToString(System.Globalization.NumberFormatInfo.InvariantInfo);
            row.Attributes.Append(timeMultiplierAtt);
            XmlAttribute charTimeMultiplierAtt = xml.CreateAttribute("charTimeMultiplier", "");
            charTimeMultiplierAtt.Value = job.CharTimeMultiplier.ToString(System.Globalization.NumberFormatInfo.InvariantInfo);
            row.Attributes.Append(charTimeMultiplierAtt);
            XmlAttribute installedItemTypeIDAtt = xml.CreateAttribute("installedItemTypeID", "");
            installedItemTypeIDAtt.Value = job.InstalledItemTypeID.ToString();
            row.Attributes.Append(installedItemTypeIDAtt);
            XmlAttribute outputTypeIDAtt = xml.CreateAttribute("outputTypeID", "");
            outputTypeIDAtt.Value = job.OutputTypeID.ToString();
            row.Attributes.Append(outputTypeIDAtt);
            XmlAttribute containerTypeIDAtt = xml.CreateAttribute("containerTypeID", "");
            containerTypeIDAtt.Value = job.ContainerTypeID.ToString();
            row.Attributes.Append(containerTypeIDAtt);
            XmlAttribute installedItemCopyAtt = xml.CreateAttribute("installedItemCopy", "");
            installedItemCopyAtt.Value = job.InstalledItemCopy ? "1" : "0";
            row.Attributes.Append(installedItemCopyAtt);
            XmlAttribute completedAtt = xml.CreateAttribute("completed", "");
            completedAtt.Value = job.Completed ? "1" : "0";
            row.Attributes.Append(completedAtt);
            XmlAttribute completedSuccessfullyAtt = xml.CreateAttribute("completedSuccessfully", "");
            completedSuccessfullyAtt.Value = job.CompletedSuccessfully ? "1" : "0";
            row.Attributes.Append(completedSuccessfullyAtt);
            XmlAttribute installedItemFlagAtt = xml.CreateAttribute("installedItemFlag", "");
            installedItemFlagAtt.Value = job.InstalledItemFlag.ToString();
            row.Attributes.Append(installedItemFlagAtt);
            XmlAttribute outputFlagAtt = xml.CreateAttribute("outputFlag", "");
            outputFlagAtt.Value = job.OutputFlag.ToString();
            row.Attributes.Append(outputFlagAtt);
            XmlAttribute activityAtt = xml.CreateAttribute("activityID", "");
            activityAtt.Value = job.ActivityID.ToString();
            row.Attributes.Append(activityAtt);
            XmlAttribute completedStatusAtt = xml.CreateAttribute("completedStatus", "");
            completedStatusAtt.Value = job.CompletedStatus.ToString();
            row.Attributes.Append(completedStatusAtt);
            XmlAttribute installTimeAtt = xml.CreateAttribute("installTime", "");
            installTimeAtt.Value = job.InstallTime.ToString("s", System.Globalization.CultureInfo.InvariantCulture);
            row.Attributes.Append(installTimeAtt);
            XmlAttribute beginProductionTimeAtt = xml.CreateAttribute("beginProductionTime", "");
            beginProductionTimeAtt.Value = job.BeginProductionTime.ToString("s", System.Globalization.CultureInfo.InvariantCulture);
            row.Attributes.Append(beginProductionTimeAtt);
            XmlAttribute endProductionTimeAtt = xml.CreateAttribute("endProductionTime", "");
            endProductionTimeAtt.Value = job.EndProductionTime.ToString("s", System.Globalization.CultureInfo.InvariantCulture);
            row.Attributes.Append(endProductionTimeAtt);
            XmlAttribute pauseProductionTimeAtt = xml.CreateAttribute("pauseProductionTime", "");
            pauseProductionTimeAtt.Value = job.PauseProductionTime.ToString("s", System.Globalization.CultureInfo.InvariantCulture);
            row.Attributes.Append(pauseProductionTimeAtt);

            return row;
        }