예제 #1
0
        public ActionResult Contact([Bind(Include = "ID,Name,Email,PhoneNumber,Subject,Message,ViewStatus,DateSent")] ContactMessageModel contactsModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    contactsModel.ViewStatus = 0;

                    db.ContactMessages.Add(contactsModel);
                    db.SaveChanges();
                    TempData["SuccessMessage"] = "Thank you for getting in touch!";

                    //Send email to Gambia Review
                    string to_name = GMailer.GetGambiaReviewName();
                    string h1_text = contactsModel.Subject;
                    string h2_text = null;
                    string p1_text = contactsModel.Message;
                    string p2_text = null;
                    AppEmailer.SendEmail(contactsModel.Email, contactsModel.Name, GMailer.GetGambiaReviewEmail(), to_name, contactsModel.Subject,
                                         h1_text, h2_text, p1_text, p2_text, null, null, null, null, null);

                    return(RedirectToAction("Contact"));
                }
                catch (Exception ex)
                {
                    TempData["ErrorMessage"] = "Failed to send message, please try again. If you continue to get this error, please send an email to [email protected].";
                    SecurityFunctions.LogError(ex, contactsModel.Email, "Contact", null);
                }
            }

            return(View(contactsModel));
        }
예제 #2
0
 public HttpResponseMessage PostResult(ContactMessageModel msg)
 {
     try
     {
         msg = contactLogic.PostNewMessage(msg);
         return(Request.CreateResponse(HttpStatusCode.OK, msg));
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.StackTrace));
     }
 }
예제 #3
0
        public bool UpdateContactMessage(string msgUID, ContactMessageModel model)
        {
            bool rsBool = false;

            try
            {
                var rs = HttpExtension.Instance.InvokePut <ResultResponse, ContactMessageModel>(apiWebhooks + "/contactmessages/" + msgUID, model).Result;
                if (rs != null)
                {
                    rsBool = rs.result;
                }
            }
            catch (System.Exception ex)
            {
                CoreLogger.Instance.Error(this.CreateMessageLog(ex.Message));
            }
            return(rsBool);
        }
예제 #4
0
        public ContactMessageModel GetContactMessagesByConversationID(string conversationID)
        {
            ContactMessageModel model = null;

            try
            {
                var rs = HttpExtension.Instance.InvokeGet <ContactMessagesResponse>(apiWebhooks + "/contactmessages/conversations/" + conversationID).Result;
                if (rs != null)
                {
                    model = rs.result.FirstOrDefault();
                }
            }
            catch (System.Exception ex)
            {
                CoreLogger.Instance.Error(this.CreateMessageLog(ex.Message));
            }
            return(model);
        }
예제 #5
0
        public ActionResponse Add(ContactMessageModel model)
        {
            using (var unitWork = new UnitOfWork(context))
            {
                IMessageHelper mHelper;
                ActionResponse response = new ActionResponse();

                try
                {
                    var project = unitWork.ProjectRepository.GetOne(p => p.Id == model.ProjectId);
                    if (project == null)
                    {
                        mHelper          = new MessageHelper();
                        response.Message = mHelper.GetNotFound("Project");
                        response.Success = false;
                        return(response);
                    }

                    var newMessage = unitWork.ContactMessagesRepository.Insert(new EFContactMessages()
                    {
                        ProjectId   = project.Id,
                        SenderEmail = model.SenderEmail,
                        SenderName  = model.SenderName,
                        EmailType   = model.EmailType,
                        Subject     = model.Subject,
                        Message     = model.Message,
                        Dated       = DateTime.Now,
                        IsNotified  = false
                    });
                    unitWork.Save();
                    response.ReturnedId = newMessage.Id;
                }
                catch (Exception ex)
                {
                    response.Success = false;
                    response.Message = ex.Message;
                    if (ex.InnerException != null)
                    {
                        response.Message = ex.InnerException.Message;
                    }
                }
                return(response);
            }
        }
        public virtual async Task <ActionResult> Index(ContactMessageModel model)
        {
            if (ModelState.IsValid)
            {
                dynamic email = new Postal.Email("ContactMessage");
                email.To        = ConfigurationManager.AppSettings["ContactUsClient"];
                email.Cc        = ConfigurationManager.AppSettings["ContactUsInternal"];
                email.Subject   = ConfigurationManager.AppSettings["ContactUsSubject"];
                email.FirstName = model.FirstName;
                email.LastName  = model.LastName;
                email.Email     = model.Email;
                email.Title     = model.Subject;
                email.Message   = model.Body;

                await EmailService.SendAsync(email);

                ViewBag.Message = "Thanks for your feedback.";

                return(View(MVC.Shared.Views.Info));
            }

            return(View(model));
        }
예제 #7
0
        public IActionResult Post([FromBody] ContactEmailRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (string.IsNullOrEmpty(model.SenderEmail))
            {
                model.SenderEmail = User.FindFirst(ClaimTypes.Email)?.Value;
                if (string.IsNullOrEmpty(model.SenderEmail))
                {
                    return(BadRequest("Unauthorized user access to api"));
                }
            }

            ActionResponse response        = new ActionResponse();
            var            contactToVerify = userService.CheckEmailAvailability(model.SenderEmail);

            if (!contactToVerify.Success)
            {
                List <EmailAddress> usersEmails = null;
                if (model.EmailType == ContactEmailType.Help)
                {
                    usersEmails = contactService.GetManagerUsersEmails().ToList();
                }
                else if (model.EmailType == ContactEmailType.Information)
                {
                    if (model.ProjectId <= 0)
                    {
                        return(BadRequest("Invalid project id provided"));
                    }
                    int projectId = (int)model.ProjectId;
                    usersEmails = contactService.GetProjectUsersEmails(projectId).ToList();
                }
                EmailModel emailModel = new EmailModel()
                {
                    Subject    = model.Subject,
                    Message    = model.Message,
                    Title      = model.ProjectTitle,
                    EmailsList = usersEmails
                };
                response = emailService.SendContactEmail(emailModel, model.SenderName, model.SenderEmail, model.ProjectTitle, model.EmailType);
                if (!response.Success)
                {
                    return(BadRequest(response.Message));
                }
                response.ReturnedId = 1;
                response.Message    = "Message sent";
            }
            else
            {
                ContactMessageModel contactModel = new ContactMessageModel()
                {
                    SenderEmail = model.SenderEmail,
                    SenderName  = model.SenderName,
                    Subject     = model.Subject,
                    Message     = model.Message,
                    EmailType   = model.EmailType,
                    ProjectId   = (int)model.ProjectId
                };
                response = contactService.Add(contactModel);
                if (!response.Success)
                {
                    return(BadRequest(response.Message));
                }
                response.ReturnedId = 2;
                response.Message    = "Message forwarded";
            }
            return(Ok(response));
        }