public async Task <BaseModel> checkGroupInvitationToken(string token, long UserId)
        {
            var query  = _unitOfWork.GroupEmailInvitationRepository.FindAllByQuery(c => c.Id == new Guid(token));
            var result = await query.Include("CommunityGroup").ToListAsync();

            GroupEmailInvitationDataModel model = new GroupEmailInvitationDataModel();

            if (result != null)
            {
                model = result[0];
                if (model.IsAccpeted)
                {
                    return(new BaseModel {
                        Status = true, Messsage = model.CommunityGroup.CommunityGroupURL + "-" + model.CommunityGroup.Id.ToString()
                    });
                }
                JoinCommunityGroupViewModel joinCommunityModel = new JoinCommunityGroupViewModel {
                    CommunityGroupId = model.CommunityGroup.Id,
                    UserId           = UserId
                };
                await _joinCommunityGroup.JoinCommunityGroupAsync(joinCommunityModel);

                model.IsAccpeted = true;
                model.LastUpdate = DateTime.Now;
                model.SentTo     = UserId;
                model.AcceptedOn = DateTime.Now;

                await _unitOfWork.GroupEmailInvitationRepository.Update(model);
            }
            return(new BaseModel {
                Status = true, Messsage = model.CommunityGroup.CommunityGroupURL + "-" + model.CommunityGroup.Id.ToString()
            });
        }
        public async Task <BaseModel> sendGroupEmailInvitation(GroupEmailInvitationViewModel model, string htmlBody, string callbackUrl)
        {
            var groupMoodel = await _unitOfWork.UserCommunityGroupsRepository.GetByID(model.CommunityGroup);

            //var existingInvitation = await _unitOfWork.GroupEmailInvitationRepository.FindAllBy(c => c.ToEmailAddress == model.ToEmailAddress && c.CommunityGroup.Id == model.CommunityGroup);
            //var userProfile = await _unitOfWork.UserProfileRepository.FindAllBy(c => c.User.Id == model.SentByUser);
            GroupEmailInvitationDataModel uModel = new GroupEmailInvitationDataModel()
            {
                IsAccpeted     = false,
                CommunityGroup = groupMoodel,
                LastUpdate     = DateTime.Now,
                ReSend         = 0,
                SentByUser     = await _unitOfWork.UserLoginRepository.GetByID(model.SentByUser),
                SentOn         = DateTime.Now,
                SentTo         = model.SentTo,
                ToEmailAddress = model.ToEmailAddress
            };
            await _unitOfWork.GroupEmailInvitationRepository.Insert(uModel);

            sendEmail(htmlBody, model.ToEmailAddress, groupMoodel.Title, callbackUrl + uModel.Id);
            return(new BaseModel {
                Status = false, Messsage = UMessagesInfo.RecordSaved
            });
        }