public async Task <IActionResult> PutUserGroupMember([FromRoute] Guid id, [FromBody] UserGroupMember userGroupMember)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != userGroupMember.UserGroupMemberId)
            {
                return(BadRequest());
            }

            _context.Entry(userGroupMember).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UserGroupMemberExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Exemplo n.º 2
0
        public static async Task <dynamic> Unsubscribe(string userId, string groupId)
        {
            var cntx = Cntx;
            UserGroupMemberServiceProxy uigsvc = new UserGroupMemberServiceProxy();
            var uig = await uigsvc.LoadEntityByKeyAsync(cntx, groupId, userId);

            if (uig != null && (!uig.SubscribedTo.HasValue || !uig.SubscribedTo.Value))
            {
                return new { ok = false, msg = ResourceUtils.GetString("735f81aa93cc3430592d2cc2a57b1cd7", "You are not a subscriber yet!") }
            }
            ;
            if (uig == null)
            {
                uig = new UserGroupMember
                {
                    UserID               = userId,
                    UserGroupID          = groupId,
                    SubscribedTo         = false,
                    ActivityNotification = false
                };
            }
            else
            {
                uig.SubscribedTo = false;
            }
            await uigsvc.AddOrUpdateEntitiesAsync(cntx, new UserGroupMemberSet(), new UserGroupMember[] { uig });

            return(new { ok = true, msg = "" });
        }
Exemplo n.º 3
0
        public static IEnumerable <UserGroup> GetUserGroups(UserPrincipal principal)
        {
            IEnumerable <UserGroup> userGroups = UserGroupMember.FetchAllByPrincipalId(principal.Id).Select(mem => mem.Group);

            userGroups = userGroups.Concat(userGroups.SelectMany(group => Customisation.GetUserGroups(group.Principal)));
            return(userGroups);
        }
        public async Task <IActionResult> PostUserGroupMember([FromBody] UserGroupMember userGroupMember)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.UserGroupMembers.Add(userGroupMember);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetUserGroupMember", new { id = userGroupMember.UserGroupMemberId }, userGroupMember));
        }
Exemplo n.º 5
0
        public static async Task <dynamic> Subscribe(string userId, string groupId)
        {
            var cntx = Cntx;
            UserGroupMemberServiceProxy uigsvc = new UserGroupMemberServiceProxy();
            var uig = await uigsvc.LoadEntityByKeyAsync(cntx, groupId, userId);

            if (uig != null && uig.SubscribedTo.HasValue && uig.SubscribedTo.Value)
            {
                return new { ok = false, msg = ResourceUtils.GetString("73cca337310dc88725934ac22120ffaf", "You are already a subscriber!") }
            }
            ;
            QueryExpresion qexpr = new QueryExpresion();

            qexpr.OrderTks = new List <QToken>();
            qexpr.OrderTks.Add(new QToken {
                TkName = "UserGroupID"
            });
            qexpr.FilterTks = new List <QToken>();
            qexpr.FilterTks.Add(new QToken
            {
                TkName = "UserID == \"" + userId + "\" && SubscribedTo is not null && SubscribedTo == true"
            });
            var uigs = await uigsvc.QueryDatabaseAsync(cntx, new UserGroupMemberSet(), qexpr);

            if (uigs.Count() >= MaxSubscriptions)
            {
                return(new
                {
                    ok = false,
                    msg = ResourceUtils.GetString("06200770094b57284bc7b16e0c7ea274", "You number of subscriptions exeeds the allowed limit, please unsubscribe from some of the existing ones first.")
                });
            }
            if (uig == null)
            {
                uig = new UserGroupMember
                {
                    UserID               = userId,
                    UserGroupID          = groupId,
                    SubscribedTo         = true,
                    ActivityNotification = false
                };
            }
            else
            {
                uig.SubscribedTo = true;
            }
            await uigsvc.AddOrUpdateEntitiesAsync(cntx, new UserGroupMemberSet(), new UserGroupMember[] { uig });

            return(new { ok = true, msg = "" });
        }
Exemplo n.º 6
0
        public void AddMember(Guid userGroupId, Guid userId)
        {
            var isDup = userGroupRepository.GetAllMember().Where(t => t.UserId == userId && t.UserGroupId == userGroupId).Any();

            if (isDup)
            {
                throw new DataValidationException("The user is already exist in this group.");
            }
            var member = new UserGroupMember();

            if (!userRepository.IsExist(member.UserId))
            {
                throw new DataValidationException(string.Format(MessageResource.Error_ReferenceDataNotExist, "User"));
            }
            if (!userGroupRepository.IsExist(userGroupId))
            {
                throw new DataValidationException(string.Format(MessageResource.Error_ReferenceDataNotExist, "User group"));
            }
            member.UserId      = userId;
            member.UserGroupId = userGroupId;
        }
Exemplo n.º 7
0
        private void buttonAddRemoveMember_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = DialogResult.Cancel;

            if (sender.Equals(this.buttonAddMember) && this.SelectedUserGroupIndex != null)
            {
                UserGroupAvailableMembers wizardUserRegister = new UserGroupAvailableMembers(this.userGroupAPIs, this.SelectedUserGroupIndex.UserGroupID, this.SelectedUserGroupIndex.Name);
                dialogResult = wizardUserRegister.ShowDialog(); wizardUserRegister.Dispose();
            }
            if (sender.Equals(this.buttonRemoveMember) && this.SelectedUserGroupIndex != null && this.fastUserGroupDetails.SelectedObject != null)
            {
                UserGroupMember userGroupMember = (UserGroupMember)this.fastUserGroupDetails.SelectedObject;
                if (userGroupMember != null && CustomMsgBox.Show(this, "Are you sure you want to remove: " + "\r\n" + "\r\n" + userGroupMember.UserName + "\r\n" + "\r\n" + "from this group?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Stop) == DialogResult.Yes)
                {
                    this.userGroupAPIs.UserGroupRemoveMember(userGroupMember.UserGroupDetailID, this.SelectedUserGroupIndex.UserGroupID, this.SelectedUserGroupIndex.Name, userGroupMember.SecurityIdentifier, userGroupMember.UserName);
                    dialogResult = DialogResult.OK;
                }
            }

            if (dialogResult == DialogResult.OK)
            {
                this.GetUserGroupMembers();
            }
        }
Exemplo n.º 8
0
        public IActionResult CreateUserGroup()
        {
            // CREATE Data
            User user1 = dbContext.users
                         .Where(c => c.email == "*****@*****.**")
                         .First();

            if (user1 == null)
            {
                user1           = new User();
                user1.email     = "*****@*****.**";
                user1.firstName = "Jon";
                user1.lastName  = "Doe";
            }

            User user2 = dbContext.users
                         .Where(c => c.email == "*****@*****.**")
                         .First();

            if (user2 == null)
            {
                user2           = new User();
                user2.email     = "*****@*****.**";
                user2.firstName = "Jak";
                user2.lastName  = "Smith";
            }

            User user3 = dbContext.users
                         .Where(c => c.email == "*****@*****.**")
                         .First();

            if (user3 == null)
            {
                user3           = new User();
                user3.email     = "*****@*****.**";
                user3.firstName = "Jon";
                user3.lastName  = "Smith";
            }

            User user4 = dbContext.users
                         .Where(c => c.email == "*****@*****.**")
                         .First();

            if (user4 == null)
            {
                user4           = new User();
                user4.email     = "*****@*****.**";
                user4.firstName = "Pat";
                user4.lastName  = "Sims";
            }


            UserGroup group1 = dbContext.groups
                               .Where(c => c.groupName == "Jon Doe's Group")
                               .First();

            if (group1 == null)
            {
                group1             = new UserGroup();
                group1.groupName   = "Jon Doe's Group";
                group1.groupOwner  = user1;
                group1.groupStatus = "Active";
            }

            UserGroup group2 = dbContext.groups
                               .Where(c => c.groupName == "Pat's Group")
                               .First();

            if (group2 == null)
            {
                group2             = new UserGroup();
                group2.groupName   = "Pat's Group";
                group2.groupOwner  = user4;
                group2.groupStatus = "Inactive";
            }

            UserGroupMember groupMembership1 = new UserGroupMember();

            groupMembership1.user  = user1;
            groupMembership1.group = group1;

            UserGroupMember groupMembership2 = new UserGroupMember();

            groupMembership2.user  = user2;
            groupMembership2.group = group1;

            UserGroupMember groupMembership3 = new UserGroupMember();

            groupMembership3.user  = user3;
            groupMembership3.group = group1;

            UserGroupMember groupMembership4 = new UserGroupMember();

            groupMembership4.user  = user1;
            groupMembership4.group = group2;

            UserGroupMember groupMembership5 = new UserGroupMember();

            groupMembership5.user  = user4;
            groupMembership5.group = group2;

            dbContext.groupMemberships.Add(groupMembership1);
            dbContext.groupMemberships.Add(groupMembership2);
            dbContext.groupMemberships.Add(groupMembership3);
            dbContext.groupMemberships.Add(groupMembership4);
            dbContext.groupMemberships.Add(groupMembership5);
            dbContext.SaveChanges();

            // READ Data
            UserGroup userGroupActive = dbContext.groups
                                        .Where(c => c.groupStatus == "Active")
                                        .First();

            return(View(userGroupActive));
        }
Exemplo n.º 9
0
        public static async Task <ChatRoomVM> LoadChatRoom(string hubId, string groupId, string userId, int maxMessages, bool dialog = false)
        {
            UserGroupServiceProxy gsvc = new UserGroupServiceProxy();
            var        cntx            = Cntx;
            ChatRoomVM m = new ChatRoomVM()
            {
                RoomExists = false, DialogMode = dialog
            };

            if (!string.IsNullOrEmpty(groupId))
            {
                var g = await gsvc.LoadEntityByKeyAsync(cntx, groupId);

                if (g != null)
                {
                    m.RoomExists = true;
                    m.ID         = groupId;
                    m.RoomPath   = g.DistinctString.Split('/');
                    m.RoomInfo   = await gsvc.LoadEntityGroupDescriptionAsync(cntx, g.ID);

                    UserGroupMemberServiceProxy gmsvc = new UserGroupMemberServiceProxy();
                    UserGroupMember             uig   = await gmsvc.LoadEntityByKeyAsync(cntx, groupId, userId);

                    if (uig == null)
                    {
                        uig = new UserGroupMember
                        {
                            UserID               = userId,
                            UserGroupID          = groupId,
                            SubscribedTo         = false,
                            ActivityNotification = false
                        };
                        await gmsvc.AddOrUpdateEntitiesAsync(cntx, new UserGroupMemberSet(), new UserGroupMember[] { uig });
                    }
                    cntx.DirectDataAccess = true;
                    MemberCallbackServiceProxy cbsv = new MemberCallbackServiceProxy();
                    var           qexpr             = getConnectedGroupMemberFilter(hubId, g.ID);
                    var           peers             = (await cbsv.QueryDatabaseAsync(cntx, new MemberCallbackSet(), qexpr)).ToArray();
                    List <string> jsonPeers         = new List <string>();
                    if (peers.Length > 0)
                    {
                        for (int i = 0; i < peers.Length; i++)
                        {
                            // retrieve the related entity graph
                            peers[i] = await cbsv.LoadEntityGraphRecursAsync(cntx, groupId, hubId, AppId, peers[i].UserID, null, null);

                            jsonPeers.Add(GetJsonPeer(peers[i]));
                        }
                    }
                    m.ActivePeers         = jsonPeers.ToArray();
                    cntx.DirectDataAccess = false;
                    ShortMessageServiceProxy msgsvc = new ShortMessageServiceProxy();
                    var cond = new ShortMessageSetConstraints
                    {
                        ApplicationIDWrap = new ForeignKeyData <string> {
                            KeyValue = AppId
                        },
                        TypeIDWrap = new ForeignKeyData <int> {
                            KeyValue = ApplicationContext.ChatShortMsgTypeId
                        },
                        GroupIDWrap = new ForeignKeyData <string> {
                            KeyValue = groupId
                        }
                    };
                    UserGroupMemberServiceProxy uigsvc = new UserGroupMemberServiceProxy();
                    qexpr          = new QueryExpresion();
                    qexpr.OrderTks = new List <QToken>(new QToken[] {
                        new QToken {
                            TkName = "UserID"
                        }
                    });
                    qexpr.FilterTks = new List <QToken>(new QToken[] {
                        new QToken {
                            TkName = "UserGroupID == \"" + g.ID + "\" && SubscribedTo is not null && SubscribedTo == true"
                        }
                    });
                    m.Subscribers = (int)(await uigsvc.QueryEntityCountAsync(cntx, new UserGroupMemberSet(), qexpr));
                    var      svc = new MembershipPlusServiceProxy();
                    DateTime dt  = DateTime.UtcNow.AddMinutes(-InitMsgTimeWindow);
                    qexpr          = new QueryExpresion();
                    qexpr.OrderTks = new List <QToken>(new QToken[] {
                        new QToken {
                            TkName = "CreatedDate"
                        },
                        new QToken {
                            TkName = "desc"
                        }
                    });
                    qexpr.FilterTks = new List <QToken>(new QToken[] {
                        new QToken {
                            TkName = "ToID is null && CreatedDate > " + svc.FormatRepoDateTime(dt)
                        }
                    });
                    if (dialog)
                    {
                        qexpr.FilterTks.Add(new QToken {
                            TkName = " && ReplyToID is null"
                        });
                    }
                    var           msgs     = (await msgsvc.ConstraintQueryLimitedAsync(cntx, new ShortMessageSet(), cond, qexpr, maxMessages)).ToArray();
                    List <string> jsonMsgs = new List <string>();
                    if (msgs.Length > 0)
                    {
                        for (int i = msgs.Length - 1; i >= 0; i--)
                        {
                            EntitySetType[] excludes;
                            if (dialog)
                            {
                                excludes = new EntitySetType[]
                                {
                                    EntitySetType.UserGroup,
                                    //EntitySetType.ShortMessageAudience,
                                    EntitySetType.ShortMessageAttachment
                                };
                            }
                            else
                            {
                                excludes = new EntitySetType[]
                                {
                                    EntitySetType.UserGroup,
                                    //EntitySetType.ShortMessageAudience,
                                    EntitySetType.ShortMessageAttachment,
                                    EntitySetType.ShortMessage
                                };
                            }
                            msgs[i] = await msgsvc.LoadEntityGraphRecursAsync(cntx, msgs[i].ID, excludes, null);

                            jsonMsgs.Add(GetJsonMessage(msgs[i], userId, g, dialog));
                        }
                    }
                    m.RecentMsgs = jsonMsgs.ToArray();
                }
            }
            return(m);
        }