当前位置: 首页>>代码示例>>C#>>正文


C# DataConnection.DeleteActivity方法代码示例

本文整理汇总了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);

                }
            }
        }
开发者ID:JustAndrei,项目名称:C1-Packages,代码行数:65,代码来源:CleanerFacade.cs


注:本文中的DataConnection.DeleteActivity方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。