示例#1
0
        public ActionResult Contact(ContactForm contactForm)
        {
            JsonNetResult jsonNetResult = new JsonNetResult();
            jsonNetResult.Formatting = Formatting.Indented;
            try
            {
                string subject = "Online Contact From " + contactForm.Name;
                string message = contactForm.Message;
                message += "\r\n\r\n  " + contactForm.Name;
                message += "\r\n   " + contactForm.EmailAddress;
                message += "\r\n   " + contactForm.Number;

                string sendto = Settings.Default.ContactEmail;

                EmailMessage Message = new EmailMessage()
                {
                    Message = message,
                    Subject = subject,
                    EmailAddressFrom = contactForm.EmailAddress,
                    ContactName = contactForm.Name,
                    EmailAddressTo = sendto
                };
                Message.SendMessage();
                Message = null;

                jsonNetResult.Data = new { Result = "success" };
            }
            catch (Exception ex)
            {
                jsonNetResult.Data = new { Result = "fail", Message = ex.Message };
            }
            return jsonNetResult;
        }
示例#2
0
        public ContactForm SaveContactForm(ContactForm form)
        {
            using (var context = new Data.ContactFormsContext()) {
                context.ContactForms.Add(form);

                context.SaveChanges();
            }
            return form;
        }
示例#3
0
        public IHttpActionResult PostEmail(ContactForm contactForm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var message = _emailService.CreateMailMessage(contactForm);

            _emailService.SendEmail(message);

            return(Ok());
        }
        public ActionResult Contact([Bind(Include = "FirstName,LastName,Email,SubjectSelector,Body")] ContactForm contactForm)
        {
            if (ModelState.IsValid)
            {
                //ADD EMAIL LOGIC
                SmtpMessageChunk.SendContactFormEmail(contactForm);
                return(RedirectToAction("Index"));
            }

            ViewBag.SubjectSelector = contactForm.SubjectSelector;

            return(View());
        }
示例#5
0
        /// <summary>
        /// Method returns SubmitContactForm view with greetings for the sender.
        /// </summary>
        /// <param name="contactForm"></param>
        /// <returns></returns>
        public ActionResult SubmitContactForm(ContactForm contactForm)
        {
            try

            {
                return(Content("Hi there!"));
            }
            catch
            {
                return(View(contactForm));
            }
            ;
        }
        public ActionResult ProcessForm(ContactForm data)
        {
            string msg = "";

            msg += data.Message + "\n\n";
            msg += "--" + data.FirstName + " " + data.LastName + "\n\n";

            SmtpClient client = new SmtpClient();

            client.Send(data.Email, "*****@*****.**", data.Subject, msg);

            return(View());
        }
示例#7
0
 public ActionResult contactformDelete(int id, ContactForm Cf)
 {
     ViewBag.Group = "Admin";
     try
     {
         objCF.CommitDelete(id);
         return(RedirectToAction("contactformAdmin"));
     }
     catch
     {
         return(View());
     }
 }
        public ActionResult HandleFormSubmit(ContactForm model)
        {
            if (!ModelState.IsValid)
            {
                return(CurrentUmbracoPage());
            }

            MailMessage message = new MailMessage();

            //The recipient's email
            message.To.Add("*****@*****.**");
            message.Subject = model.Subject;
            message.From    = new MailAddress(model.Email, model.Name);
            message.Body    = model.Message;

            using (SmtpClient smtp = new SmtpClient())
            {
                smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
                smtp.UseDefaultCredentials = false;
                smtp.EnableSsl             = true;
                smtp.Host = "smtp.gmail.com";
                smtp.Port = 587;

                //Add your own credentials here, otherwise the form won't work
                //Those are the credentials for the account that sends the email
                smtp.Credentials = new System.Net.NetworkCredential("gmail", "app.password");

                // send mail
                smtp.Send(message);

                TempData["success"] = true;
            }

            //Get the GuidUdi of the current page
            GuidUdi currentPageUdi = new GuidUdi(CurrentPage.ContentType.ItemType.ToString(), CurrentPage.Key);

            // Create the new content type
            IContent msg = Services.ContentService.CreateContent(model.Subject, currentPageUdi, "message");

            msg.SetValue("messageName", model.Name);
            msg.SetValue("email", model.Email);
            msg.SetValue("subject", model.Subject);
            msg.SetValue("messageContent", model.Message);
            msg.SetValue("umbracoNaviHide", true);

            //Save
            Services.ContentService.Save(msg);


            return(RedirectToCurrentUmbracoPage());
        }
示例#9
0
        public ActionResult Contact(ContactForm contactForm)
        {
            if (!ModelState.IsValid)
            {
                return(View(contactForm));
            }

            contactForm.Sender = unitOfWork.Users.GetUser(contactForm.SenderId);

            unitOfWork.ContactForms.Add(contactForm);
            unitOfWork.Complete();

            return(View("SuccessContactForm", contactForm));
        }
示例#10
0
        public OkObjectResult SendEmail([FromBody] ContactForm form)
        {
            string emailBody = string.Empty;

            emailBody += "<p>Name: " + form.Name + "</p>";
            emailBody += "<p>Email: " + form.Email + "</p>";
            emailBody += "<p>Subject: " + form.Subject + "</p>";
            emailBody += "<p>Message:" + "</p>";
            emailBody += "<p>" + form.Message + "</p>";

            SendEmail(emailBody);

            return(Ok(new { response = "Email sent sucessful!" }));
        }
        public async Task <IActionResult> SubmitContactForm([Bind("ContactFormId,Name,UserEmailAddress,Subject,MessageBody")] ContactForm contactForm)
        {
            if (ModelState.IsValid)
            {
                bool success = await contactForm.Submit(_context.SystemConfigs.OrderBy(sc => sc.SystemConfigId).Last(), _logger);

                if (success)
                {
                    await _context.SaveChangesAsync();
                }
            }

            return(RedirectToAction("Index"));
        }
示例#12
0
        // GET: ContactForms/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ContactForm contactForm = db.form.Find(id);

            if (contactForm == null)
            {
                return(HttpNotFound());
            }
            return(View(contactForm));
        }
        // GET: ContactForms/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ContactForm contactForm = _contactFromRepository.GetWhere(x => x.Id == id.Value).FirstOrDefault();

            if (contactForm == null)
            {
                return(HttpNotFound());
            }
            return(View(contactForm));
        }
示例#14
0
文件: Email.cs 项目: AYCHErp/Frapid
        private EmailQueue GetEmail(string catalog, ContactForm model)
        {
            var config = new Config(catalog);

            return(new EmailQueue
            {
                AddedOn = DateTime.Now,
                FromName = model.Name,
                ReplyTo = model.Email,
                Subject = model.Subject,
                Message = this.GetMessage(catalog, model),
                SendTo = config.FromEmail
            });
        }
        public ActionResult Create([Bind(Include = "Id,Name,Email,Message,IsActive,CreationDate,CreateUserId,LastModifiedDate,IsDeleted,DeletionDate,DeleteUserId,Description")] ContactForm contactForm)
        {
            if (ModelState.IsValid)
            {
                contactForm.IsDeleted    = false;
                contactForm.CreationDate = DateTime.Now;
                contactForm.Id           = Guid.NewGuid();
                db.ContactForms.Add(contactForm);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(contactForm));
        }
示例#16
0
        public ActionResult Sales(ContactForm contactForm)
        {
            ViewBag.Message = "Contact us using the form below!";

            if (ModelState.IsValid)
            {
                // yay, send a sales guy an email
                return(RedirectToAction("Thanks"));
            }
            else
            {
                return(View("Contact"));
            }
        }
示例#17
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ContactForm contactForm = _repo.Get(id.Value);

            if (contactForm == null)
            {
                return(HttpNotFound());
            }
            return(PartialView(contactForm));
        }
示例#18
0
        public MailMessage CreateMailMessage(ContactForm model)
        {
            var mailMessage = new MailMessage
            {
                Sender     = new MailAddress("*****@*****.**"),
                From       = new MailAddress("*****@*****.**"),
                To         = { "*****@*****.**" },
                Subject    = model.Subject,
                Body       = model.Body,
                IsBodyHtml = true
            };

            return(mailMessage);
        }
        public ActionResult HandleFormSubmit(ContactForm model)
        {
            if (!ModelState.IsValid)
            {
                return(CurrentUmbracoPage());
            }

            TempData["success"] = true;

            MailMessage message = new MailMessage();

            message.To.Add("*****@*****.**");
            message.Subject = model.Subject;
            message.From    = new MailAddress(model.Email, model.Name);
            message.Body    = model.Message;



            //ensure there is no errors, otherwise display errors if there is

            using (SmtpClient smtp = new SmtpClient())
            {
                smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
                smtp.UseDefaultCredentials = false;
                smtp.EnableSsl             = true;
                smtp.Host        = "smtp.gmail.com";
                smtp.Port        = 587;
                smtp.Credentials = new System.Net.NetworkCredential("*****@*****.**", "nxjhkegvwxunkvmo");

                // send mail
                smtp.Send(message);
            }

            //Get the GuildUdi of the current page
            GuidUdi currentPageUdi = new GuidUdi(CurrentPage.ContentType.ItemType.ToString(), CurrentPage.Key);

            //Create the new content type
            IContent msg = Services.ContentService.CreateContent(model.Subject, currentPageUdi, "message");

            msg.SetValue("messageName", model.Name);
            msg.SetValue("email", model.Email);
            msg.SetValue("subject", model.Subject);
            msg.SetValue("messageContent", model.Message);
            msg.SetValue("umbracoNaviHide", true);

            //Save
            Services.ContentService.Save(msg);

            return(RedirectToCurrentUmbracoPage());
        }
示例#20
0
        public ActionResult Contact(ContactFormViewModel vm)
        {
            var repo = RepositoryFactory.CreateRepository();
            var form = new ContactForm
            {
                Name     = vm.Name,
                Email    = vm.Email,
                Message  = vm.Message,
                DateSent = DateTime.Now
            };

            repo.AddContactForm(form);
            return(RedirectToAction("Index", "Home"));
        }
        public ActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ContactForm contactForm = db.ContactForms.Find(id);

            if (contactForm == null)
            {
                return(HttpNotFound());
            }
            return(View(contactForm));
        }
示例#22
0
        public MailMessage CreateMailMessage(ContactForm contactForm)
        {
            var mailMessage = new MailMessage
            {
                Sender     = new MailAddress("*****@*****.**"),
                From       = new MailAddress("*****@*****.**"),
                To         = { contactForm.Email },
                Subject    = contactForm.Subject,
                Body       = contactForm.Body,
                IsBodyHtml = true
            };

            return(mailMessage);
        }
 public ContactForm AddContactForm(ContactForm form)
 {
     using (SqlConnection connection = new SqlConnection(Settings.GetConnectionString()))
     {
         DynamicParameters param = new DynamicParameters();
         param.Add("@ContactFormID", dbType: DbType.Int32, direction: ParameterDirection.Output);
         param.Add("@Name", form.Name);
         param.Add("@Email", form.Email);
         param.Add("@Message", form.Message);
         connection.Execute("ContactFormAdd", param, commandType: CommandType.StoredProcedure);
         form.ContactFormID = param.Get <int>("@ContactFormID");
     }
     return(form);
 }
示例#24
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new StatusCodeResult(400));
            }
            ContactForm contactform = db.ContactForms.Find(id);

            if (contactform == null)
            {
                return(NotFound());
            }
            return(View(contactform));
        }
示例#25
0
        public IActionResult Get()
        {
            ContactForm nextQuestion = new ContactForm()
            {
                Name = "test", Email = "test2"
            };

            if (nextQuestion == null)
            {
                return(this.NotFound());
            }

            return(Ok(nextQuestion));
        }
示例#26
0
        public ActionResult HandleFormSubmit(ContactForm model)
        {
            if (!ModelState.IsValid)
            {
                return(CurrentUmbracoPage());
            }

            MailMessage message = new MailMessage();

            message.To.Add("*****@*****.**");
            message.Subject = model.Subject;
            message.From    = new MailAddress(model.Email, model.Name);
            message.Body    = model.Message;

            using (SmtpClient smtp = new SmtpClient())
            {
                smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
                smtp.UseDefaultCredentials = false;
                smtp.EnableSsl             = true;
                smtp.Host        = "smtp.gmail.com";
                smtp.Port        = 587;
                smtp.Credentials = new System.Net.NetworkCredential("*****@*****.**", "yquqdmowgzpfkxpv");
                smtp.EnableSsl   = true;
                // send mail
                try
                {
                    smtp.Send(message);
                    TempData["success"] = true;
                }
                catch (SmtpException ex)
                {
                    var Message = ex.Message.ToString();
                    // ex.FailedRecipient and ex.GetBaseException() should give you enough info.
                }
            }

            //saving the message

            IContent comment = Services.ContentService.CreateContent(model.Subject, CurrentPage.Id, "messages");

            comment.SetValue("vmname", model.Name);
            comment.SetValue("email", model.Email);
            comment.SetValue("subject", model.Subject);
            comment.SetValue("message", model.Message);

            //save
            Services.ContentService.Save(comment);

            return(RedirectToCurrentUmbracoPage());
        }
        public ActionResult HandleFormSubmit(ContactForm model)
        {
            if (!ModelState.IsValid)
            {
                return(CurrentUmbracoPage());
            }

            //Send email message
            //The method data receives the data as an object of type ContactForm
            MailMessage message = new MailMessage();

            message.To.Add("*****@*****.**");
            message.Subject = model.Subject;
            message.From    = new MailAddress(model.Email, model.Name);
            message.Body    = model.Message;

            //Send the message as an email
            using (SmtpClient smtp = new SmtpClient())
            {
                smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
                smtp.UseDefaultCredentials = false;
                smtp.EnableSsl             = true; smtp.Host = "smtp.gmail.com";
                smtp.Port = 587;
                //Removed Network credentials
                smtp.Credentials = new System.Net.NetworkCredential("", "");
                // send mail
                smtp.Send(message);
            }

            //Display a message to the user in case of success
            TempData["success"] = true;


            //Get the GuildUdi of the current page
            GuidUdi currentPageUdi = new GuidUdi(CurrentPage.ContentType.ItemType.ToString(), CurrentPage.Key);

            //Create the new content type with parameters: string name, Udi parentId , string contentTypeAlias
            IContent msg = Services.ContentService.CreateContent(model.Subject, currentPageUdi, "message");

            msg.SetValue("messageName", model.Name);
            msg.SetValue("email", model.Email);
            msg.SetValue("subject", model.Subject);
            msg.SetValue("messageContent", model.Message);
            msg.SetValue("umbracoNaviHide", true);

            //Save
            Services.ContentService.Save(msg);
            //declare a method that receives form input and send the page back to the client
            return(RedirectToCurrentUmbracoPage());
        }
        public async Task CreateAsync(string name, string email, string title, string content)
        {
            var contactForm = new ContactForm
            {
                Name    = name,
                Email   = email,
                Title   = title,
                Content = content,
            };

            await this.contactFormRepository.AddAsync(contactForm);

            await this.contactFormRepository.SaveChangesAsync();
        }
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ContactForm contactForm = _contactFormRepository.GetById(id.Value);

            if (contactForm == null)
            {
                return(HttpNotFound());
            }
            return(View(contactForm));
        }
 public ActionResult Create(ContactForm contactForm)
 {
     if (ModelState.IsValid)
     {
         contactForm.SendTime = DateTime.Now;
         _contactFormRepository.Create(contactForm);
         var message = _sendEmail.CreateMailMessage(contactForm);
         _sendEmail.SendEmail(message);
         message = _sendEmail.CreateMailMessage(contactForm, true);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(contactForm));
 }
示例#31
0
 public IActionResult Contact(ContactForm c)
 {
     if (ModelState.IsValid)
     {
         // save to database
         if (c.Name != null)
         {
             contactRepo.AddMessage(c);
         }
         // send to view
         ViewBag.Message = c;
     }
     return(View());
 }
 /// <summary>
 /// Insert new contact form to database
 /// </summary>
 /// <param name="contactForm"></param>
 public void AddContactForm(ContactForm contactForm)
 {
     try
     {
         if (contactForm == null)
         {
             throw new ArgumentNullException($"Empty Contact form contents");
         }
         this._RepositoryContactformService.Add(contactForm);
     }
     catch (Exception ex)
     {
         throw new Exception($"Empty form: {ex.Message}");
     }
 }
        public ContactForm Create(string name, string email, string subject, string message, string ip)
        {
            ContactForm dbContactForm = new ContactForm()
            {
                Name = name,
                Email = email,
                Subject = subject,
                Message = message,
                Ip = ip
            };

            this.contactFormRepos.Add(dbContactForm);
            this.contactFormRepos.Save();

            return dbContactForm;
        }
示例#34
0
        public JsonResult ContactFormPost(ContactForm form)
        {
            string subject = "New Contact Form Notification";
            string sendMessageTo = "*****@*****.**";
            string messageFrom = "*****@*****.**";
            string smtpCredential = "mail.domain.com";
            string smtpCredentialLogin = "******";
            string smtpPassword = "******";

            var result = new JsonResult() { JsonRequestBehavior = JsonRequestBehavior.AllowGet };

            // Check Captcha
            if (Session["qaptcha_key"] != null)
            {
                var sb = new StringBuilder();

                sb.Append("Name : " + form.name + "<br />");
                sb.Append("Contact Email : " + form.contactEmail + "<br />");
                sb.Append("Subject : " + form.subject + "<br /><br />");
                sb.Append("Comments : " + form.message + "<br />");

                // Send Form Data
                try
                {
                    var msg = new MailMessage();
                    msg.Body = sb.ToString();
                    msg.IsBodyHtml = true;
                    msg.From = new MailAddress(messageFrom);
                    msg.Subject = subject;
                    msg.To.Add(sendMessageTo);

                    var smtp = new SmtpClient(smtpCredential);
                    smtp.Credentials = new NetworkCredential(smtpCredentialLogin, smtpPassword);
                    smtp.Port = 25;
                    smtp.Send(msg);
                }
                catch (Exception e)
                {
                    Log.Warn("Failed to send email", e);
                }
            }

            return result;
        }
        public ActionResult HandleContactForm(ContactFormViewModel model)
        {
            //Check if data posted from form in model is valid
            if (!ModelState.IsValid)
            {
                //Not valid return to the form with the values the user entered
                return CurrentUmbracoPage();
            }

            //Get settings off current node (CWS-Contact-Form) node
            var emailTo         = CurrentPage.GetPropertyValue("emailAddressTo", "*****@*****.**").ToString();
            var emailSubject    = CurrentPage.GetPropertyValue("emailSubject", "CWS Contact Form Request").ToString();

            //Send out email
            EmailHelper.SendContactEmail(model, emailTo, emailSubject);

            //Now let's add it to our DB table using the magical PetaPoco for a handy log
            var db = ApplicationContext.DatabaseContext.Database;

            //Create a new PetaPoco object representing our DB table
            var logEntry        = new ContactForm();
            logEntry.Date       = DateTime.Now;
            logEntry.Name       = model.Name;
            logEntry.Email      = model.Email;
            logEntry.Message    = model.Message;

            try
            {
                //Insert the record into the DB
                db.Insert(logEntry);
            }
            catch (Exception ex)
            {
                //Throw an exception if there is a problem adding the item to the DB table for logging with PetaPoco
                throw ex;
            }

            //Update success flag (in a TempData key)
            TempData["IsSuccessful"] = true;

            //All done - lets redirect to the current page & show our thanks/success message
            return RedirectToCurrentUmbracoPage();
        }
示例#36
0
        private IDnaDataReader MockedSetCommentForumAsContactForm(ContactForm newContactFormDetails)
        {
            IDnaDataReader mockedDataReader = mocks.StrictMock<IDnaDataReader>();
            mockedDataReader.Stub(x => x.AddParameter("forumid", newContactFormDetails.ForumID)).Return(mockedDataReader);
            mockedDataReader.Stub(x => x.AddParameter("contactemail", newContactFormDetails.ContactEmail)).Return(mockedDataReader);
            mockedDataReader.Stub(x => x.Execute()).Return(mockedDataReader);
            mockedDataReader.Stub(x => x.Dispose());

            return mockedDataReader;
        }
示例#37
0
        private IDnaDataReader MockedCreateCommentForum(ContactForm newContactFormDetails, int expectedForumId)
        {
            IDnaDataReader mockedDataReader = mocks.StrictMock<IDnaDataReader>();
            mockedDataReader.Stub(x => x.AddParameter("uid", newContactFormDetails.Id)).Return(mockedDataReader);
            mockedDataReader.Stub(x => x.AddParameter("url", newContactFormDetails.ParentUri)).Return(mockedDataReader);
            mockedDataReader.Stub(x => x.AddParameter("title", newContactFormDetails.Title)).Return(mockedDataReader);
            mockedDataReader.Stub(x => x.AddParameter("sitename", newContactFormDetails.SiteName)).Return(mockedDataReader);
            mockedDataReader.Stub(x => x.AddParameter("moderationstatus", (int)newContactFormDetails.ModerationServiceGroup)).Return(mockedDataReader);

            mockedDataReader.Stub(x => x.Execute()).Return(mockedDataReader);
            mockedDataReader.Stub(x => x.Read()).Return(true);

            mockedDataReader.Stub(x => x.GetInt32NullAsZero("forumid")).Return(expectedForumId);
            mockedDataReader.Stub(x => x.Dispose());

            return mockedDataReader;
        }
示例#38
0
        private IDnaDataReader MockedGetContactFormDetailFromFormID(ContactForm newContactFormDetails, bool exists)
        {
            IDnaDataReader mockedDataReader = mocks.StrictMock<IDnaDataReader>();

            mockedDataReader.Stub(x => x.AddParameter("contactformid", newContactFormDetails.Id)).Return(mockedDataReader);
            mockedDataReader.Stub(x => x.AddParameter("sitename", newContactFormDetails.SiteName)).Return(mockedDataReader);
            mockedDataReader.Stub(x => x.Execute()).Return(mockedDataReader);
            mockedDataReader.Stub(x => x.HasRows).Return(exists);

            if (exists)
            {
                mockedDataReader.Stub(x => x.Read()).Return(true);
                mockedDataReader.Stub(x => x.GetString("contactemail")).Return(newContactFormDetails.ContactEmail);
                mockedDataReader.Stub(x => x.GetInt32("forumid")).Return(newContactFormDetails.ForumID);
                mockedDataReader.Stub(x => x.GetString("contactformuid")).Return(newContactFormDetails.Id);
                mockedDataReader.Stub(x => x.GetString("parenturi")).Return(newContactFormDetails.ParentUri);
                mockedDataReader.Stub(x => x.GetString("title")).Return(newContactFormDetails.Title);
                mockedDataReader.Stub(x => x.GetInt32("NotSignedInUserId")).Return(newContactFormDetails.NotSignedInUserId);
            }

            mockedDataReader.Stub(x => x.Dispose());

            return mockedDataReader;
        }
示例#39
0
        public void ShouldCreateNewContactFormWhenGivenValidContactFormDetails()
        {
            string expectedTitle = "testcontactform";
            string expectedParentUri = "http://local.bbc.co.uk/dna/h2g2";
            string expectedId = "newcontactform" + DateTime.Now.Ticks.ToString();
            string expectedContactEmail = "*****@*****.**";
            string expectedSiteName = "h2g2";
            ModerationStatus.ForumStatus expectedModerationStatus = ModerationStatus.ForumStatus.Reactive;

            ISite mockedSite = mocks.StrictMock<ISite>();
            mockedSite.Stub(x => x.EditorsEmail).Return("*****@*****.**");
            mockedSite.Stub(x => x.SiteName).Return(expectedSiteName);

            ISiteList mockedSiteList = mocks.DynamicMock<ISiteList>();
            mockedSiteList.Stub(x => x.GetSite(expectedSiteName)).Return(mockedSite);

            ContactForm newContactFormDetails = new ContactForm();
            newContactFormDetails.ContactEmail = expectedContactEmail;
            newContactFormDetails.Title = expectedTitle;
            newContactFormDetails.ParentUri = expectedParentUri;
            newContactFormDetails.Id = expectedId;
            newContactFormDetails.ModerationServiceGroup = expectedModerationStatus;
            newContactFormDetails.SiteName = expectedSiteName;
            newContactFormDetails.NotSignedInUserId = 0;

            IDnaDataReader mockedDataReader1 = MockedGetContactFormDetailFromFormID(newContactFormDetails, false);

            int expectedForumId = 789654123; 
            IDnaDataReader mockedDataReader2 = MockedCreateCommentForum(newContactFormDetails, expectedForumId);

            newContactFormDetails.ForumID = expectedForumId; 
            IDnaDataReader mockedDataReader3 =  MockedSetCommentForumAsContactForm(newContactFormDetails);

            IDnaDataReader mockedDataReader4 = MockedGetContactFormDetailFromFormID(newContactFormDetails, true);

            Queue<IDnaDataReader> mockedReaders = new Queue<IDnaDataReader>();
            mockedReaders.Enqueue(mockedDataReader1);
            mockedReaders.Enqueue(mockedDataReader4);

            IDnaDataReaderCreator mockerDataReaderCreator = mocks.StrictMock<IDnaDataReaderCreator>();
            mockerDataReaderCreator.Expect(x => x.CreateDnaDataReader("getcontactformdetailfromformid")).Return(mockedDataReader1);
            mockerDataReaderCreator.Expect(x => x.CreateDnaDataReader("getcontactformdetailfromformid")).Return(mockedDataReader4);
            mockerDataReaderCreator.Stub(x => x.CreateDnaDataReader("commentforumcreate")).Return(mockedDataReader2);
            mockerDataReaderCreator.Stub(x => x.CreateDnaDataReader("setcommentforumascontactform")).Return(mockedDataReader3);

            ICallingUser mockedUser = mocks.StrictMock<ICallingUser>();
            mockedUser.Stub(x => x.IsUserA(UserTypes.Editor)).Return(true);

            Contacts contacts = new Contacts(null, mockerDataReaderCreator, null, mockedSiteList);
            contacts.CallingUser = mockedUser;

            mocks.ReplayAll();

            ContactForm createdContactForm = contacts.CreateContactForm(newContactFormDetails, mockedSiteList.GetSite("h2g2"));

            Assert.AreEqual(expectedContactEmail, createdContactForm.ContactEmail);
            Assert.AreEqual(expectedForumId, createdContactForm.ForumID);
            Assert.AreEqual(expectedId, createdContactForm.Id);
            Assert.AreEqual(expectedParentUri, createdContactForm.ParentUri);
            Assert.AreEqual(expectedTitle, createdContactForm.Title);
            Assert.AreEqual(expectedSiteName, createdContactForm.SiteName);

            mocks.VerifyAll();
        }
示例#40
0
        public void ShouldThrowInvalidContactEmailExceptionWhenCreatingANewFormGivenAnInvalidContactEmailAddress()
        {
            string sitename = "h2g2";
            ISite mockedSite = mocks.StrictMock<ISite>();
            mockedSite.Stub(x => x.SiteName).Return(sitename);

            ContactForm form = new ContactForm() { Id = "doesnotexist", SiteName = sitename, ContactEmail = "invalid.email@crapemailaddress" };
            IDnaDataReader mockedDataReader = MockedGetContactFormDetailFromFormID(form, false);
            IDnaDataReaderCreator mockerDataReaderCreator = mocks.StrictMock<IDnaDataReaderCreator>();
            mockerDataReaderCreator.Expect(x => x.CreateDnaDataReader("getcontactformdetailfromformid")).Return(mockedDataReader);

            Contacts contacts = new Contacts(null, mockerDataReaderCreator, null, null);

            ICallingUser mockedUser = mocks.StrictMock<ICallingUser>();
            mockedUser.Stub(x => x.IsUserA(UserTypes.Editor)).Return(true);
            contacts.CallingUser = mockedUser;

            mocks.ReplayAll();

            try
            {
                ContactForm createdContactForm = contacts.CreateContactForm(form, mockedSite);
            }
            catch (ApiException ex)
            {
                Assert.AreEqual(ApiException.GetError(ErrorType.InvalidContactEmail).Message, ex.Message);
                throw ex;
            }
        }
示例#41
0
        public void ShouldThrowNotAuthorizedExceptionWhenCreatingANullCallingUser()
        {
            string sitename = "h2g2";
            ISite mockedSite = mocks.StrictMock<ISite>();
            mockedSite.Stub(x => x.SiteName).Return(sitename);

            ContactForm form = new ContactForm() { Id = "doesnotexist", SiteName = sitename };
            IDnaDataReader mockedDataReader = MockedGetContactFormDetailFromFormID(form, false);
            IDnaDataReaderCreator mockerDataReaderCreator = mocks.StrictMock<IDnaDataReaderCreator>();
            mockerDataReaderCreator.Expect(x => x.CreateDnaDataReader("getcontactformdetailfromformid")).Return(mockedDataReader);

            Contacts contacts = new Contacts(null, mockerDataReaderCreator, null, null);

            mocks.ReplayAll();

            try
            {
                ContactForm createdContactForm = contacts.CreateContactForm(form, mockedSite);
            }
            catch (ApiException ex)
            {
                Assert.AreEqual(ApiException.GetError(ErrorType.NotAuthorized).Message, ex.Message);
                throw ex;
            }
        }
示例#42
0
        public void ShouldDeserialiseToContactFormMessageString()
        {
            ContactForm contactForm = new ContactForm();
            contactForm.Id = "FirstContactForm_111";
            contactForm.ParentUri = "http://local.bbc.co.uk/dna/h2g2";
            contactForm.Title = "FirstContactForm+1";
            contactForm.contactDetailsList = new ContactDetailsList();
            contactForm.contactDetailsList.contacts = new List<ContactDetails>();
            ContactDetails contactDetail = new ContactDetails();
            contactForm.contactDetailsList.contacts.Add(contactDetail);
            
            ContactFormMessage msg = new ContactFormMessage();
            msg.Subject = "testing Subject";
            msg.Body = new Dictionary<string, string>();
            msg.Body.Add("Your Email","*****@*****.**");
            msg.Body.Add("Your Suggestions","Improve the contact form");
            msg.Body.Add("Your Favourite Social Network","facebook");
            msg.Body.Add("Favourite BBC site","sport");
            msg.Body.Add("Gender","m");

            contactDetail.text = StringUtils.SerializeToJsonReturnAsString(msg);

            string stringContactForm = StringUtils.SerializeToJsonReturnAsString(contactForm);

            string body = "";
            ContactFormMessage message = (ContactFormMessage)StringUtils.DeserializeJSONObject(contactDetail.text, typeof(ContactFormMessage));
            string subject = message.Subject;

            foreach (KeyValuePair<string, string> content in message.Body.ToList<KeyValuePair<string, string>>())
            {
                string messageLine = content.Key + " : " + content.Value + "\n";
                body += messageLine;
            }
        }
示例#43
0
        private void CreateForm()
        {
            var webForm = System.Web.HttpContext.Current.Request.Form;

            Form = new ContactForm();
            Form.ContactFormUId = Guid.NewGuid().ToString();
            Form.CreateDate = DateTime.Now.ToUniversalTime();
            Form.TargetEmail = TargetEmail;

            Form.Subject = webForm["subject"];
            Form.ContactEmail = webForm["contactEmail"];
            Form.ContactName = webForm["contactName"];
            Form.ContactPersonalId = webForm["contactPersonalId"];
            Form.ContactPersonalId2 = webForm["contactPersonalId2"];
            Form.ContactCountry = webForm["contactCountry"];
            Form.ContactState = webForm["contactState"];
            Form.ContactCity = webForm["contactCity"];

            Form.Message = webForm["message"];

            if (webForm["message"] != null && webForm["message"].Length > 150)
                Form.ShortMessage = webForm["message"].Substring(0, 150);
            else
                Form.ShortMessage = webForm["message"];
        }