public void FinishPurchase(FinishedPurchase purchase) { const string sql = "INSERT INTO PurchasesTable (Id, PurchaseDate, SteamId, SteamName, ItemId, ItemName, ServerId, CreateDate) " + "VALUES (@Id, @PurchaseDate, @SteamId, @SteamName, @ItemId, @ItemName, @ServerId, @CreateDate);"; connection.Execute(Query(sql), purchase); }
private void ProcessPurchase(JToken item, JToken result) { var features = pluginInstance.Configuration.Instance.Packages.FirstOrDefault(x => x.EnjinItemId == item["item_id"].ToObject <int>()); if (features == null) { return; } bool flag = Database.ContainsPurchase(result["purchase_date"].ToObject <int>(), item["item_id"].ToObject <int>()); string steamIdStr = item["variables_names"][pluginInstance.Configuration.Instance.SteamIDIdentifier].ToString(); string steamName = null; if (ulong.TryParse(steamIdStr, out ulong steamId)) { try { Profile profile = new Profile(steamId); steamName = profile.SteamID; } catch (Exception e) { Logger.LogException(e, $"An exception occurated while downloading {steamId} name from Steam"); } TaskDispatcher.QueueOnMainThread(() => ExecuteFeatures(new RocketPlayer(steamId.ToString(), steamName), features, item["item_name"].ToString(), flag)); } var purchase = new FinishedPurchase() { ItemId = item["item_id"].ToObject <int>(), ItemName = item["item_name"].ToString(), SteamId = steamIdStr, SteamName = steamName, PurchaseDate = result["purchase_date"].ToObject <int>(), ServerId = pluginInstance.Configuration.Instance.ServerIdentifier, CreateDate = DateTime.UtcNow }; Database.FinishPurchase(purchase); if (!flag && !string.IsNullOrEmpty(pluginInstance.Configuration.Instance.DiscordWebhookUrl)) { DiscordHelper.SendNotification(purchase); } }
public static void SendNotification(FinishedPurchase purchase) { var obj = new JObject(); obj["embeds"] = new JArray { JToken.FromObject(new { color = Convert.ToInt32(pluginInstance.Configuration.Instance.DiscordWebhookColor.Trim('#'), 16), description = pluginInstance.Translate("DiscordNotification", purchase.SteamName, purchase.SteamId, purchase.ItemName) }) }; using (var wc = new WebClient()) { wc.Headers.Add(HttpRequestHeader.ContentType, "application/json"); wc.UploadString(pluginInstance.Configuration.Instance.DiscordWebhookUrl, obj.ToString()); } }