private SaveMap ProcessWorkGroup(List <EntityInfo> workGroupInfos)
        {
            var publishingWgs = workGroupInfos
                                .Where(info => info.OriginalValuesMap.ContainsKey("MpSpStatus"))
                                .Select(info => info.Entity)
                                .OfType <WorkGroup>()
                                .Where(wg => wg.MpSpStatus == MpSpStatus.Published).ToList();

            var wgSaveMap = new Dictionary <Type, List <EntityInfo> > {
                { tWg, workGroupInfos }
            };

            if (!publishingWgs.Any())
            {
                return(null);
            }


            var svrWgIds        = publishingWgs.Select(wg => wg.WorkGroupId);
            var grpsWithMemsIds = ctxManager.Context.WorkGroups.Where(grp => svrWgIds.Contains(grp.WorkGroupId) && grp.GroupMembers.Where(mem => !mem.IsDeleted).Count() > 0).Select(wg => wg.WorkGroupId);

            if (grpsWithMemsIds.Any())
            {
                var publishResultMap = WorkGroupPublish.Publish(wgSaveMap, grpsWithMemsIds, loggedInUser.PersonId, ctxManager);

                return(publishResultMap);
            }

            return(wgSaveMap);
        }
        private SaveMap ProcessWorkGroup(List <EntityInfo> workGroupInfos)
        {
            var publishingWgs = workGroupInfos
                                .Where(info => info.OriginalValuesMap.ContainsKey("MpSpStatus"))
                                .Select(info => info.Entity)
                                .OfType <WorkGroup>()
                                .Where(wg => wg.MpSpStatus == MpSpStatus.Published).ToList();

            var wgSaveMap = new Dictionary <Type, List <EntityInfo> > {
                { tWg, workGroupInfos }
            };

            if (!publishingWgs.Any())
            {
                return(wgSaveMap);
            }


            var svrWgIds         = publishingWgs.Select(wg => wg.WorkGroupId);
            var publishResultMap = WorkGroupPublish.Publish(wgSaveMap, svrWgIds, loggedInUserId, ctxManager);

            wgSaveMap.MergeMap(publishResultMap);

            return(wgSaveMap);
        }