public int JoinGroup(int groupId, int userId) { var user = _context.Users.FirstOrDefault(X => X.Id == userId); var group = _context.Usergroup.FirstOrDefault(x => x.Id == groupId); var groupMember = new Groupmembers() { GroupId = group.Id, UserId = user.Id }; var dbEntry = _context.Groupmembers.Add(groupMember); _context.SaveChanges(); return(dbEntry.Entity.Id); }
/// <summary> /// To add the member to the specified group /// </summary> /// <param name="groupId">group Id</param> /// <param name="user">user details</param> /// <param name="redisCache"></param> /// <param name="dbr">Database respository object</param> /// <returns></returns> public static int CreateGroupMember(long groupId, User user, Helper.Cache redisCache, Model.DatabaseRepository dbr) { var grpMember = new Groupmembers { groupid = groupId, email = user.EmailId, firstName = user.FirstName, lastName = user.LastName, memberStatus = Domain.Socioboard.Enum.GroupMemberStatus.Accepted, profileImg = user.ProfilePicUrl, userId = user.Id, memberCode = "Admin", isAdmin = true }; return(dbr.Add(grpMember)); }
public static List <Domain.Socioboard.Models.Groupmembers> adminDelete(long groupId, Helper.Cache _redisCache, Model.DatabaseRepository dbr) { List <Domain.Socioboard.Models.Groupmembers> adminDetails = dbr.Find <Domain.Socioboard.Models.Groupmembers>(t => t.groupid == groupId).ToList(); foreach (Domain.Socioboard.Models.Groupmembers item in adminDetails) { Groupmembers user = item; dbr.Delete <Domain.Socioboard.Models.Groupmembers>(user); } List <Domain.Socioboard.Models.Groups> groupName = dbr.Find <Domain.Socioboard.Models.Groups>(t => t.id == groupId).ToList(); foreach (Domain.Socioboard.Models.Groups item in groupName) { Groups group = item; dbr.Delete <Domain.Socioboard.Models.Groups>(group); } return(adminDetails); }
public IActionResult LoadImagesForPublic(long groupId, long userId) { try { DatabaseRepository dbr = new DatabaseRepository(_logger, _env); Groupmembers grpadmin = dbr.Single <Groupmembers>(t => t.groupid == groupId && t.isAdmin == true); List <ImgLibrary> lstImages = dbr.Find <ImgLibrary>(t => t.UserId == grpadmin.userId && t.FolderType == "Public").ToList(); if (lstImages != null) { return(Ok(lstImages)); } else { return(NotFound()); } } catch (Exception ex) { return(NotFound()); } }
public IActionResult AddSelectedGroups(long userId) { string selectedGroups = Request.Form["selectedGroups"]; string[] Profiles = selectedGroups.Split(','); List <string> temp = new List <string>(); foreach (string item in Profiles) { temp.Add(item); } temp.Add("Socioboard"); DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); List <Domain.Socioboard.Models.Groups> lstSBGrp = Repositories.GroupsRepository.getGroups(userId, _redisCache, dbr); long SBgroupId = lstSBGrp.First().id; List <Domain.Socioboard.Models.Groupmembers> lstGrpmember = Repositories.GroupMembersRepository.findmember(SBgroupId, userId, _redisCache, dbr); foreach (Domain.Socioboard.Models.Groupmembers member in lstGrpmember) { if (member.isAdmin == true) { List <Domain.Socioboard.Models.Groups> lstGrp = Repositories.GroupsRepository.getAdminGroupsofUser(member.userId, _redisCache, dbr); lstGrp = lstGrp.Where(t => !temp.Contains(t.groupName)).ToList(); if (lstGrp.Count != 0) { foreach (Domain.Socioboard.Models.Groups item in lstGrp) { Groupmembers nuser = dbr.Single <Groupmembers>(t => t.groupid.Equals(item.id)); //List<Domain.Socioboard.Models.Groupmembers> lstmember = Repositories.GroupMembersRepository.findmember(item.id,userId, _redisCache, dbr); if (item.groupName == "Socioboard") { return(BadRequest("You cann't delete default group choose other one")); } else { dbr.Delete <Domain.Socioboard.Models.Groups>(item); dbr.Delete <Domain.Socioboard.Models.Groupmembers>(nuser); } } } } else { List <Domain.Socioboard.Models.Groups> lstGrps = Repositories.GroupsRepository.getGroupsofUser(member.userId, _redisCache, dbr); lstGrps = lstGrps.Where(t => !temp.Contains(t.groupName)).ToList(); if (lstGrps.Count != 0) { foreach (Domain.Socioboard.Models.Groups items in lstGrps) { if (items.groupName == "Socioboard") { return(BadRequest("You cann't delete default group choose other one")); } else { Groupmembers nusers = dbr.Single <Groupmembers>(t => t.groupid == items.id && t.userId == userId); dbr.Delete <Domain.Socioboard.Models.Groupmembers>(nusers); } } } //Groupmembers nuser = dbr.Single<Groupmembers>(t => t.groupid.Equals(member.groupid)); } } return(Ok()); }
public IActionResult InviteGroupMembers(long groupId, string members) { List <Groupmembers> lstGrpMembers = new List <Groupmembers>(); if (string.IsNullOrEmpty(members)) { return(BadRequest("members should not be null.")); } else { string[] lstmem = members.Split(';'); foreach (var item in lstmem) { if (!string.IsNullOrEmpty(item)) { Groupmembers grpMember = new Groupmembers(); string[] memData = item.Split(':'); grpMember.email = memData[2]; grpMember.firstName = memData[0]; grpMember.lastName = memData[1]; lstGrpMembers.Add(grpMember); } } } DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); Domain.Socioboard.Models.Groups grp = dbr.Find <Domain.Socioboard.Models.Groups>(t => t.id == groupId).FirstOrDefault(); if (grp == null) { return(BadRequest("wrong group Id")); } else if (grp.groupName.Equals(Domain.Socioboard.Consatants.SocioboardConsts.DefaultGroupName)) { return(BadRequest("you can't invite members to default group.")); } foreach (var member in lstGrpMembers) { User inMemUser = _redisCache.Get <User>(member.email.Trim()); if (inMemUser == null) { inMemUser = dbr.Find <User>(t => t.EmailId.Equals(member.email.Trim())).FirstOrDefault(); } member.groupid = groupId; member.memberCode = Domain.Socioboard.Helpers.SBHelper.RandomString(15); member.isAdmin = false; member.memberStatus = Domain.Socioboard.Enum.GroupMemberStatus.MailSent; if (inMemUser != null) { member.userId = inMemUser.Id; member.profileImg = inMemUser.ProfilePicUrl; //todo : code to add in user notification list. } Groupmembers temp = dbr.Find <Groupmembers>(t => t.groupid == groupId && t.email == member.email).FirstOrDefault(); if (temp == null) { dbr.Add <Groupmembers>(member); _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheGroupMembers + groupId); string path = _appEnv.WebRootPath + "\\views\\mailtemplates\\groupinvitation.html"; string html = System.IO.File.ReadAllText(path); html = html.Replace("[FirstName]", member.firstName); html = html.Replace("[JoinLink]", _appSettings.Domain + "/Home/GroupInvite?Token=" + member.memberCode + "&email=" + member.email); _emailSender.SendMailSendGrid(_appSettings.frommail, "", member.email, "", "", "Socioboard Team Invitation Link", html, _appSettings.SendgridUserName, _appSettings.SendGridPassword); } } return(Ok()); }