public static async Task AddUser(string apiKey) { using (var db = new UserContextFactory().CreateDbContext()) { var user = await GetUser(apiKey); if (user == null) { var account = await AccountAPI.Account(apiKey); if (db.User.Any(x => x.AccountName.Equals(account.Name))) { var existingUser = db.User.FirstOrDefault(x => x.AccountName.Equals(account.Name)); db.Key.Add(new Key { UserID = existingUser.ID, APIKey = apiKey }); } else { var addedUser = db.User.Add(new User { AccountName = account.Name }); await db.SaveChangesAsync(); db.Key.Add(new Key { UserID = addedUser.Entity.ID, APIKey = apiKey }); } await db.SaveChangesAsync(); } } }
public async static Task AddCategoryEntry(CategoryType type, int value, string apiKey) { using (var db = new UserContextFactory().CreateDbContext()) { var user = await GetUser(apiKey); if (user == null) { return; } var latestEntry = await db.CategoryValue.Where(x => x.UserID == user.ID && x.Category == type).OrderByDescending(x => x.Date).FirstOrDefaultAsync(); if (latestEntry == null) { db.CategoryValue.Add(new CategoryValue { Category = type, Value = value, Delta = 0, UserID = user.ID }); } else { db.CategoryValue.Add(new CategoryValue { Category = type, Value = value, Delta = value - latestEntry.Value, UserID = user.ID }); } await db.SaveChangesAsync(); } }
public static async Task AddWalletEntries(List <API.Model.Account.WalletEntry> entries, string apiKey) { using (var db = new UserContextFactory().CreateDbContext()) { var user = await GetUser(apiKey); if (user == null) { return; } foreach (var entry in entries) { var latestEntry = await db.Wallet.Where(x => x.UserID == user.ID && x.CurrencyID == entry.ID).OrderByDescending(x => x.Date).FirstOrDefaultAsync(); if (latestEntry != null) { db.Wallet.Add(new Model.WalletEntry { UserID = user.ID, CurrencyID = entry.ID, Value = entry.Value, Delta = entry.Value - latestEntry.Value }); } else { db.Wallet.Add(new Model.WalletEntry { UserID = user.ID, CurrencyID = entry.ID, Value = entry.Value }); } } await db.SaveChangesAsync(); } }
public static async Task AddMinis(List <API.Model.Miscellaneous.Mini> minis, string apiKey) { using (var db = new UserContextFactory().CreateDbContext()) { var user = await GetUser(apiKey); if (user == null) { return; } foreach (var mini in minis) { db.Mini.Add(new Mini { MiniID = mini.ID, ItemID = mini.ItemID, UserID = user.ID }); } await db.SaveChangesAsync(); } }
public static async Task AddDyes(List <API.Model.Items.Item> dyes, string apiKey) { using (var db = new UserContextFactory().CreateDbContext()) { var user = await GetUser(apiKey); if (user == null) { return; } foreach (var dye in dyes) { db.Dye.Add(new Dye { DyeID = dye.ID, UserID = user.ID }); } await db.SaveChangesAsync(); } }
public static async Task AddSkins(List <API.Model.Items.Skin> skins, string apiKey) { using (var db = new UserContextFactory().CreateDbContext()) { var user = await GetUser(apiKey); if (user == null) { return; } foreach (var skin in skins) { db.Skin.Add(new Skin { SkinID = skin.ID, UserID = user.ID }); } await db.SaveChangesAsync(); } }
public static async Task AddAccountItems(List <Item> items, string apiKey) { using (var db = new UserContextFactory().CreateDbContext()) { var user = await GetUser(apiKey); if (user == null) { return; } var currentItems = await db.Item.Where(x => x.UserID == user.ID).ToListAsync(); var newItems = GetDifference(items, currentItems); newItems.ForEach(x => x.UserID = user.ID); db.RemoveRange(currentItems); db.AddRange(newItems); await db.SaveChangesAsync(); } }