public async Task <IActionResult> SendGroupEmailInvitation(GroupEmailInvitationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new BaseModel {
                    Status = false, Messsage = UMessagesInfo.Error
                }));
            }
            model.SentByUser = _claimAccessor.UserId;
            var pathToFile = _env.WebRootPath
                             + Path.DirectorySeparatorChar.ToString()
                             + "Templates"
                             + Path.DirectorySeparatorChar.ToString()
                             + "EmailTemplates"
                             + Path.DirectorySeparatorChar.ToString()
                             + "GroupEmailInvitation.html";
            string HtmlBody = string.Empty;

            using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
            {
                HtmlBody = SourceReader.ReadToEnd();
            }
            var callbackUrl = Url.Action("JoinGroupFromInvitation", "EmailInvitation", null, protocol: HttpContext.Request.Scheme) + "/";

            return(Json(await _emailInvitationService.sendGroupEmailInvitation(model, HtmlBody, callbackUrl)));
        }
        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
            });
        }