コード例 #1
0
        public static EmailRequest UpdateFrom(this EmailRequest thisObject, JoinCommunityRequest request)
        {
            if (thisObject == null)
            {
                thisObject = new EmailRequest();
            }

            ICommunityRepository communityRepository = DependencyResolver.Current.GetService(typeof(ICommunityRepository)) as ICommunityRepository;
            IEnumerable <User>   approvers           = communityRepository.GetApprovers(request.CommunityID);

            foreach (User user in approvers)
            {
                if (user.IsSubscribed)
                {
                    thisObject.Recipients.Add(new MailAddress(user.Email.FixEmailAddress(), user.FirstName + " " + user.LastName));
                }
            }

            string    entityName = request.CommunityName;
            bool      isFolder   = false;
            Community community  = communityRepository.GetItem(c => c.CommunityID == request.CommunityID);

            if (community != null)
            {
                entityName = community.Name;
                isFolder   = community.CommunityTypeID == (int)CommunityTypes.Folder;
            }

            IUserRepository userRepository = DependencyResolver.Current.GetService(typeof(IUserRepository)) as IUserRepository;
            User            requestor      = userRepository.GetItem(u => u.UserID == request.RequestorID);

            thisObject.IsHtml = true;

            // Update the body and the subject.
            thisObject.Subject = string.Format(CultureInfo.CurrentUICulture, "{0} has requested to join your Layerscape {1}: \"{2}\"", requestor.GetFullName(), isFolder ? "folder" : "community", entityName);

            var replacements = new Dictionary <string, string>
            {
                { "@@ApproverName@@", string.Empty },
                { "@@CommunityName@@", HttpUtility.UrlDecode(entityName) },
                { "@@CommunityLink@@", HttpUtility.UrlDecode(request.CommunityLink) },
                { "@@RequestorName@@", HttpUtility.UrlDecode(requestor.GetFullName()) },
                { "@@RequestorID@@", HttpUtility.UrlDecode(request.RequestorID.ToString()) },
                { "@@RequestorLink@@", HttpUtility.UrlDecode(request.RequestorLink) },
                { "@@CommunityType@@", isFolder ? "folder" : "community" },
                { "@@PermissionRequested@@", HttpUtility.UrlDecode(request.PermissionRequested) },
            };

            thisObject.MessageBody = FormatMailBodyUsingTemplate("joincommunityrequest.html", replacements);

            return(thisObject);
        }
コード例 #2
0
        private void SendJoinCommunityMail(PermissionItem permission)
        {
            try
            {
                // Send Mail.
                var request = new JoinCommunityRequest();
                request.CommunityID         = permission.CommunityID;
                request.CommunityName       = permission.CommunityName;
                request.RequestorID         = permission.UserID;
                request.RequestorName       = permission.Name;
                request.PermissionRequested = permission.Role.ToString();
                request.RequestorLink       = string.Format(CultureInfo.InvariantCulture, "{0}Profile/Index/{1}", HttpContext.Request.Url.GetServerLink(), permission.UserID);
                request.CommunityLink       = string.Format(CultureInfo.InvariantCulture, "{0}Community/Index/{1}", HttpContext.Request.Url.GetServerLink(), permission.CommunityID);

                _notificationService.NotifyJoinCommunity(request);
            }
            catch (Exception)
            {
                // Ignore all exceptions.
            }
        }
コード例 #3
0
        public static EmailRequest UpdateFrom(this EmailRequest thisObject, object request)
        {
            //// TODO: Need to Get the Email request from the content of the message.
            //// TODO: Also we need to write a static methods for converting from the input request to the Email Request.

            if (thisObject == null)
            {
                thisObject = new EmailRequest();
            }

            JoinCommunityRequest joinRequest = request as JoinCommunityRequest;

            if (joinRequest != null)
            {
                return(thisObject.UpdateFrom(joinRequest));
            }

            FlaggedRequest flaggedRequest = request as FlaggedRequest;

            if (flaggedRequest != null)
            {
                return(thisObject.UpdateFrom(flaggedRequest));
            }

            EntityCommentRequest entityCommentRequest = request as EntityCommentRequest;

            if (entityCommentRequest != null)
            {
                return(thisObject.UpdateFrom(entityCommentRequest));
            }

            ModeratorPermissionStatusRequest moderatorPermissionStatusRequest = request as ModeratorPermissionStatusRequest;

            if (moderatorPermissionStatusRequest != null)
            {
                return(thisObject.UpdateFrom(moderatorPermissionStatusRequest));
            }

            UserPermissionStatusRequest userPermissionStatusRequest = request as UserPermissionStatusRequest;

            if (userPermissionStatusRequest != null)
            {
                return(thisObject.UpdateFrom(userPermissionStatusRequest));
            }

            RemoveUserRequest removeUserRequest = request as RemoveUserRequest;

            if (removeUserRequest != null)
            {
                return(thisObject.UpdateFrom(removeUserRequest));
            }

            UserPermissionChangedRequest userPermissionChangedRequest = request as UserPermissionChangedRequest;

            if (userPermissionChangedRequest != null)
            {
                return(thisObject.UpdateFrom(userPermissionChangedRequest));
            }

            NotifyInviteRequest notifyInviteRequest = request as NotifyInviteRequest;

            if (notifyInviteRequest != null)
            {
                return(thisObject.UpdateFrom(notifyInviteRequest));
            }

            EntityAdminActionRequest entityAdminDeleteRequest = request as EntityAdminActionRequest;

            if (entityAdminDeleteRequest != null)
            {
                return(thisObject.UpdateFrom(entityAdminDeleteRequest));
            }

            NewEntityRequest newEntityRequest = request as NewEntityRequest;

            if (newEntityRequest != null)
            {
                return(thisObject.UpdateFrom(newEntityRequest));
            }

            return(null);
        }
コード例 #4
0
        public static EmailRequest UpdateFrom(this EmailRequest thisObject, JoinCommunityRequest request)
        {
            if (thisObject == null)
            {
                thisObject = new EmailRequest();
            }

            ICommunityRepository communityRepository = DependencyResolver.Current.GetService(typeof(ICommunityRepository)) as ICommunityRepository;
            IEnumerable<User> approvers = communityRepository.GetApprovers(request.CommunityID);

            foreach (User user in approvers)
            {
                if (user.IsSubscribed)
                {
                    thisObject.Recipients.Add(new MailAddress(user.Email.FixEmailAddress(), user.FirstName + " " + user.LastName));
                }
            }

            string entityName = request.CommunityName;
            bool isFolder = false;
            Community community = communityRepository.GetItem(c => c.CommunityID == request.CommunityID);
            if (community != null)
            {
                entityName = community.Name;
                isFolder = community.CommunityTypeID == (int)CommunityTypes.Folder;
            }

            IUserRepository userRepository = DependencyResolver.Current.GetService(typeof(IUserRepository)) as IUserRepository;
            User requestor = userRepository.GetItem(u => u.UserID == request.RequestorID);

            thisObject.IsHtml = true;

            // Update the body and the subject.
            thisObject.Subject = string.Format(CultureInfo.CurrentUICulture, "{0} has requested to join your Layerscape {1}: \"{2}\"", requestor.GetFullName(), isFolder ? "folder" : "community", entityName);

            var replacements = new Dictionary<string, string>
            {
                { "@@ApproverName@@", string.Empty }, 
                { "@@CommunityName@@", HttpUtility.UrlDecode(entityName) }, 
                { "@@CommunityLink@@", HttpUtility.UrlDecode(request.CommunityLink) },
                { "@@RequestorName@@", HttpUtility.UrlDecode(requestor.GetFullName()) },
                { "@@RequestorID@@", HttpUtility.UrlDecode(request.RequestorID.ToString()) },
                { "@@RequestorLink@@", HttpUtility.UrlDecode(request.RequestorLink) },
                { "@@CommunityType@@", isFolder ? "folder" : "community" },
                { "@@PermissionRequested@@", HttpUtility.UrlDecode(request.PermissionRequested) },
            };
            thisObject.MessageBody = FormatMailBodyUsingTemplate("joincommunityrequest.html", replacements);

            return thisObject;
        }
コード例 #5
0
        private void SendJoinCommunityMail(PermissionItem permission)
        {
            try
            {
                // Send Mail.
                var request = new JoinCommunityRequest();
                request.CommunityID = permission.CommunityID;
                request.CommunityName = permission.CommunityName;
                request.RequestorID = permission.UserID;
                request.RequestorName = permission.Name;
                request.PermissionRequested = permission.Role.ToString();
                request.RequestorLink = string.Format(CultureInfo.InvariantCulture, "{0}Profile/Index/{1}", HttpContext.Request.Url.GetServerLink(), permission.UserID);
                request.CommunityLink = string.Format(CultureInfo.InvariantCulture, "{0}Community/Index/{1}", HttpContext.Request.Url.GetServerLink(), permission.CommunityID);

                _notificationService.NotifyJoinCommunity(request);
            }
            catch (Exception)
            {
                // Ignore all exceptions.
            }
        }
コード例 #6
0
 /// <summary>
 /// Notify the moderators and owners about the an offensive community/content.
 /// </summary>
 /// <param name="notification">Offensive entity details</param>
 public void NotifyJoinCommunity(JoinCommunityRequest notification)
 {
     SendMail(notification);
 }
コード例 #7
0
 /// <summary>
 /// Notify the moderators and owners about the an offensive community/content.
 /// </summary>
 /// <param name="notification">Offensive entity details</param>
 public void NotifyJoinCommunity(JoinCommunityRequest notification)
 {
     SendMail(notification);
 }