public async Task <ActionResult <GenericResponse> > GamesToRedeemInBackgroundPost(string botNames, [FromBody] BotGamesToRedeemInBackgroundRequest request) { if (string.IsNullOrEmpty(botNames) || (request == null)) { ASF.ArchiLogger.LogNullError(nameof(botNames) + " || " + nameof(request)); return(BadRequest(new GenericResponse(false, string.Format(Strings.ErrorIsEmpty, nameof(botNames) + " || " + nameof(request))))); } if (request.GamesToRedeemInBackground.Count == 0) { return(BadRequest(new GenericResponse(false, string.Format(Strings.ErrorIsEmpty, nameof(request.GamesToRedeemInBackground))))); } HashSet <Bot> bots = Bot.GetBots(botNames); if ((bots == null) || (bots.Count == 0)) { return(BadRequest(new GenericResponse(false, string.Format(Strings.BotNotFound, botNames)))); } IOrderedDictionary validGamesToRedeemInBackground = Bot.ValidateGamesToRedeemInBackground(request.GamesToRedeemInBackground); if ((validGamesToRedeemInBackground == null) || (validGamesToRedeemInBackground.Count == 0)) { return(BadRequest(new GenericResponse(false, string.Format(Strings.ErrorIsEmpty, nameof(validGamesToRedeemInBackground))))); } await Utilities.InParallel(bots.Select(bot => Task.Run(() => bot.AddGamesToRedeemInBackground(validGamesToRedeemInBackground)))).ConfigureAwait(false); Dictionary <string, IOrderedDictionary> result = new Dictionary <string, IOrderedDictionary>(bots.Count, Bot.BotsComparer); foreach (Bot bot in bots) { result[bot.BotName] = validGamesToRedeemInBackground; } return(Ok(new GenericResponse <IReadOnlyDictionary <string, IOrderedDictionary> >(result))); }
public async Task <ActionResult <GenericResponse <IOrderedDictionary> > > GamesToRedeemInBackgroundPost(string botName, [FromBody] BotGamesToRedeemInBackgroundRequest request) { if (string.IsNullOrEmpty(botName) || (request == null)) { ASF.ArchiLogger.LogNullError(nameof(botName) + " || " + nameof(request)); return(BadRequest(new GenericResponse <IOrderedDictionary>(false, string.Format(Strings.ErrorIsEmpty, nameof(botName) + " || " + nameof(request))))); } if (request.GamesToRedeemInBackground.Count == 0) { return(BadRequest(new GenericResponse <IOrderedDictionary>(false, string.Format(Strings.ErrorIsEmpty, nameof(request.GamesToRedeemInBackground))))); } if (!Bot.Bots.TryGetValue(botName, out Bot bot)) { return(BadRequest(new GenericResponse <IOrderedDictionary>(false, string.Format(Strings.BotNotFound, botName)))); } bool result = await bot.ValidateAndAddGamesToRedeemInBackground(request.GamesToRedeemInBackground).ConfigureAwait(false); return(Ok(new GenericResponse <IOrderedDictionary>(result, request.GamesToRedeemInBackground))); }