Пример #1
0
        private static void RegisterCreationActivity(ActivityKind activityKind, Dictionary <string, object> data,
                                                     SPWeb contextWeb,
                                                     StreamManager streamManager, ThreadManager threadManager, ActivityManager activityManager)
        {
            var webId = (Guid)data["Id"];

            var activityDateTime = (DateTime)data["ActivityTime"];

            Thread thread = threadManager.SaveThread(new Thread
            {
                Title = (string)data["Title"],
                Url   = (string)data["URL"],
                Kind  = ObjectKind.Workspace,
                FirstActivityDateTime = activityDateTime,
                WebId = webId,
                Users = new[] { new User {
                                    Id = (int)data["UserId"], Role = UserRole.Author
                                } }
            });

            activityManager.RegisterActivity(new Activity
            {
                Kind   = activityKind,
                UserId = (int)data["UserId"],
                Thread = thread,
                Date   = activityDateTime
            });

            Guid streamId = streamManager.GetGlobalStreamId(webId);

            threadManager.AssociateStreams(thread, new[] { streamId });
            threadManager.UpdateUsers(thread);

            CoreFunctions.setConfigSetting(contextWeb, CREATED_CONFIG_KEY, true.ToString());
        }
Пример #2
0
        private static void RegisterDeletionActivity(Dictionary <string, object> data, ThreadManager threadManager,
                                                     ActivityManager activityManager, StreamManager streamManager, SPWeb contextWeb)
        {
            var webId = (Guid)data["Id"];

            Thread thread = threadManager.GetThread(webId);

            if (thread == null)
            {
                thread = threadManager.SaveThread(new Thread
                {
                    Title = (string)data["Title"],
                    Url   = (string)data["URL"],
                    Kind  = ObjectKind.Workspace,
                    WebId = webId,
                    Users = new[] { new User {
                                        Id = (int)data["UserId"], Role = UserRole.Author
                                    } },
                });

                Guid streamId = streamManager.GetGlobalStreamId(webId);

                threadManager.AssociateStreams(thread, new[] { streamId });
                threadManager.UpdateUsers(thread);

                CoreFunctions.setConfigSetting(contextWeb, CREATED_CONFIG_KEY, true.ToString());
            }

            threadManager.DeleteThread(thread);

            activityManager.RegisterActivity(new Activity
            {
                Kind   = ActivityKind.Deleted,
                UserId = (int)data["UserId"],
                Thread = thread,
                Date   = (DateTime)data["ActivityTime"]
            });

            IEnumerable <Guid> threadIds = threadManager.GetThreadIds(webId);

            threadManager.DeleteThreads(threadIds);
        }
Пример #3
0
        private void RegisterBulkOperationActivity(ProcessActivityEventArgs args)
        {
            Dictionary <string, object> data = args.Data;
            ThreadManager   threadManager    = args.ThreadManager;
            ActivityManager activityManager  = args.ActivityManager;
            StreamManager   streamManager    = args.StreamManager;

            var webId = (Guid)data["WebId"];

            var activityDateTime = (DateTime)data["ActivityTime"];

            Thread thread = threadManager.SaveThread(new Thread
            {
                Title  = string.Empty,
                Url    = string.Empty,
                Kind   = ObjectKind.List,
                WebId  = webId,
                ListId = (Guid)data["Id"],
                FirstActivityDateTime = activityDateTime,
                Users = new[] { new User {
                                    Id = (int)data["UserId"], Role = UserRole.Author
                                } }
            });

            var activity = new Activity
            {
                Kind   = args.ActivityKind,
                UserId = (int)data["UserId"],
                Thread = thread,
                Date   = activityDateTime
            };

            activity.SetData(new { totalActivities = data["TotalActivities"] });

            activityManager.RegisterActivity(activity);

            Guid streamId = streamManager.GetGlobalStreamId(webId);

            threadManager.AssociateStreams(thread, new[] { streamId });
            threadManager.UpdateUsers(thread);
        }
Пример #4
0
        private void RegisterCreationActivity(ProcessActivityEventArgs args)
        {
            Dictionary <string, object> data = args.Data;
            ThreadManager   threadManager    = args.ThreadManager;
            ActivityManager activityManager  = args.ActivityManager;
            StreamManager   streamManager    = args.StreamManager;

            var webId = (Guid)data["WebId"];

            var activityDateTime = (DateTime)data["ActivityTime"];

            Thread thread = threadManager.SaveThread(new Thread
            {
                Title = (string)data["Status"],
                Kind  = args.ObjectKind,
                FirstActivityDateTime = activityDateTime,
                WebId  = webId,
                ListId = (Guid)data["ListId"],
                ItemId = (int)data["ItemId"],
                Users  = new[] { new User {
                                     Id = (int)data["UserId"], Role = UserRole.Author
                                 } }
            });

            data["#!Thread"] = thread;

            activityManager.RegisterActivity(new Activity
            {
                Key    = data["Id"].ToString(),
                Kind   = args.ActivityKind,
                UserId = (int)data["UserId"],
                Thread = thread,
                Date   = activityDateTime
            });

            Guid streamId = streamManager.GetGlobalStreamId(webId);

            threadManager.AssociateStreams(thread, new[] { streamId });
            threadManager.UpdateUsers(thread);
        }
Пример #5
0
        private void PerformPostRegistrationSteps(ProcessActivityEventArgs args)
        {
            Dictionary <string, object> data = args.Data;

            ThreadManager   threadManager   = args.ThreadManager;
            ActivityManager activityManager = args.ActivityManager;
            StreamManager   streamManager   = args.StreamManager;

            var thread = (Thread)data["#!Thread"];

            if (data.ContainsKey("IsMassOperation"))
            {
                if ((bool)data["IsMassOperation"])
                {
                    var activity = (Activity)data["#!Activity"];
                    activityManager.FlagMassOperation(activity.Id);
                }
            }

            Guid streamId = streamManager.GetGlobalStreamId((Guid)data["WebId"]);

            threadManager.AssociateStreams(thread, new[] { streamId });

            UpdateThreadUsers(args, thread);

            if (!data.ContainsKey("AssociatedListItems"))
            {
                return;
            }

            var associatedListItems = (string)(data["AssociatedListItems"] ?? string.Empty);

            if (!string.IsNullOrEmpty(associatedListItems))
            {
                AddAssociatedThreads(associatedListItems, thread, threadManager);
            }
        }