Exemple #1
0
        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);
        }
Exemple #4
0
 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());
        }
Exemple #6
0
        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());
        }