本文整理汇总了C#中DataConnection.DeleteActivity方法的典型用法代码示例。如果您正苦于以下问题:C# DataConnection.DeleteActivity方法的具体用法?C# DataConnection.DeleteActivity怎么用?C# DataConnection.DeleteActivity使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DataConnection
的用法示例。
在下文中一共展示了DataConnection.DeleteActivity方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Clean
public static void Clean()
{
var archiveList = new Dictionary<Guid, DataSourceId>();
using (var conn = new DataConnection(PublicationScope.Unpublished))
{
var activities = from a in conn.Get<IActivity>()
join t in conn.Get<ITask>() on a.TaskId equals t.Id
join tt in conn.Get<ITaskTarget>() on t.TaskTargetId equals tt.Id
select new { a.Id, a.TaskId, a.ActivityTime, tt.TargetDataSourceId };
var activityByTargets = (from a in activities
group a by a.TargetDataSourceId).ToDictionary(d => d.Key, d => d.OrderBy(a => a.ActivityTime).ToList());
var publishingByTargets = (from t in conn.Get<ITask>()
join tt in conn.Get<ITaskTarget>() on t.TaskTargetId equals tt.Id
where t.TaskType == "Publish"
group t by tt.TargetDataSourceId).ToDictionary(d => d.Key, d => d.OrderBy(a => a.StartTime).ToList());
//var targets = conn.Get<ITaskTarget>().ToDictionary(d => d.Id, d => );
//Response.Write(targets.Count);
Log.LogVerbose(CleanerFacade.Title, activities.Count() + "<br />");
foreach (var activity in activities.Where(d => d.ActivityTime < DateTime.Now.AddMonths(-1)).OrderBy(d => d.ActivityTime).ToList())
{
var targetDataSourceId = activity.TargetDataSourceId;
DataSourceId dataSourceId = null;
if (DataSourceId.TryDeserialize(targetDataSourceId, out dataSourceId))
{
if (dataSourceId.InterfaceType.GetInterfaces().Contains(typeof(IPublishControlled)))
{
if (publishingByTargets.ContainsKey(targetDataSourceId))
{
var nextPublishing = publishingByTargets[targetDataSourceId].Where(d => d.StartTime > activity.ActivityTime).FirstOrDefault();
var nextActivity = activityByTargets[targetDataSourceId].Where(d => d.ActivityTime > activity.ActivityTime).FirstOrDefault();
if (nextPublishing != null && nextActivity != null && nextActivity.ActivityTime < nextPublishing.StartTime)
{
archiveList.Add(activity.Id, dataSourceId);
}
}
}
else
{
if (activityByTargets[activity.TargetDataSourceId].Any(d => d.ActivityTime > activity.ActivityTime && d.ActivityTime < activity.ActivityTime.AddHours(1)))
{
archiveList.Add(activity.Id, dataSourceId);
}
}
}
else
{
archiveList.Add(activity.Id, null);
}
//var data = targets.First().DataSourceId.
}
Log.LogVerbose(CleanerFacade.Title, archiveList.Count().ToString());
foreach (var item in archiveList)
{
conn.DeleteActivity(item.Key, item.Value);
}
}
}