private void doItOnce()
{
Session.Clear();
net = new Network();
John = new AllenVariable(net, 0, 40, 30, "John");
Mary = new AllenVariable(net, 35, 60, 20, "Mary");
Wendy = new AllenVariable(net, 0, 60, 50, "Wendy");
Soccer = new AllenVariable(net, 30, 135, 105, "Soccer");
John.Equals(Mary);
John.Starts(Mary);
John.StartedBy(Mary);
John.Meets(Mary);
John.Equals(Wendy);
John.Starts(Wendy);
John.StartedBy(Wendy);
John.Meets(Wendy);
John.Overlaps(Soccer);
Mary.Finishes(Wendy);
Mary.FinishedBy(Wendy);
Mary.During(Soccer);
Mary.Contains(Soccer);
AllenDomain ad0 = (AllenDomain)(John.Domain);
AllenDomain ad1 = (AllenDomain)(Mary.Domain);
AllenDomain ad2 = (AllenDomain)(Wendy.Domain);
AllenDomain ad3 = (AllenDomain)(Soccer.Domain);
solver = new AllenSolver(net);
for (solver.Start(); solver.WaitNext(); solver.Resume())
{
solution = solver.Solution;
Session["jd"] = ad0.Duration;
Session["md"] = ad1.Duration;
Session["wd"] = ad2.Duration;
Session["sd"] = ad3.Duration;
Session["js" + Convert.ToInt16(counter)] = solution.GetIntValue(John);
Session["ms" + Convert.ToInt16(counter)] = solution.GetIntValue(Mary);
Session["ws" + Convert.ToInt16(counter)] = solution.GetIntValue(Wendy);
Session["ss" + Convert.ToInt16(counter)] = solution.GetIntValue(Soccer);
Session["jp" + Convert.ToInt16(counter)] = ad0.Duration;
Session["mp" + Convert.ToInt16(counter)] = ad1.Duration;
Session["wp" + Convert.ToInt16(counter)] = ad2.Duration;
Session["sp" + Convert.ToInt16(counter)] = ad3.Duration;
Session["jn" + Convert.ToInt16(counter)] = solution.GetIntValue(John).ToString();
Session["mn" + Convert.ToInt16(counter)] = solution.GetIntValue(Mary).ToString();
Session["wn" + Convert.ToInt16(counter)] = solution.GetIntValue(Wendy).ToString();
Session["sn" + Convert.ToInt16(counter)] = solution.GetIntValue(Soccer).ToString();
counter += 1;
}
Session["done"] = true;
Session["total"] = counter;
Session["counter"] = 0;
total.Text = "There are " + counter + " solutions";
counter = 0;
Display();
Button1.Enabled = true;
Button2.Enabled = true;
Button3.Enabled = true;
Button4.Enabled = true;
if (Convert.ToInt16(Session["counter"]) == 0)
{
Button1.Enabled = false;
Button2.Enabled = false;
}
if (Convert.ToInt16(Session["counter"]) == Convert.ToInt16(Session["total"]) - 1)
{
Button3.Enabled = false;
Button4.Enabled = false;
}
}