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()); }
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 = "" }); }
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)); }
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 = "" }); }
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; }
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(); } }
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)); }
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); }