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> 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 }); }
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)); }
public async Task <IActionResult> JoinCommunityGroup(JoinCommunityGroupViewModel model) { model.UserId = _claimAccessor.UserId; return(Json(await _joinCommunityGroupService.JoinCommunityGroupAsync(model))); }