/// <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); } }
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)); } }