internal GroupMemberViewModel Delete(int id)
        {
            GroupMemberViewModel exists = GetById(id);

            _repo.Delete(id);
            return(exists);
        }
Beispiel #2
0
        public async Task <IActionResult> AddGroupMember([FromBody] GroupMemberViewModel newMember)
        {
            if (ModelState.IsValid)
            {
                bool groupAdminHasPermission = await this.CheckGroupAdminPermission("users.managegroup");

                var isGroupAdmin = groupAdminHasPermission && await this._unitOfWork.GroupMembers.IsGroupAdminAsync(this.User.Identity.Name, newMember.Group);

                var isSuperAdmin = (await _authorizationService.AuthorizeAsync(this.User, Authorization.Policies.ManageAllGroupsPolicy)).Succeeded;
                if (isGroupAdmin || isSuperAdmin)
                {
                    GroupMember newGMember = Mapper.Map <GroupMember>(newMember);
                    var         result     = this._unitOfWork.UserGroups.AddUserAsync(newGMember);
                    if (result.Item1)
                    {
                        await this._unitOfWork.SaveChangesAsync();

                        return(new OkResult());
                    }
                    else
                    {
                        AddErrors(result.Item2);
                    }
                }
                else
                {
                    return(new ChallengeResult());
                }
            }
            return(BadRequest(ModelState));
        }
Beispiel #3
0
        public static List <GroupMemberViewModel> BuildGroupMemberViewListFromGroupMemberList(ApplicationDbContext db, List <GroupMember> groupMemberList)
        {
            List <GroupMemberViewModel> list = new List <GroupMemberViewModel>();

            foreach (GroupMember member in groupMemberList)
            {
                Organisation organisaion     = OrganisationHelpers.GetOrganisation(db, member.OrganisationId);
                AppUser      addedBy         = AppUserHelpers.GetAppUser(db, member.AddedBy);
                AppUser      recordChangedBy = AppUserHelpers.GetAppUser(db, member.RecordChangeBy);

                GroupMemberViewModel item = new GroupMemberViewModel()
                {
                    GroupMemberId       = member.GroupMemberId,
                    GroupId             = member.GroupId,
                    OrganisationDetails = organisaion,
                    AddedBy             = addedBy,
                    AddedDateTime       = member.AddedDateTime,
                    Status         = member.Status,
                    RecordChange   = member.RecordChange,
                    RecordChangeOn = member.RecordChangeOn,
                    RecordChangeBy = recordChangedBy
                };

                list.Add(item);
            }

            return(list);
        }
Beispiel #4
0
        public ActionResult ChangeMemberRole(GroupMemberViewModel viewModel)
        {
            viewModel.CurrentUserId = User.Identity.GetUserId <int>();
            _groupService.ChangeMemberRole(viewModel);

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
Beispiel #5
0
 public IActionResult Update(int id, [FromBody] GroupMemberViewModel viewModel)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     if (id != viewModel.Id)
     {
         return(BadRequest());
     }
     try
     {
         var orginalGroupMember = _groupMemberService.Find(id);
         if (orginalGroupMember == null)
         {
             return(NotFound());
         }
         orginalGroupMember = _mapper.Map(viewModel, orginalGroupMember);
         _groupMemberService.Update(orginalGroupMember);
         _unitOfWork.Commit();
         return(NoContent());
     }
     catch
     {
         return(StatusCode(500));
     }
 }
        public static void SaveorUpdateGroupMember(GroupMemberViewModel member, long groupid)
        {
            var db = new SQLiteConnection(CommonConstant.DBPath);

            try
            {
                var group = GetGroupMemeberByID(groupid, member.MemberId);
                if (group == null)
                {
                    var groupmember = new GroupMember();
                    groupmember.GroupId       = groupid;
                    groupmember.GroupMemberId = member.MemberId;
                    groupmember.MemberName    = member.MemberName;

                    groupmember.UserId = CommonHelper.GetUserId();
                    db.Insert(groupmember);
                }
                else
                {
                    group.GroupId       = groupid;
                    group.GroupMemberId = member.MemberId;
                    group.MemberName    = member.MemberName;
                    group.UserId        = CommonHelper.GetUserId();
                    db.Update(group);
                }
                db.Commit();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, ex);
            }
            db.Close();
        }
Beispiel #7
0
 public static GroupMember ToEntity(this GroupMemberViewModel viewModel)
 {
     return(new GroupMember()
     {
         UserId = viewModel.UserId,
         GroupId = viewModel.GroupId,
         RoleId = viewModel.RoleId
     });
 }
Beispiel #8
0
        public ViewResult Members(int id)
        {
            var members = groupUserService.GetMembersOfGroup(id);
            GroupMemberViewModel gmvm = new GroupMemberViewModel()
            {
                GroupId = id, Group = groupService.GetGroup(id), Users = members
            };

            return(View(gmvm));
        }
        internal GroupMemberViewModel GetById(int Id)
        {
            GroupMemberViewModel exists = _repo.GetById(Id);

            if (exists == null)
            {
                throw new System.Exception("Invalid GroupMember");
            }
            return(exists);
        }
Beispiel #10
0
        public ActionResult AddMember(GroupMemberViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            viewModel.CurrentUserId = User.Identity.GetUserId <int>();
            _groupService.AddMember(viewModel);

            return(RedirectToAction("Members", new { id = viewModel.GroupId }));
        }
        private async void PostGroupData()
        {
            try
            {
                if (groupmodel != null && ContactList.Count > 0)
                {
                    List <GroupMemberViewModel> ListGroupMemberViewModel = new List <GroupMemberViewModel>();
                    for (int i = 0; i < ContactList.Count; i++)
                    {
                        if (ContactList[i].isSelected())
                        {
                            var _objGroupMemberViewModel = new GroupMemberViewModel
                            {
                                MemberId = ContactList[i].ContactId
                            };
                            ListGroupMemberViewModel.Add(_objGroupMemberViewModel);
                        }
                    }
                    var _objGroupRequestModel = new GroupRequestViewModel
                    {
                        Name        = groupmodel.Name,
                        Description = groupmodel.Description,
                        InterestId  = groupmodel.InterestId,
                        MemberCount = ListGroupMemberViewModel.Count(),
                        Visibility  = 1,
                        IsPrivate   = groupmodel.IsPrivate,
                        GroupType   = groupmodel.GroupType,
                        Members     = ListGroupMemberViewModel,
                        UserId      = CommonHelper.GetUserId(),
                        PictureUrl  = groupmodel.PictureUrl
                    };

                    var result = await new GroupChatService().CreateGroup(_objGroupRequestModel);
                    if (result.Status == 1)
                    {
                        var modelGroup = JsonConvert.DeserializeObject <GroupResponseViewModel>(result.Response.ToString());
                        await _objChatSignalRService.GroupCreate(modelGroup);

                        GroupRepository.SaveGroupCreated(modelGroup);
                        foreach (var member in modelGroup.Members)
                        {
                            GroupRepository.SaveorUpdateGroupMember(member, modelGroup.GroupId);
                        }

                        StartActivity(typeof(MainActivity));
                    }
                }
            }
            catch (System.Exception ex)
            {
                Crashes.TrackError(ex);
            }
        }
Beispiel #12
0
        public void AddMember_RejectsWhenNotOwner()
        {
            // Arrange
            var           mockGroupMember = new Mock <IGroupMemberRepository>();
            IGroupService groupService    = new GroupService(null, null, null, mockGroupMember.Object, null);

            mockGroupMember.Setup(m => m.GetRole(0, 0)).Returns(RoleNames.ROLE_PARTICIPANT);
            var viewModel = new GroupMemberViewModel();

            // Act
            groupService.AddMember(viewModel);
        }
Beispiel #13
0
        public void AddMember_RejectsWhenAlreadyInGroup()
        {
            // Arrange
            var           mockGroupMember = new Mock <IGroupMemberRepository>();
            IGroupService groupService    = new GroupService(null, null, null, mockGroupMember.Object, null);

            mockGroupMember.Setup(m => m.GetRole(0, 0)).Returns(RoleNames.ROLE_OWNER);
            mockGroupMember.Setup(m => m.IsInGroup(0, 0)).Returns(true);
            var viewModel = new GroupMemberViewModel();

            // Act
            groupService.AddMember(viewModel);
        }
Beispiel #14
0
        public GroupMemberViewModel AddMemberToGroup(GroupMemberViewModel groupMember)
        {
            var member          = Services.MemberService.GetById(groupMember.MemberId);
            var structuralGroup = ApplicationContext.DatabaseContext.Database.Query <StructuralGroup>("SELECT * FROM StructuralGroup WHERE Id = " + groupMember.StructuralGroupId).FirstOrDefault();  //TODO: Move this to a common domain service

            if (member == null || structuralGroup == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            MemberHelper.AddMemberToGroup(ApplicationContext.DatabaseContext.Database, groupMember.MemberId, groupMember.StructuralGroupId);

            return(new GroupMemberViewModel(new MemberViewModel(member), StructuralGroupViewModel.FromModel(structuralGroup)));
        }
Beispiel #15
0
        public void AddMember_AddsWhenAuthorized()
        {
            // Arrange
            var           mockGroupMember = new Mock <IGroupMemberRepository>();
            IGroupService groupService    = new GroupService(null, null, null, mockGroupMember.Object, null);

            mockGroupMember.Setup(m => m.GetRole(0, 0)).Returns(RoleNames.ROLE_OWNER);
            mockGroupMember.Setup(m => m.IsInGroup(0, 0)).Returns(false);
            var viewModel = new GroupMemberViewModel();

            // Act
            groupService.AddMember(viewModel);

            // Assert
            mockGroupMember.Verify(gm => gm.AddUserToGroup(It.IsAny <GroupMember>()));
        }
Beispiel #16
0
        private async Task <List <GroupViewModel> > GetAllGroups(string userId)
        {
            List <GroupViewModel>       groupList    = new List <GroupViewModel>();
            List <GroupMemberViewModel> groupMembers = new List <GroupMemberViewModel>();
            var groups = await groupLogic.GetAllGroups(userId);

            if (groups.Count > 0)
            {
                foreach (var g in groups)
                {
                    if (g.Members != null)
                    {
                        foreach (var gMember in g.Members)
                        {
                            GroupMemberViewModel currentMember = new GroupMemberViewModel
                            {
                                Id     = gMember.Id,
                                UserId = gMember.UserId
                            };
                            if (g.Id == gMember.GroupId)
                            {
                                groupMembers.Add(currentMember);
                            }
                        }
                        GroupViewModel currentGroup = new GroupViewModel
                        {
                            Id         = g.Id,
                            GroupTitle = g.GroupTitle,
                            OwnerId    = g.OwnerId,
                            MemberIds  = groupMembers
                        };
                        groupList.Add(currentGroup);
                    }
                    else
                    {
                        GroupViewModel currentGroup = new GroupViewModel
                        {
                            Id         = g.Id,
                            GroupTitle = g.GroupTitle,
                            OwnerId    = g.OwnerId,
                        };
                        groupList.Add(currentGroup);
                    }
                }
            }
            return(groupList);
        }
Beispiel #17
0
        public void ChangeMemberRole(GroupMemberViewModel viewModel)
        {
            string userRole = _groupMemberRepository.GetRole(viewModel.GroupId, viewModel.CurrentUserId);

            if (userRole.Equals(RoleNames.ROLE_OWNER) &&
                _groupMemberRepository.IsInGroup(viewModel.GroupId, viewModel.UserId))
            {
                var groupMember = _groupMemberRepository.Get(u => u.GroupId == viewModel.GroupId && u.UserId == viewModel.UserId).Single();

                groupMember.RoleId = viewModel.RoleId;
                _groupMemberRepository.Update(groupMember);
            }
            else
            {
                throw new ArgumentException("User does not belong to this group");
            }
        }
Beispiel #18
0
        public void AddMember(GroupMemberViewModel viewModel)
        {
            string userRole = _groupMemberRepository.GetRole(viewModel.GroupId, viewModel.CurrentUserId);

            if (userRole.Equals(RoleNames.ROLE_OWNER) &&
                !_groupMemberRepository.IsInGroup(viewModel.GroupId, viewModel.UserId))
            {
                var entity = viewModel.ToEntity();
                entity.JoinedAt = DateTime.Now;

                _groupMemberRepository.AddUserToGroup(entity);
            }
            else
            {
                throw new ArgumentException("User is already in this group.");
            }
        }
Beispiel #19
0
        public IActionResult Create(int?groupId)
        {
            ViewData["GroupId"] = groupId;
            var users   = _context.ApplicationUser.ToList();
            var members = _context.GroupMembers.Where(s => s.GroupId == groupId).ToList();

            foreach (var member in members)
            {
                users.Remove(member.User);
            }
            var groupMemberViewModel = new GroupMemberViewModel
            {
                Users   = users,
                Members = members
            };

            return(View(groupMemberViewModel));
        }
Beispiel #20
0
 public IActionResult Create([FromBody] GroupMemberViewModel viewModel)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     try
     {
         GroupMember groupMember = _mapper.Map <GroupMemberViewModel, GroupMember>(viewModel);
         _groupMemberService.Add(groupMember);
         _unitOfWork.Commit();
         return(CreatedAtRoute("find", new { id = groupMember.Id }, groupMember));
     }
     catch
     {
         return(StatusCode(500));
     }
 }
Beispiel #21
0
        /// <summary>
        /// Gets all members of a group
        /// </summary>
        /// <param name="groupId">group id</param>
        /// <returns></returns>
        private async Task <List <GroupMemberViewModel> > GetAllMembersOfGroup(int groupId)
        {
            List <GroupMemberViewModel> groupMemberList = new List <GroupMemberViewModel>();
            var members = await groupLogic.GetAllMembersOfGroup(groupId);

            if (members.Count > 0)
            {
                foreach (var m in members)
                {
                    GroupMemberViewModel currentMember = new GroupMemberViewModel
                    {
                        Id     = m.Id,
                        UserId = m.UserId
                    };
                    groupMemberList.Add(currentMember);
                }
            }
            return(groupMemberList);
        }
Beispiel #22
0
        public async Task <IActionResult> UpdateGroupMember([FromBody] GroupMemberViewModel member)
        {
            GroupMember gMember = Mapper.Map <GroupMember>(member);
            var         user    = await this._accountManager.GetUserByIdAsync(member.User.Id);

            this._unitOfWork.GroupMembers.Update(gMember);

            if (gMember.GroupAdmin)
            {
                await this._userManager.AddToRoleAsync((TraisiUser)user, TraisiRoles.GroupAdministrator);
            }
            else
            {
                await this._userManager.RemoveFromRoleAsync((TraisiUser)user, TraisiRoles.GroupAdministrator);
            }
            await this._unitOfWork.SaveChangesAsync();

            return(new OkResult());
        }
Beispiel #23
0
        public IActionResult Post([FromBody] GroupMemberViewModel groupMemberViewModel)
        {
            try
            {
                var group = _repository.GetGroupById(groupMemberViewModel.GroupId);
                if (group == null)
                {
                    return(BadRequest($"Group does not exist. [id={groupMemberViewModel.GroupId}]"));
                }

                var user = _repository.GetUser(groupMemberViewModel.Member.UserName);
                if (user == null)
                {
                    return(BadRequest($"User not found. [user={groupMemberViewModel.Member.UserName}]"));
                }

                foreach (var member in group.Members)
                {
                    if (member.MemberId.Equals(user.Id))
                    {
                        return(BadRequest($"User already in group. [user={user.Id}]"));
                    }
                }

                var groupMember = _mapper.Map <GroupMemberViewModel, GroupMember>(groupMemberViewModel);

                group.Members.Add(groupMember);
                user.Memberships.Add(groupMember);

                if (_repository.SaveAll())
                {
                    return(Ok());
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Failed to save group membership changes. [ex={ex}]");

                throw;
            }

            return(BadRequest("Failed to save group membership changes."));
        }
        public async Task <IActionResult> Put(int id, [FromBody] GroupMemberViewModel APGmembers)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    APGmembers _APGmembers = Mapper.Map <APGmembers>(APGmembers);
                    _unitOfWork.APGmembers.Update(_APGmembers);
                    await _unitOfWork.SaveChangesAsync();

                    return(Ok("OK"));
                }
                catch (Exception ex)
                {
                    return(BadRequest(ex.Data));
                }
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
Beispiel #25
0
        public IActionResult LoadMoreGroupFollower(string id, int take)
        {
            if (take >= 0)
            {
                GroupMemberViewModel groupMemberViewModel = new GroupMemberViewModel();
                var currentUserGroup = _context.GroupMember.Join(_context.Users, m => m.MemberId, u => u.Id,
                                                                 (member, user) => new
                {
                    member.MemberId,
                    MemberName = user.UserName,
                    member.IsAdmin,
                    member.JoinDate,
                    member.GroupId,
                    avatarIsExist = user.Avatar != null
                }

                                                                 ).Where(m => m.GroupId == id).OrderByDescending(g => g.JoinDate).Skip(take).Take(6);


                return(Json(currentUserGroup));
            }

            return(Json(new List <GroupMember>()));
        }
Beispiel #26
0
        private async Task PostGroupData()
        {
            try
            {
                if (groupmodel != null && ContactList.Count > 0)
                {
                    List <GroupMemberViewModel> ListGroupMemberViewModel = new List <GroupMemberViewModel>();
                    for (int i = 0; i < ContactList.Count; i++)
                    {
                        if (ContactList[i].isSelected())
                        {
                            var _objGroupMemberViewModel = new GroupMemberViewModel
                            {
                                MemberId   = ContactList[i].ContactId,
                                MemberName = ContactList[i].ConatactName
                            };
                            ListGroupMemberViewModel.Add(_objGroupMemberViewModel);
                        }
                    }
                    var _objGroupRequestModel = new GroupRequestViewModel
                    {
                        Name        = groupmodel.Name,
                        Description = groupmodel.Description,
                        InterestId  = groupmodel.InterestId,
                        MemberCount = ListGroupMemberViewModel.Count,
                        Visibility  = 1,
                        IsPrivate   = groupmodel.IsPrivate,
                        GroupType   = groupmodel.GroupType,
                        Members     = ListGroupMemberViewModel,
                        UserId      = CommonHelper.GetUserId(),
                        PictureUrl  = groupmodel.PictureUrl
                    };

                    BTProgressHUD.Show("Create Group", maskType: ProgressHUD.MaskType.Black);
                    var result = await new GroupChatService().CreateGroup(_objGroupRequestModel);
                    if (result.Status == 1)
                    {
                        var modelGroup = JsonConvert.DeserializeObject <GroupResponseViewModel>(result.Response.ToString());
                        await _objChatSignalRService.GroupCreate(modelGroup);

                        GroupRepository.SaveGroupCreated(modelGroup);
                        foreach (var member in modelGroup.Members)
                        {
                            GroupRepository.SaveorUpdateGroupMember(member, modelGroup.GroupId);
                        }

                        BTProgressHUD.Dismiss();
                        //this.DismissViewController(true, null);
                        UIStoryboard       storyboard     = this.Storyboard;
                        RootViewController viewController = (RootViewController)
                                                            storyboard.InstantiateViewController("RootViewController");
                        this.PresentViewController(viewController, true, null);
                    }

                    BTProgressHUD.Dismiss();
                }
            }
            catch (System.Exception ex)
            {
                BTProgressHUD.Dismiss();
                Crashes.TrackError(ex);
            }
        }