private static void PostForm(IDictionary<string, string> parameters, HttpRequestEventArgs e)
{
var entry = new Model.AOCEntry();
Console.WriteLine("Entry received");
bool avail = false;
int score = 0;
int.TryParse(e.Request.Form["Score"] ?? string.Empty, out score);
var a = e.Request.Form["Availability"];
if (!string.IsNullOrEmpty(a))
{
a = a.ToLowerInvariant();
avail = a == "checked" || a == "true";
}
entry.FirstName = e.Request.Form["FirstName"] ?? string.Empty;
entry.LastName = e.Request.Form["LastName"] ?? string.Empty;
entry.Email = e.Request.Form["Email"] ?? string.Empty;
entry.Role = e.Request.Form["Role"] ?? string.Empty;
entry.LineManager = e.Request.Form["LineManager"] ?? string.Empty;
entry.Reason = e.Request.Form["Reason"] ?? string.Empty;
entry.Answers = e.Request.Form["Answers"] ?? string.Empty;
entry.Organisation = e.Request.Form["Organisation"] ?? string.Empty;
entry.Region = e.Request.Form["Region"] ?? string.Empty;
entry.Available = avail;
entry.Score = score;
entry.Answers = e.Request.Form["Answers"] ?? string.Empty;
entry.Submitted = DateTime.UtcNow;
Dictionary<string, object> errors = new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
if (string.IsNullOrEmpty(entry.FirstName) || entry.FirstName.Length < 2)
errors["FirstName"] = "Please enter a first name";
if (string.IsNullOrEmpty(entry.LastName) || entry.LastName.Length < 2)
errors["LastName"] = "Please enter a last name";
if (string.IsNullOrEmpty(entry.Email) || entry.Email.Length < 5)
errors["Email"] = "Please enter an email address";
else if (!entry.Email.ValidateEmail())
errors["Email"] = "Please enter a valid email address";
if (string.IsNullOrEmpty(entry.Role) || entry.Role.Length < 2)
errors["Role"] = "Please enter a role";
if (string.IsNullOrEmpty(entry.LineManager) || entry.LineManager.Length < 2)
errors["LineManager"] = "Please enter the name of your line manager";
if (string.IsNullOrEmpty(entry.Reason) || entry.Reason.Length < 2)
errors["Reason"] = "Please tell us why you should be an Agent of Change";
if (string.IsNullOrEmpty(entry.Organisation) || entry.Organisation.Length < 2)
errors["Organisation"] = "Please select an organisation";
if (string.IsNullOrEmpty(entry.Region) || entry.Region.Length < 2)
errors["Region"] = "Please select a region";
if (errors.Count > 0)
{
errors["result"] = false;
DefaultResponses.Json(e, errors);
Console.WriteLine("Failed entry: {0}", JsonConvert.SerializeObject(errors));
}
else
{
Db.AddEntry(entry);
if (string.IsNullOrEmpty(Config.SuccessRedirect))
DefaultResponses.Json(e, new Dictionary<string, object>() { { "result", true } });
else
DefaultResponses.RedirectResponse(e, Config.SuccessRedirect);
Console.WriteLine("Successful entry from {0}", entry.Email);
}
}