示例#1
0
 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();
     }
 }
示例#2
0
    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);
        }
    }