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()
            });
        }
Exemplo n.º 2
0
        public async Task <BaseModel> JoinCommunityGroupAsync(JoinCommunityGroupViewModel model)
        {
            JoinCommunityGroupDataModel joinCommunityGroupData = new JoinCommunityGroupDataModel();

            if (model.Id == 0)
            {
                var _result = await _unitOfWork.JoinCommunityGroupRepository.FindAllBy(c => c.User.Id == model.UserId && c.CommunityGroup.Id == model.CommunityGroupId);

                if (_result.Count == 0)
                {
                    //insert record
                    joinCommunityGroupData.CommunityGroup = await _unitOfWork.UserCommunityGroupsRepository.GetByID(model.CommunityGroupId);

                    if (joinCommunityGroupData.CommunityGroup != null)
                    {
                        joinCommunityGroupData.User = await _unitOfWork.UserLoginRepository.GetByID(model.UserId);

                        joinCommunityGroupData.IsJoined     = true;
                        joinCommunityGroupData.JoinDateTime = DateTime.Now;
                        await _unitOfWork.JoinCommunityGroupRepository.Insert(joinCommunityGroupData);
                    }
                    else
                    {
                        return(new BaseModel {
                            Status = false, Messsage = UMessagesInfo.Error
                        });
                    }
                }
                else
                {
                    //user want to re-join community group
                    _result[0].IsJoined = true;
                    await _unitOfWork.JoinCommunityGroupRepository.Update(_result[0]);
                }
            }
            else
            {
                //update record
                joinCommunityGroupData = await _unitOfWork.JoinCommunityGroupRepository.GetByID(model.Id);

                joinCommunityGroupData.IsJoined = model.IsJoin;
                await _unitOfWork.JoinCommunityGroupRepository.Update(joinCommunityGroupData);
            }
            return(new BaseModel {
                Id = joinCommunityGroupData.Id, Status = true, Messsage = UMessagesInfo.CommunityGroupJoinedSuccessfully
            });
        }
Exemplo n.º 3
0
        public async Task <IActionResult> JoinCommunity(JoinCommunityGroupViewModel model)
        {
            var _result = await _userCommunitiesService.JoinCommunitiesAsync(model.CommunityGroupId, _claimAccessor.UserId);

            if (_result.Status)
            {
                var pathToFile = _env.WebRootPath
                                 + Path.DirectorySeparatorChar.ToString()
                                 + "Templates"
                                 + Path.DirectorySeparatorChar.ToString()
                                 + "EmailTemplates"
                                 + Path.DirectorySeparatorChar.ToString()
                                 + "JoinCommunityWelcome.html";
                string HtmlBody = string.Empty;
                using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
                {
                    HtmlBody = SourceReader.ReadToEnd();
                }
                await _communityGroupEmailService.SendJoinCommunityEmailAsync(_claimAccessor.UserId, model.CommunityGroupId, HtmlBody);
            }
            return(Json(_result));
        }
Exemplo n.º 4
0
 public async Task <IActionResult> JoinCommunityGroup(JoinCommunityGroupViewModel model)
 {
     model.UserId = _claimAccessor.UserId;
     return(Json(await _joinCommunityGroupService.JoinCommunityGroupAsync(model)));
 }