Exemple #1
0
    /// <summary>
    /// Send message to the other user
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSendMessage_Click(object sender, EventArgs e)
    {
        try
        {
            Button button     = (Button)sender;
            var    txtMessage = (TextBox)button.Parent.FindControl("txtMessage");
            if (!string.IsNullOrEmpty(txtMessage.Text))
            {
                var              ToUserId         = button.CommandArgument;
                Repeater         rpMessages       = (Repeater)button.Parent.FindControl("rpMessages");
                MessageComponent messageComponent = new MessageComponent();
                // verify that the message doesn't have script and styles
                messageComponent.Message.Message1    = ValidateSecurity.ValidateString(txtMessage.Text, false);
                messageComponent.Message.DateCreated = DateTime.Now;
                messageComponent.Message.FromUserId  = UserInfo.UserID;
                messageComponent.Message.ToUserId    = Convert.ToInt32(ValidateSecurity.ValidateString(ToUserId, false));

                //Save message in the database
                if (messageComponent.Save() > -1)
                {
                    var list = FillMessages(GetListMessagesForUser(Convert.ToInt32(ValidateSecurity.ValidateString(ToUserId, false))));
                    rpMessages.DataSource = list;
                    rpMessages.DataBind();
                    txtMessage.Text = string.Empty;
                    UserPropertyComponent userPropertyComponent = new UserPropertyComponent(Convert.ToInt32(ToUserId));
                    UserInfo userTo = UserController.GetUserById(PortalId, userPropertyComponent.UserProperty.UserId);
                    UserPropertyComponent userProperty = new UserPropertyComponent(UserInfo.UserID);

                    //Send message
                    try
                    {
                        CultureInfo language = new CultureInfo(getUserLanguage(userPropertyComponent.UserProperty.Language.GetValueOrDefault(1)));
                        DotNetNuke.Services.Mail.Mail.SendEmail("*****@*****.**",
                                                                userTo.Email,
                                                                string.Format(
                                                                    Localization.GetString("MessageTitle", LocalResourceFile, language.Name),
                                                                    userProperty.UserProperty.FirstName + " " + userProperty.UserProperty.LastName
                                                                    ),

                                                                Localization.GetString("MessageBody", LocalResourceFile, language.Name).Replace("{MESSAGE:Body}",
                                                                                                                                                messageComponent.Message.Message1).Replace("{MESSAGE:ViewLink}",
                                                                                                                                                                                           NexsoHelper.GetCulturedUrlByTabName("MyMessages"))
                                                                );
                    }
                    catch (Exception ex)
                    {
                        Exceptions.ProcessModuleLoadException(this, ex);
                    }
                }
            }
        }
        catch (Exception exc)
        {
            Exceptions.
            ProcessModuleLoadException(
                this, exc);
        }
    }
Exemple #2
0
        public HttpResponseMessage SendMessage(string message, int userIdTo)
        {
            try
            {
                var      portal      = PortalController.GetCurrentPortalSettings();
                var      currentUser = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo();
                UserInfo userTo      = DotNetNuke.Entities.Users.UserController.GetUserById(portal.PortalId, userIdTo);

                if (currentUser.IsInRole("Registered Users") && userTo != null)
                {
                    var fromUser = new UserPropertyComponent(currentUser.UserID);
                    var toUser   = new UserPropertyComponent(userIdTo);
                    if (!string.IsNullOrEmpty(ValidateSecurity.ValidateString(message, false)) && toUser.UserProperty.UserId > 0 && currentUser.UserID > 0)
                    {
                        MessageComponent messageComponent = new MessageComponent(Guid.Empty);
                        messageComponent.Message.Message1    = message;
                        messageComponent.Message.ToUserId    = userIdTo;
                        messageComponent.Message.FromUserId  = currentUser.UserID;
                        messageComponent.Message.DateCreated = DateTime.Now;

                        if (messageComponent.Save() > 0)
                        {
                            // Notification

                            if (currentUser.UserID != Convert.ToInt32(userTo.UserID))
                            {
                                if (Helper.HelperMethods.SetNotification("MESSAGE", "MESSAGE", messageComponent.Message.MessageId, toUser.UserProperty.UserId, currentUser.UserID, "") > 0)
                                {
                                    CultureInfo culture = new CultureInfo(HelperMethods.GetUserLanguage(toUser.UserProperty.Language.GetValueOrDefault(1)));
                                    Helper.HelperMethods.SendEmailToUser("MessageTitleMessage", "MessageBodyMessage", userTo, culture, "", messageComponent.Message.Message1).ConfigureAwait(false);
                                    return(Request.CreateResponse(HttpStatusCode.OK, "Successful Operation"));
                                }
                                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError));
                            }
                        }
                        else
                        {
                            throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError));
                        }
                    }
                    throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest));
                }
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Unauthorized));
            }
            catch (HttpResponseException e)
            {
                throw e;
            }
            catch (Exception ee)
            {
                DotNetNuke.Services.Exceptions.Exceptions.LogException(ee);
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError));
            }
        }