public ActionResult WritePost(FormalPostViewModel postmodel)
        {
            var             ctx         = new ApplicationDbContext();
            var             userId      = User.Identity.GetUserId();
            var             store       = new UserStore <ApplicationUser>(new ApplicationDbContext());
            var             userManager = new UserManager <ApplicationUser>(store);
            ApplicationUser user        = userManager.FindById(userId);
            var             post        = new FormalPostModel
            {
                Title   = postmodel.Title,
                Content = postmodel.Content,
                Author  = User.Identity.GetUserName(),
                Date    = DateTime.Now
            };

            if (ModelState.IsValid)
            {
                if (postmodel.File != null && postmodel.File.ContentLength > 0)
                {
                    var fileName = Path.GetFileName(postmodel.File.FileName);
                    var path     = Path.Combine(Server.MapPath("~/UploadedFiles/"), fileName);
                    post.FilePath = "~/UploadedFiles/" + fileName;
                    postmodel.File.SaveAs(path);
                }
                ctx.Post.Add(post);
                ctx.SaveChanges();
            }
            else
            {
                postmodel.Posts = ctx.Post.OrderByDescending(p => p.Date).ToList();
                return(View("ShowPost", postmodel));
            }

            return(RedirectToAction("ShowPost"));
        }
示例#2
0
        public ActionResult EmailWhenPost(FormalPostModel post)
        {
            try
            {
                var user = System.Web.HttpContext.Current.User.Identity.GetUserName();
                if (ModelState.IsValid)
                {
                    var    ctx           = new ApplicationDbContext();
                    string email         = ctx.Users.Where(s => s.Id == user).Select(x => x.Email).SingleOrDefault();
                    string category      = ctx.Category.Where(x => x.Id == post.CategoryId).Select(x => x.Name).SingleOrDefault();
                    var    senderEmail   = new MailAddress("*****@*****.**", "Infoblog");
                    var    receiverEmail = new MailAddress(user);
                    var    password      = "******";
                    var    subject       = "Nytt blogginlägg";
                    var    body          = "Ett nytt inlägg om " + category + " har lagts till";
                    var    smtp          = new SmtpClient
                    {
                        Host                  = "smtp.gmail.com",
                        Port                  = 587,
                        EnableSsl             = true,
                        DeliveryMethod        = SmtpDeliveryMethod.Network,
                        UseDefaultCredentials = false,
                        Credentials           = new NetworkCredential(senderEmail.Address, password)
                    };
                    using (var mess = new MailMessage(senderEmail, receiverEmail)
                    {
                        Subject = subject,
                        Body = body
                    })
                    {
                        smtp.Send(mess);
                    }
                    return(View());
                }
            }


            catch (Exception)
            {
                ViewBag.Error = "Some Error";
            }
            return(View());
        }