Example #1
0
        public MvcMailMessage SubmitValveActuatorRequest(ValveActuatorRequestViewModel model, string email)
        {
            ViewData = new System.Web.Mvc.ViewDataDictionary(model);

            return(Populate(x => {
                x.Subject = "VaWorks Component Request from " + model.UserName;
                x.ViewName = "SubmitValveActuatorRequest";
                x.To.Add(email);
            }));
        }
Example #2
0
        public ActionResult SubmitComponentRequest(ValveActuatorRequestViewModel viewModel, HttpPostedFileBase file)
        {
            var user = Database.Users.Find(User.Identity.GetUserId());

            if (user != null)
            {
                viewModel.UserName    = user.Name;
                viewModel.UserEmail   = user.Email;
                viewModel.UserCompany = user.Organization.Name;

                var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(Database));

                var admins = from role in roleManager.Roles
                             where role.Name == "System Administrator"
                             from u in role.Users
                             select u.UserId;

                string message = $"{user.Name} has requested a new {viewModel.ValveOrActuator} be added to the system." +
                                 $"{viewModel.Manufacturer} {viewModel.Model} { viewModel.Size}";
                IUserMailer mailer = new UserMailer();
                foreach (var admin in admins)
                {
                    Database.SystemMessages.Add(new SystemMessage()
                    {
                        UserId   = admin,
                        DateSent = DateTimeOffset.Now,
                        Message  = message
                    });

                    // send the email
                    var a = Database.Users.Where(u => u.Id == admin).FirstOrDefault();

                    var msg = mailer.SubmitValveActuatorRequest(viewModel, a.Email);
                    if (file != null)
                    {
                        msg.Attachments.Add(new System.Net.Mail.Attachment(file.InputStream, file.FileName));
                    }
                    msg.Send();
                }
            }

            return(RedirectToAction("Index"));
        }