public static bool Validate_ColorPicker(SubPrompt prompt, UserSubForm subForm) { bool promptedForColorPicker = prompt.ColorPicker; bool providedColorPicker = !string.IsNullOrWhiteSpace(subForm.Color); return(promptedForColorPicker == providedColorPicker); }
public static bool Validate_Drawing(SubPrompt prompt, UserSubForm subForm) { bool promptedForDrawing = prompt.Drawing != null; bool providedDrawing = !string.IsNullOrWhiteSpace(subForm.Drawing); return(promptedForDrawing == providedDrawing); }
public static bool Validate_ShortAnswer(SubPrompt prompt, UserSubForm subForm) { bool promptedForShortAnswer = prompt.ShortAnswer; bool providedShortAnswer = !string.IsNullOrWhiteSpace(subForm.ShortAnswer); return(promptedForShortAnswer == providedShortAnswer); }
public static bool Validate_Dropdown(SubPrompt prompt, UserSubForm subForm) { bool promptedForDropdown = prompt.Dropdown != null; bool providedDropdown = subForm.DropdownChoice.HasValue; bool validSubmission = !providedDropdown || (subForm.DropdownChoice.Value >= 0 && subForm.DropdownChoice.Value < prompt.Dropdown.Length); return((promptedForDropdown == providedDropdown) && validSubmission); }
public static bool Validate_Selector(SubPrompt prompt, UserSubForm subForm) { bool promptedForSelector = prompt.Selector != null; bool providedSelector = subForm.Selector.HasValue; bool submissionValid = !providedSelector || (subForm.Selector.Value >= 0 && subForm.Selector.Value < (prompt.Selector?.ImageList?.Length ?? 0)); return((promptedForSelector == providedSelector) && submissionValid); }
public static bool Validate_Answers(SubPrompt prompt, UserSubForm subForm) { bool promptedForAnswers = prompt.Answers != null; bool providedAnswers = subForm.RadioAnswer.HasValue; bool submissionValid = !providedAnswers || (subForm.RadioAnswer.Value >= 0 && subForm.RadioAnswer.Value < prompt.Answers.Length); return((promptedForAnswers == providedAnswers) && submissionValid); }
private T TryExtractObjectVotedFor(User user, UserFormSubmission submission) { SubPrompt subPrompt = this.PromptsPerUser[user].SubPrompts[0]; T objectVotedFor = null; if (subPrompt?.Answers != null && (submission?.SubForms?.FirstOrDefault()?.RadioAnswer != null)) { objectVotedFor = this.ObjectList[submission.SubForms.FirstOrDefault().RadioAnswer.Value]; } else if (subPrompt?.Selector?.ImageList != null && (submission?.SubForms?.FirstOrDefault()?.Selector != null)) { objectVotedFor = this.ObjectList[submission.SubForms[0].Selector.Value]; } return(objectVotedFor); }
private void ValidateUserPrompt(UserPrompt prompt) { // Syntax below is from Fluent assertions prompt.SubPrompts.Should().NotBeNull().And.HaveCount(1, because: "VotingGameState only equipped to handle 1 subprompt."); SubPrompt subPrompt = prompt.SubPrompts[0]; if (subPrompt.Answers != null) { subPrompt.Answers.Should().HaveCount(this.ObjectList.Count, "Answers list length should match length of voting object list"); } if (subPrompt?.Selector?.ImageList != null) { subPrompt.Selector.ImageList.Should().HaveCount(this.ObjectList.Count, "Answers list length should match length of voting object list"); } }
public static bool Validate_Slider(SubPrompt prompt, UserSubForm subForm) { bool promptedForSlider = prompt.Slider != null; bool providedSlider = subForm.Slider != null; if (!promptedForSlider || !providedSlider) { return(promptedForSlider == providedSlider); } bool validSubmission = true; // Range sliders should have a list of length 2 (min, max). Nonrange sliders should only have one value. validSubmission &= (subForm.Slider.Count == (prompt.Slider.Range ? 2 : 1)); validSubmission &= subForm.Slider.All(val => (val >= prompt.Slider.Min) && (val <= prompt.Slider.Max)); validSubmission &= subForm.Slider.Count == 1 || (subForm.Slider[0] <= subForm.Slider[1]); return(validSubmission); }
public static UserSubForm WithDefaults(UserSubForm partialSubmission, SubPrompt prompt) { if (prompt == null) { throw new ArgumentNullException($"prompt was null"); } // TODO: default to selecting random choice. return(new UserSubForm() { Id = prompt.Id, ShortAnswer = prompt.ShortAnswer ? (partialSubmission?.ShortAnswer ?? "N/A") : null, Drawing = (prompt.Drawing != null) ? (partialSubmission?.Drawing ?? Constants.Drawings.DefaultDrawing(prompt.Drawing.DrawingType)) : null, Selector = (prompt.Selector != null) ? (partialSubmission?.Selector ?? (int?)0) : null, Slider = (prompt.Slider != null) ? (partialSubmission?.Slider ?? (prompt.Slider.Range ? new List <int> { prompt.Slider.Min, prompt.Slider.Max } : new List <int> { prompt.Slider.Min })): null, DropdownChoice = (prompt.Dropdown != null) ? (partialSubmission?.DropdownChoice ?? (int?)0): null, RadioAnswer = (prompt.Answers != null) ? (partialSubmission?.RadioAnswer ?? (int?)0) : null, Color = prompt.ColorPicker ? (partialSubmission?.Color ?? Constants.Colors.DarkGray) : null, }); }