public void ListenForever(DummyEncrypter handler) { this.handler = handler; try { while (!doneFlag.IsSet) { try { double period; PopExternal(); if (tasks.Count == 0) { period = 2 ^ 30; } else { OriginalTask t = (OriginalTask)tasks[0]; period = (t.When - DateTime.Now).TotalSeconds; if (period < 0) { period = 0; } } List <PollItem> events = poll.Select((int)(period * 1000000)); if (doneFlag.IsSet) { return; } while (tasks.Count > 0 && tasks[0].When <= DateTime.Now) { OriginalTask t = tasks[0]; tasks.RemoveAt(0); try { t.TaskFunction(); } //TODO: except KeyboardInterrupt: // print_exc() // return catch { if (noisy) { ; } //TODO: print_exc() } } CloseDead(); HandleEvents(events); if (doneFlag.IsSet) { return; } CloseDead(); } //TODO: //except error: // if self.doneflag.isSet(): // return //except KeyboardInterrupt: // print_exc() // return catch { //TODO: print_exc() } } } finally { foreach (DummySingleSocket ss in singleSockets.Values) { ss.Close(true); } server.Close(); } }
protected void btnSave_Click(object sender, EventArgs e) { // // Replaced user control DateTimeInterval for DateTime using the new feature hour // if (ucEndDate.DateTime != null) { if (ucBeginDate.DateTime.Value > ucEndDate.DateTime.Value) { ShowError(Resources.Exception.StartTimeIsBiggerThanEndTime); return; } } _taskManager = new TaskManager(this); Task task = OriginalTask.Duplicate(); task.Name = txtName.Text; if (Page.ViewState["ServiceOrderId"] != null) { task.SubjectId = Convert.ToInt32(Page.ViewState["ServiceOrderId"]); task.PageName = "serviceorder.aspx"; ServiceOrder os = new ServicesManager(this).GetServiceOrder(task.SubjectId.Value); task.Name = "OS" + os.ServiceOrderNumber + " - " + task.Name; } task.TaskStatusId = Convert.ToInt32(cboTaskStatus.SelectedValue); task.Priority = Convert.ToInt32(rtnRanking.CurrentRating); task.Cost = ucCurrFieldCost.CurrencyValue; task.Deadline = ucDeadLineDate.DateTime; task.CreatorUserId = User.Identity.UserId; if (!String.IsNullOrEmpty(cboAlertMinutesBefore.SelectedValue)) { task.AlertMinutesBefore = Convert.ToInt32(cboAlertMinutesBefore.SelectedValue); } if (CanChange) { task.Description = txtDescription.Value.Replace("$0", "<br/>"); } if (!String.IsNullOrEmpty(cboParentTasks.SelectedValue)) { task.ParentTaskId = Convert.ToInt32(cboParentTasks.SelectedValue); } task.FinishDate = ucEndDate.DateTime; if (ucBeginDate.DateTime > DateTime.MinValue.Sql2005MinValue()) { task.StartDate = ucBeginDate.DateTime; } var alertManager = new AlertManager(this); if (Page.ViewState["TaskId"] != null) { _taskManager.SaveTask(OriginalTask, task, Users); if (alertManager.GetAlerts(task.TaskId, "task.aspx") != null) { alertManager.DeleteAlerts(task.TaskId, "task.aspx"); } } else { _taskManager.SaveTask(task, task, Users); } if (!String.IsNullOrEmpty(Request["app"])) { CreateAlerts(task); } if (((WebControl)sender).ID == "btnSave") { if (task.PageName == "serviceorder.aspx") { Response.Redirect("Appointments.aspx?ServiceOrderId=" + Request["ServiceOrderId"]); } else if (!String.IsNullOrEmpty(Request["app"])) { Response.Redirect("Appointments.aspx"); } else { Response.Redirect("Tasks.aspx"); } } else { var appointment = Request["app"]; Response.Redirect("Task.aspx?app=" + appointment); } }