本文整理汇总了C#中Question.TransferValidationMessagesTo方法的典型用法代码示例。如果您正苦于以下问题:C# Question.TransferValidationMessagesTo方法的具体用法?C# Question.TransferValidationMessagesTo怎么用?C# Question.TransferValidationMessagesTo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Question
的用法示例。
在下文中一共展示了Question.TransferValidationMessagesTo方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Create
public ActionResult Create(int id, int? categoryId, Question question, ResponsesParameter[] response)
{
var isNewVersion = false;
var survey = Repository.OfType<Survey>().GetNullableById(id);
if (survey == null)
{
Message = "Survey Not Found";
return this.RedirectToAction<ErrorController>(a => a.Index());
}
var viewModel = QuestionViewModel.Create(Repository, survey);
if (categoryId != null) //This category Id is just used for defaults and navigation
{
var category = Repository.OfType<Category>().GetNullableById(categoryId.Value);
viewModel.Category = category;
}
viewModel.Question = question;
if (question.Category != null && Repository.OfType<Answer>().Queryable.Where(a => a.Category.Id == question.Category.Id).Any())
{
//The category picked already has answers, so if it is valid and we create a new question, we want to create a new version of the category first.
isNewVersion = true;
}
// Remove responses that do not have a Choice or that have the remove checked. This is the create, so they will never be added
var cleanedResponse = new List<ResponsesParameter>();
foreach (var responsesParameter in response.OrderBy(a => a.Order))
{
if (!string.IsNullOrWhiteSpace(responsesParameter.Value) && !responsesParameter.Remove)
{
cleanedResponse.Add(responsesParameter);
}
}
viewModel.Responses = cleanedResponse;
var questionToCreate = new Question(survey);
Mapper.Map(question, questionToCreate);
foreach (var responsesParameter in viewModel.Responses)
{
var responseToAdd = new Response
{
Order = responsesParameter.Order,
IsActive = true,
Score = responsesParameter.Score.GetValueOrDefault(0),
Value = responsesParameter.Value
};
questionToCreate.AddResponse(responseToAdd);
}
ModelState.Clear();
questionToCreate.TransferValidationMessagesTo(ModelState);
foreach (var responsesParameter in cleanedResponse)
{
if (!responsesParameter.Score.HasValue)
{
ModelState.AddModelError("Question", "All responses need a score");
}
else
{
if(questionToCreate.IsOpenEnded)
{
switch ((QuestionType)questionToCreate.OpenEndedQuestionType)
{
case QuestionType.WholeNumber:
int number;
if (!int.TryParse(responsesParameter.Value, out number))
{
ModelState.AddModelError("Question", "Choices must be whole numbers");
}
break;
case QuestionType.Decimal:
float floatNumber;
if (!float.TryParse(responsesParameter.Value, out floatNumber))
{
ModelState.AddModelError("Question", "Choices must be numbers (decimal ok)");
}
break;
case QuestionType.Time:
float floatTime;
if (!responsesParameter.Value.TimeTryParse(out floatTime))
{
ModelState.AddModelError("Question", "Choices must be Time (hh:mm)");
}
break;
case QuestionType.TimeAmPm:
float floatTimeAmPm;
if (!responsesParameter.Value.TimeTryParseAmPm(out floatTimeAmPm))
{
ModelState.AddModelError("Question", "Choices must be Time (hh:mm AM/PM)");
}
break;
case QuestionType.TimeRange:
float timeRangeNumber;
if (!float.TryParse(responsesParameter.Value, out timeRangeNumber))
{
ModelState.AddModelError("Question", "Choices must be numbers (decimal ok)");
}
break;
//.........这里部分代码省略.........
示例2: Edit
//.........这里部分代码省略.........
}
}
//Mapper.Map(question, questionToEdit);
question.Responses.Clear();
foreach (var responsesParameter in viewModel.Responses)
{
if (responsesParameter.ResponseId != 0)
{
var foundResp = questionToEdit.Responses.Where(a => a.Id == responsesParameter.ResponseId).Single();
foundResp.Value = responsesParameter.Value;
foundResp.Score = responsesParameter.Score.GetValueOrDefault(0);
foundResp.IsActive = !responsesParameter.Remove;
foundResp.Order = responsesParameter.Order;
question.AddResponse(foundResp);
}
else
{
var responseToAdd = new Response
{
Order = responsesParameter.Order,
IsActive = true,
Score = responsesParameter.Score.GetValueOrDefault(0),
Value = responsesParameter.Value
};
question.AddResponse(responseToAdd);
}
}
question.Survey = questionToEdit.Survey;
ModelState.Clear();
question.TransferValidationMessagesTo(ModelState);
foreach (var responsesParameter in cleanedResponse)
{
if (!responsesParameter.Score.HasValue)
{
ModelState.AddModelError("Question", "All responses need a score");
}
if (question.IsOpenEnded && !responsesParameter.Remove)
{
switch ((QuestionType)question.OpenEndedQuestionType)
{
case QuestionType.WholeNumber:
int number;
if (!int.TryParse(responsesParameter.Value, out number))
{
ModelState.AddModelError("Question", "Choices must be whole numbers");
}
break;
case QuestionType.Decimal:
float floatNumber;
if (!float.TryParse(responsesParameter.Value, out floatNumber))
{
ModelState.AddModelError("Question", "Choices must be numbers (decimal ok)");
}
break;
case QuestionType.Time:
float floatTime;
if (!responsesParameter.Value.TimeTryParse(out floatTime))
{
ModelState.AddModelError("Question", "Choices must be Time (hh:mm)");
}
break;