public void CompleteSelected()
    {
        var exceptionIds = new List <string>();

        foreach (var activity in ListActionActivities)
        {
            if (!activity.Recurring)
            {
                var data = new CompleteActivityData
                {
                    User          = CurrentUser,
                    CompletedDate = Convert.ToBoolean(asScheduled.Value)
                                                       ? (activity.Timeless)
                                                            ? activity.StartDate.Date.AddSeconds(5)
                                                            : activity.StartDate.AddMinutes(activity.Duration)
                                                       : DateTime.UtcNow,
                    Result = resultText.Value,
                    Notes  = completeNotes.Value
                };
                if (!Complete(activity, data))
                {
                    exceptionIds.Add(activity.ActivityId);
                }
                if (activity == _CurrentActivity)
                {
                    _CurrentActivity = null;
                }
            }
        }

        if (exceptionIds.Count > 0)
        {
            ShowError(SR.Error_QuickComplete, exceptionIds);
        }
    }
 private static bool Complete(IActivity activity, CompleteActivityData data)
 {
     try
     {
         activity.LongNotes = data.Notes;
         IHistory history = activity.Complete(
             data.User.Id.ToString(), data.Result, string.Empty, data.CompletedDate);
         return(history != null);
     }
     catch (DynamicMethodException e)
     {
         if (e.InnerException is CompleteActivityException)
         {
             return(false);
         }
         throw;
     }
 }