private int AddGiveaways(JsonRootObject json) { var count = 0; if (json != null) { foreach (var giveaway in json.Giveaways) { var lot = new GameMinerGiveaway(); if (giveaway.Golden && giveaway.Price != 0) { break; } if (lot.Price > Points) { break; } if (lot.Price >= JoinPointsLimit) { break; } if (lot.Price > PointsReserv) { break; } lot.Name = giveaway.Game.Name; lot.Id = giveaway.Code; lot.IsRegular = giveaway.Sandbox == null; lot.IsSandbox = giveaway.Sandbox != null; lot.IsGolden = giveaway.Golden; lot.Page = json.Page; lot.Price = giveaway.Price; if (giveaway.RegionlockTypeId != null) { lot.Region = giveaway.RegionlockTypeId; } if (giveaway.Game.Url != "javascript:void(0);") { lot.StoreId = giveaway.Game.Url.Split('/')[4]; } else { break; } Giveaways?.Add(lot); count++; } } return(count); }
private async Task <Log> JoinGiveaway(GameMinerGiveaway giveaway, string lang) { var task = new TaskCompletionSource <Log>(); await Task.Run(() => { Thread.Sleep(400); var response = Web.Post( $"{Links.GameMiner}giveaway/enter/{giveaway.Id}?{(giveaway.IsSandbox ? "sandbox" : "coal")}_page={giveaway.Page}", GenerateJoinData(), Cookies.Generate(lang), UserAgent); if (response.RestResponse.Content != string.Empty) { try { var jsonresponse = JsonConvert.DeserializeObject <JsonResponse>(response.RestResponse.Content); if (jsonresponse.Status == "ok") { Points = jsonresponse.Coal; task.SetResult(Messages.GiveawayJoined("GameMiner", giveaway.Name, giveaway.Price, jsonresponse.Coal)); } else { task.SetResult(Messages.GiveawayNotJoined("GameMiner", giveaway.Name, response.RestResponse.Content)); } } catch (JsonReaderException) { task.SetResult(Messages.GiveawayNotJoined("GameMiner", giveaway.Name, response.RestResponse.Content)); } catch (JsonSerializationException) { var jresponse = JsonConvert.DeserializeObject <JsonResponseError>(response.RestResponse.Content); task.SetResult(Messages.GiveawayNotJoined("GameMiner", giveaway.Name, jresponse.Error.Message)); } } else { task.SetResult(Messages.GiveawayNotJoined("GameMiner", giveaway.Name, "Content is empty")); } }); return(task.Task.Result); }