public async Task AddOrUpdateCounterAsync(Counter counter) { var connection = new SQLiteAsyncConnection(_dbPath); if (counter.Id == 0) await connection.InsertAsync(counter); else await connection.InsertOrReplaceAsync(counter); OnCountersChanged(); }
public new Task<int> SaveAsync(SQLiteAsyncConnection db) { return db.InsertOrReplaceAsync(this); }
public async Task <int> AddOrUpdateAsync <T>(T item) { return(await _connection.InsertOrReplaceAsync(item)); }
public virtual Task<int> SaveAsync(SQLiteAsyncConnection db) { return Status == Status.Valid ? db.InsertOrReplaceAsync(this) : null; }
private void initExternalDBStruct_v1(DBVersion dbVersion) { dbVersion.Loaction = LocationEnum.External; dbVersion.Version = 1; mDatabase.InsertOrReplaceAsync(dbVersion); }
/// <summary> /// Load transaction data and store in local sqlite db /// </summary> /// <param name="apiKey"></param> /// <param name="vCode"></param> /// <param name="charID"></param> /// <returns></returns> public async static Task<bool> Parse(string apiKey, string vCode, string charID) { // open DB var sqliteTransactionData = new SQLiteAsyncConnection(charID + ".sqlite"); await sqliteTransactionData.CreateTableAsync<Transaction>(); //await sqliteTransactionData.ExecuteAsync("ATTACH DATABASE '" + Windows.ApplicationModel.Package.Current.InstalledLocation.Path + "\\Assets\\Data\\static.sqlite' AS Static"); // build request string String request = "https://api.eveonline.com/char/WalletTransactions.xml.aspx"; request += "?keyID=" + apiKey; request += "&vCode=" + vCode; request += "&characterID=" + charID; // load data as xml string HttpResponseMessage response = await new HttpClient().GetAsync(request); string xml_data = await response.Content.ReadAsStringAsync(); // parse as xml and fetch data XDocument transactiondata = XDocument.Parse(xml_data); var transactions = from transaction in transactiondata.Descendants("row") select new { TransactionDateTime = transaction.Attribute("transactionDateTime").Value ?? "", TransactionID = transaction.Attribute("transactionID").Value ?? "", Quantity = transaction.Attribute("quantity").Value ?? "", TypeName = transaction.Attribute("typeName").Value ?? "", TypeID = transaction.Attribute("typeID").Value ?? "", Price = transaction.Attribute("price").Value ?? "", ClientID = transaction.Attribute("clientID").Value ?? "", ClientName = transaction.Attribute("clientName").Value ?? "", StationID = transaction.Attribute("stationID").Value ?? "", StationName = transaction.Attribute("stationName").Value ?? "", TransactionType = transaction.Attribute("transactionType").Value ?? "", TransactionFor = transaction.Attribute("transactionFor").Value ?? "", JournalTransactionID = transaction.Attribute("journalTransactionID").Value ?? "", ClientTypeID = transaction.Attribute("clientTypeID").Value ?? "" }; // create new transaction for each record foreach (var transaction in transactions) { Transaction ta = new Transaction(); ta.Time = DateTime.Parse(transaction.TransactionDateTime); ta.TransactionID = Int64.Parse(transaction.TransactionID); ta.Quantity = Int32.Parse(transaction.Quantity); ta.TypeName = transaction.TypeName; ta.TypeID = Int32.Parse(transaction.TypeID); ta.PricePerUnit = double.Parse(transaction.Price); ta.ClientID = Int32.Parse(transaction.ClientID); ta.ClientName = transaction.ClientName; ta.StationID = Int32.Parse(transaction.StationID); ta.StationName = transaction.StationName; ta.BuyOrder = transaction.TransactionType.Equals("buy") ? true : false; ta.TaFor = transaction.TransactionFor; ta.JournalTransactionID = Int64.Parse(transaction.JournalTransactionID); ta.ClientTypeID = Int32.Parse(transaction.ClientTypeID); TransactionInformation info = await TransactionInformation.Load(ta.TypeID); ta.MarketGroupID = info.MarketGroupIDTopLevel; ta.MarketGroupName = info.MarketGroupNameTopLevel; //TODO: Insert or ignore to make it faster? await sqliteTransactionData.InsertOrReplaceAsync(ta); } return false; }