public async Task <IActionResult> RandomVariant(long key) { var variants = await _db.TaskVariants .Where(variant => variant.TaskModule.Id == key) .Select(variant => variant.Id) .ToArrayAsync(); if (variants.Length == 0) { return(new NotFoundResult()); } var variantId = variants[new Random().Next(0, variants.Length)]; var selectedVariant = await _db.TaskVariants .Include(v => v.TaskModule) .SingleAsync(v => v.Id == variantId); var result = new ContentResult { StatusCode = StatusCodes.Status200OK, ContentType = "application/json", Content = TaskVariantConverter.ToJson(selectedVariant) }; return(result); }
public TaskVariantsController(GraphLabsContext context, TaskVariantConverter taskVariantConverter) { _db = context; _taskVariantConverter = taskVariantConverter; }