private static MailContent createVendorReportEmail(Vendor vendor, String recipient, UserPurchase user, int categoryId)
        {
            MailContent mailContent = new MailContent();
            mailContent.MailFrom = vendorsContactEmail;
            mailContent.MailingAdress = recipient;
            QuestionnaireContext _context = new QuestionnaireContext();
            String sectionName = (categoryId != 0 ) ? _context.Categories.Where(x => x.Id == categoryId).First().Title
                : "General List of ‘Suggested Service Providers’";

            mailContent.Subject = "Referral from AFFI-FSMA Assessments – Request for Information";
            mailContent.HtmlText = "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" style=\"width: 600px;\">"
                + "<tbody><tr><td>"
                + "<img alt=\"\" src=\"http://affi-fsma.seneca.com/Content/img/affi_logo.jpg\" style=\"width: 100px; height: 73px;\" /></td>"
                + "<td><div><span style=\"font-size:18px;\"><strong>Responses from the AFFI &ndash; FSMA Self Assessment</strong></span></div>"
                + "<div><span style=\"font-size:18px;\"><strong>Request for Information to &ldquo;Suggested Service Provider&rdquo;</strong></span></div>"
                + "</td></tr></tbody></table><br/>"
                + "<span style=\"font-size:16px;\">TO: " + vendor.Name + "<br/><br/>"
                + "The following person has clicked on the “Contact Me” button while taking the AFFI – FSMA Self-Assessment:<br/><br/>"
                + "Name of person: " + user.Name + "<br/>"
                + "Facility name: " + user.FacilityName + "<br/>"
                + "Email address: " + user.Email + "<br/>"
                + "Date and time: " + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToShortTimeString() + "<br/><br/>"
                + "Section of the AFFI – FSMA Self-Assessment Report: " + sectionName + "<br/><br/>"
                + "By clicking on the Contact Me button the person anticipates that they will receive information about your company’s services related to the section of the FSMA Self-Assessment Report as referenced above.<br/><br/>"
                + "If you have any questions about this email, please “Reply” to this email with your questions.<br/><br/>"
                + "Thank you – <br/>"
                + "Seneca Corporation</span>";
            return mailContent;
        }
        public string CreateNewUser(SignUpModel model)
        {
            if (IsNewUserValid(model))
            {
                var salt = GenerateSequenceOfChars(20);
                // TODO: check facility name length
                var password = GeneratePassword(model.FacilityName);

                var user = new UserPurchase
                {
                    Email = model.Email,
                    PasswordSalt = salt,
                    Password = HashPassword(password, salt),
                    FacilityName = model.FacilityName,
                    UserRegistrationDate = DateTime.Now,
                    UserExpirationDate = DateTime.Now.AddMonths(6)
                };

                _context.UserPurchases.Add(user);
                _context.SaveChanges();

                return password;
            }

            return null;
        }
 public static MailContent createUserReportEmail(UserPurchase user, QuestionnaireReport report)
 {
     MailContent mailContent = new MailContent();
     mailContent.MailFrom = adminEmail;
     mailContent.MailingAdress = user.Email;
     mailContent.Subject = "FSMA Self Assessment Report for " + user.FacilityName;
     return mailContent;
 }
        private void sendEmails(Vendor vendor, UserPurchase user, int categoryId)
        {
            MailContent vendorMailContent = MailConfigurator.createVendorReport(vendor, user, categoryId);
            MailContent vendorAdminMailContent = MailConfigurator.createVendorAdminReport(vendor, user, categoryId);

            mailService.sendMail(vendorMailContent, true);
            mailService.sendMail(vendorAdminMailContent, true);
        }
        public ActionResult AddUser()
        {
            UserPurchase userPurchase = new UserPurchase();
            DateTime x = DateTime.Now;
            DateTime y = x.AddMonths(6).Date;

            userPurchase.UserExpirationDate = y;
            //userPurchase.ActivatorsEmail = User.Identity.Name;
            return View(userPurchase);
        }
        public QuestionnaireWithSelectedAnswersForUser(QuestionnaireWithSelectedAnswers questionniare, UserPurchase user)
        {
            this.Questionnaire = questionniare;

            UserData = new UserData();
            UserData.Email = user.Email;
            UserData.Name = user.Name;
            UserData.FacilityName = user.FacilityName;

            DemographicData = new DemographicDataContainer();
            DemographicData.SizeOfFacility = user.SizeOfFacility;
            DemographicData.IndustrialClassification = user.IndustrialClassification;
            DemographicData.AdditionalProductClassification = user.AdditionalProductClassification;
            DemographicData.AnotherProductClassification = user.AnotherProductClassification;

            SubmittedStatusForUser status = _context.SubmittedeStatusForUsers.SingleOrDefault(x => x.UserId == user.Id);
            WasEverSubmitted = (status != null);
            if (status != null)
            {
                lastSubmitted = status.SubmitedDate;
            }
        }
        public ActionResult AddUser(UserPurchase userPurchase)
        {
            UserRepository userRepository = new UserRepository();

            if (ModelState.IsValid)
            {
                var salt = "ururu";

                userPurchase.Password = UserRepository.HashPassword(userPurchase.Password.Trim(), salt);
                userPurchase.PasswordSalt = salt;
                userPurchase.Email = userPurchase.Email.ToLower().Trim();
                if (userPurchase.ActivatorsEmail != null)
                {
                    userPurchase.ActivatorsEmail = userPurchase.ActivatorsEmail.ToLower().Trim();
                }

                userPurchase.DateOfPurchase = DateTime.Now;
                userPurchase.UserRegistrationDate = DateTime.Now;

                //Check to make sure the combination of Email, Password, and Facilty is unique
                int existingUserCheck = _context.UserPurchases.Where(x => x.Email == userPurchase.Email && x.Password == userPurchase.Password && x.FacilityName == userPurchase.FacilityName).Count();

                if (existingUserCheck == 0)
                {
                    _context.UserPurchases.Add(userPurchase);
                    _context.SaveChanges();
                    return RedirectToAction("Index");
                }
                else
                {
                    ModelState.AddModelError("Email", "The combination of Email, Password, and Facility Name must be unique. ");
                }
            }

            return View(userPurchase);
        }
 public static MailContent createVendorReport(Vendor vendor, UserPurchase user, int categoryId)
 {
     return createVendorReportEmail(vendor, vendor.Email, user, categoryId);
 }
        public ActionResult Activate(PurchasedItemModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
                return Redirect("Index");

            string facilityName = model.Facility;
            string userName = model.Name;
            string email = model.Email;
            string dateOfPurchase = model.DateOfPurchase;
            List<PurchasedItem> purchasedItems = GetStoredPurchasedItems();
            if (purchasedItems == null)
            {
                return LogOutAndRedirectToLoginPage();
            }
            DateTime date = DateTime.Parse(dateOfPurchase);

            var purchasedItem = purchasedItems.Find(i => Math.Abs(i.DateOfPurchase.Subtract(date).TotalSeconds) < 1);

            if (purchasedItem != null)
            {
                var count = context.UserPurchases.Where(u => EntityFunctions.DiffSeconds(u.DateOfPurchase, purchasedItem.DateOfPurchase) < 1).Count();

                //if(count != 0)
                //    return Content("<html><head></head><body><h1>Error! This item already activated </h1></body></html>");

                var salt = GenerateSequenceOfChars(20);
                // TODO: check facility name length
                var password = GeneratePassword(facilityName);

                //TODO: move following code to method
                var userPurchase = new UserPurchase();

                userPurchase.Email = email;
                userPurchase.ActivatorsEmail = User.Identity.Name;
                userPurchase.Name = userName;
                userPurchase.PasswordSalt = salt;
                userPurchase.Password = HashPassword(password, salt);
                userPurchase.FacilityName = facilityName;
                userPurchase.DateOfPurchase = purchasedItem.DateOfPurchase;
                userPurchase.UserRegistrationDate = DateTime.Now;
                userPurchase.UserExpirationDate = DateTime.Now.AddMonths(6);

                context.UserPurchases.Add(userPurchase);
                context.SaveChanges();

                HttpContext.Session["lastPurchase"] = userPurchase;
                HttpContext.Session["lastPurchasePassword"] = password;

                //Send an email to user
                IMailService mailService = new SmptMailService(System.Configuration.ConfigurationManager.AppSettings["smtpServer"]);

                MailContent mailContent = new MailContent();
                mailContent.MailFrom = "*****@*****.**";
                mailContent.MailingAdress = userPurchase.Email;
                mailContent.Subject = "AFFI FSMA Self-Assessment Login Credentials and Instructions";

                mailContent.HtmlText = "<html><head></head><body>Dear " + userPurchase.Name + ":<br/>" +
                "<p>When you want to begin your FSMA Self-Assessment for your facility (<b>" + userPurchase.FacilityName + "</b>), you can just click on the Login link below.</p>" +
                "<p>Your login credentials for the FSMA Self-Assessment are: </p>" +
                "<p><b>Userid: </b>" + userPurchase.Email + "</p>" +
                "<p><b>Password: </b>" + password + "</p>" +
                "<p>If you have any questions regarding the FSMA Self-Assessment Tool, please contact AFFI Vice President of Regulatory and Technical Affairs Dr. Donna Garren at <a href=\"mailto:[email protected]\">[email protected]</a> or (703) 821-0770.</p>" +
                "<p>Thank you.</p>" +
                "<p><a href=\"http://affi-fsma.seneca.com/signIn\" target=\"_blank\">Click Here to Login</a></p></body></html>";

                mailContent.PlainText = mailContent.HtmlText;
                mailService.sendMail(mailContent);

                //And if needed - to a person who had activated the purchase (if not same person)
                if (userPurchase.Email != userPurchase.ActivatorsEmail)
                {
                    mailContent.MailingAdress = userPurchase.ActivatorsEmail;
                    mailService.sendMail(mailContent);
                }

                return Redirect("Index");
            }
            else
            {
                return Content("<html><head></head><body><h1>Error!Can't find purchasedItem</h1></body></html>");
            }
        }
Exemplo n.º 10
0
        private UserPurchase createUserPurchaseByPurchasedItem(PurchasedItem purchasedItem)
        {
            var salt = GenerateSequenceOfChars(20);
            // TODO: check facility name length
            var password = GeneratePassword(purchasedItem.Facility);

            var userPurchase = new UserPurchase();

            userPurchase.Email = purchasedItem.Email;
            userPurchase.Name = purchasedItem.Name;
            userPurchase.PasswordSalt = salt;
            userPurchase.Password = HashPassword(password, salt);
            userPurchase.FacilityName = purchasedItem.Facility;
            userPurchase.DateOfPurchase = purchasedItem.DateOfPurchase;
            userPurchase.UserRegistrationDate = DateTime.Now;
            userPurchase.UserExpirationDate = DateTime.Now.AddMonths(6);

            return userPurchase;
        }
Exemplo n.º 11
0
        private DashboardItem createDasboardItemByUserPurchase(UserPurchase userPurchase)
        {
            var dashboardItem = new DashboardItem();

            dashboardItem.Email = userPurchase.Email;
            dashboardItem.Name = userPurchase.Name;
            dashboardItem.Facility = userPurchase.FacilityName;
            dashboardItem.DateOfPurchase = userPurchase.DateOfPurchase;
            dashboardItem.UserRegistrationDate = userPurchase.UserRegistrationDate;
            dashboardItem.UserExpirationDate = userPurchase.UserExpirationDate;

            if (dashboardItem.UserExpirationDate > DateTime.Now)
                dashboardItem.status = PurchaseStatus.Active;
            else
                dashboardItem.status = PurchaseStatus.Expired;

            return dashboardItem;
        }
        public ActionResult EditUser(UserPurchase userPurchase)
        {
            UserPurchase temp = _context.UserPurchases.First(x => x.Id == userPurchase.Id);
            UserRepository userRepository = new UserRepository();

            if (ModelState.IsValid)
            {
                String oldPassword = temp.Password;

                var salt = "ururu";
                var pw = UserRepository.HashPassword(userPurchase.Password.Trim(), salt);

                //If password changed
                if (userPurchase.Password != oldPassword)
                {
                    temp.Password = pw;
                    temp.PasswordSalt = salt;
                }

                temp.UserRegistrationDate = DateTime.Now;
                temp.UserExpirationDate = userPurchase.UserExpirationDate;
                temp.ActivatorsEmail = User.Identity.Name;
                temp.Name = userPurchase.Name;
                temp.Email = userPurchase.Email.ToLower().Trim();
                if (userPurchase.ActivatorsEmail != null)
                {
                    temp.ActivatorsEmail = userPurchase.ActivatorsEmail.ToLower().Trim();
                }
                else
                {
                    temp.ActivatorsEmail = null;
                }
                temp.FacilityName = userPurchase.FacilityName;
                temp.IsAdmin = userPurchase.IsAdmin;

                //Check to make sure the combination of Email, Password, and Facilty is unique
                int existingUserCheck = _context.UserPurchases.Where(x => x.Email == userPurchase.Email && x.Password == pw && x.FacilityName == userPurchase.FacilityName && x.Id != userPurchase.Id).Count();

                if (existingUserCheck == 0)
                {
                    _context.SaveChanges();
                    return RedirectToAction("Index");
                }
                else
                {
                    ModelState.AddModelError("Email", "The combination of Email, Password, and Facility Name must be unique. ");
                }
            }

            return View(userPurchase);
        }
 public QuestionnaireReportForUser(QuestionnaireReport report, UserPurchase user)
 {
     this.Report = report;
     this.UserPurchase = user;
 }
Exemplo n.º 14
0
 public UserDetails(UserPurchase user, QuestionnaireReport questionnaireReport)
 {
     this.UserPurchase = user;
     this.QuestionnaireReport = questionnaireReport;
 }