예제 #1
0
        public ActionResult Administrator(FormCollection collection)
        {
            UserAccountClient uac     = new UserAccountClient();
            UserAccount       account = uac.GetByPartitionAndRowKey(UserAccountClient.GetPartitionKeyForEmail(collection["email"].ToLower()), collection["email"].ToLower());

            if (account == null)
            {
                uac.AddNewItem(new UserAccount {
                    PartitionKey = UserAccountClient.GetPartitionKeyForEmail(collection["email"].ToLower()), RowKey = collection["email"].ToLower(), FirstName = collection["firstname"], LastName = collection["lastname"], Email = collection["email"], Password = collection["password"], ProfileType = "administrator"
                });

                //AdminProfileClient apc = new AdminProfileClient();
                //apc.AddNewItem(new AdminProfile { RowKey = collection["email"].ToLower(), PhoneNumber = collection["phonenumber"] });

                AdminAccountClient aac = new AdminAccountClient();
                aac.AddNewItem(new AdminAccount {
                    RowKey = collection["email"].ToLower(), PhoneNumber = collection["phonenumber"], PhoneExtension = collection["extension"]
                });
            }
            else
            {
                ViewBag.ErrorMessage = "There is an account already associated with this email. Please log in instead.";
                return(View());
            }

            SendVerificationEmail(collection["email"].ToLower(), collection["firstname"]);

            EmailManager emailManager = new EmailManager();
            string       str          = "<p>Full name: " + collection["firstname"] + " " + collection["lastname"] + "</p><p>Email: " + collection["email"] + "</p><p>Phone Number: " + collection["phonenumber"] + "</p><p>" + collection["extension"] + "</p>";

            emailManager.SendMail("*****@*****.**", "Admin", "*****@*****.**", "HS Admin", str);
            return(RedirectToAction("ThankYou"));
        }
 public ActionResult Index(IEnumerable <string> firstname, IEnumerable <string> lastname, IEnumerable <string> email)
 {
     if (AuthTokens[0] == "demo")
     {
         ViewBag.DemoNextStep = NextStep("!");
         return(View());
     }
     if (firstname != null && lastname != null && email != null)
     {
         if (firstname.Count() == lastname.Count() && firstname.Count() == email.Count())
         {
             CounselorInviteClient cic   = new CounselorInviteClient();
             AdminAccountClient    aac   = new AdminAccountClient();
             UserAccountClient     uac   = new UserAccountClient();
             AdminAccount          admin = aac.GetByPartitionAndRowKey("admin", AuthTokens[1].ToLower());
             UserAccount           user  = uac.GetByPartitionAndRowKey(UserAccountClient.GetPartitionKeyForEmail(AuthTokens[1].ToLower()), AuthTokens[1].ToLower());
             string school = admin.School;
             for (var i = 0; i < firstname.Count(); i++)
             {
                 string emailLower = email.ElementAt(i).ToLower();
                 string guid       = ShortGuidGenerator.NewGuid();
                 cic.AddNewItem(new CounselorInvite {
                     FirstName = firstname.ElementAt(i), LastName = lastname.ElementAt(i), Email = emailLower, School = school, RowKey = guid
                 });
                 SendInviteEmail(email.ElementAt(i).ToLower(), firstname.ElementAt(i) + " " + lastname.ElementAt(i), user.FirstName + " " + user.LastName, guid);
             }
             return(View());
         }
     }
     ViewBag.ErrorMessage = "error";
     return(View());
 }
        public ActionResult SubmitSchool(FormCollection collection)
        {
            if (AuthTokens[0] == "demo")
            {
                ViewBag.DemoNextStep = NextStep("!");
                return(View());
            }
            string              admin        = AuthTokens[1];
            AdminAccountClient  aac          = new AdminAccountClient();
            AdminAccount        adminAccount = aac.GetByPartitionAndRowKey("admin", admin);
            UserAccountClient   uac          = new UserAccountClient();
            UserAccount         user         = uac.GetByPartitionAndRowKey(UserAccountClient.GetPartitionKeyForEmail(admin), admin);
            string              rowkey       = Regex.Replace(collection["schoolphone"], @"[^0-9]", "");
            string              phone        = rowkey.Substring(0, 3) + "-" + rowkey.Substring(3, 3) + "-" + rowkey.Substring(6);
            PendingSchoolClient psc          = new PendingSchoolClient();

            psc.AddNewItem(new PendingSchool {
                Admin = admin, SchoolName = collection["schoolname"], Address = collection["schooladdress1"], City = collection["schoolcity"], State = collection["schoolstate"], ZipCode = collection["schoolzip"], OfficialID = collection["schoolid"], PhoneNumber = phone, RowKey = rowkey
            });
            adminAccount.SchoolSelected = true;
            adminAccount.School         = rowkey;
            adminAccount.RequestStatus  = "";
            aac.Update(adminAccount);

            EmailManager emailManager = new EmailManager();
            string       body         = "<div>Admin name: " + user.FirstName + " " + user.LastName + "</div><div>Admin phone number and extension:" + adminAccount.PhoneNumber + " x " + adminAccount.PhoneExtension + "</div><div>Admin Email: " + adminAccount.RowKey + "</div>" +
                                        "<div>School name: " + collection["schoolname"] + "</div><div>School address" + collection["schooladdress1"] + " " + collection["schoolcity"] + " " + collection["schoolstate"] + " " + collection["schoolzip"] + "</div>" +
                                        "<div>School phone number: " + phone + "</div>";

            emailManager.SendMail("*****@*****.**", "Admin", "*****@*****.**", "School request", body);

            return(RedirectToAction("SchoolSubmitted"));
        }
 public ActionResult Groups(IEnumerable <string> year, IEnumerable <string> grade, IEnumerable <string> counselor, IEnumerable <string> groupname)
 {
     if (AuthTokens[0] == "demo")
     {
         ViewBag.DemoNextStep = NextStep("!");
         return(View());
     }
     if (year != null && grade != null && counselor != null && groupname != null)
     {
         if (year.Count() == grade.Count() && year.Count() == counselor.Count() && year.Count() == groupname.Count())
         {
             AdminAccountClient aac    = new AdminAccountClient();
             AccessCodeClient   acc    = new AccessCodeClient();
             AdminAccount       admin  = aac.GetByPartitionAndRowKey("admin", AuthTokens[1].ToLower());
             string             school = admin.School;
             for (var i = 0; i < year.Count(); i++)
             {
                 acc.AddNewItem(new AccessCode {
                     RowKey = ShortGuidGenerator.NewGuid(), Code = PinCodeGenerator.NewPin(), Year = year.ElementAt(i), Grade = grade.ElementAt(i), Counselor = counselor.ElementAt(i), GroupName = groupname.ElementAt(i), School = school
                 });
             }
             ViewBag.CurrentYear = AccessCodeClient.CurrentGradYear();
             return(View());
         }
     }
     ViewBag.ErrorMessage = "error";
     ViewBag.CurrentYear  = AccessCodeClient.CurrentGradYear();
     return(View());
 }
        public ActionResult SubmitSchool()
        {
            if (AuthTokens[0] == "demo")
            {
                ViewBag.DemoNextStep = NextStep("!");
            }
            AdminAccountClient aac          = new AdminAccountClient();
            AdminAccount       adminAccount = aac.GetByPartitionAndRowKey("admin", AuthTokens[1]);

            if (adminAccount.SchoolSelected)
            {
                return(RedirectToAction("Index"));
            }
            return(View());
        }
        public ActionResult ChangeRole(string counselor)
        {
            if (AuthTokens[0] == "demo")
            {
                return(RedirectToAction("Index", "AdminPortal"));;
            }
            string currentAdminEmail = AuthTokens[1];

            AdminAccountClient     aac = new AdminAccountClient();
            CounselorAccountClient cac = new CounselorAccountClient();
            UserAccountClient      uac = new UserAccountClient();
            SchoolAccountClient    sac = new SchoolAccountClient();

            AdminAccount     admin            = aac.GetByPartitionAndRowKey("admin", currentAdminEmail);
            CounselorAccount counselorAccount = cac.GetByPartitionAndRowKey("counselor", counselor);
            UserAccount      currentAdmin     = uac.GetByPartitionAndRowKey(UserAccountClient.GetPartitionKeyForEmail(currentAdminEmail), currentAdminEmail);
            UserAccount      newAdmin         = uac.GetByPartitionAndRowKey(UserAccountClient.GetPartitionKeyForEmail(counselor), counselor);
            SchoolAccount    school           = sac.GetByPartitionAndRowKey("school", admin.School);

            if (admin != null && counselorAccount != null && currentAdmin != null && newAdmin != null && school != null)
            {
                aac.AddNewItem(new AdminAccount {
                    RowKey = counselor, PhoneNumber = counselorAccount.PhoneNumber, PhoneExtension = counselorAccount.PhoneExtension, School = school.RowKey, SchoolSelected = true, ConnectionToSchoolConfirmed = true
                });
                cac.AddNewItem(new CounselorAccount {
                    RowKey = currentAdminEmail, PhoneNumber = admin.PhoneNumber, PhoneExtension = admin.PhoneExtension, School = school.RowKey
                });
                currentAdmin.ProfileType = "counselor";
                uac.Update(currentAdmin);
                newAdmin.ProfileType = "administrator";
                uac.Update(newAdmin);
                school.Admin = counselor;
                sac.Update(school);
                aac.Delete(admin);
                cac.Delete(counselorAccount);
            }
            return(RedirectToAction("LogOut", "Account"));
        }
예제 #7
0
        public ActionResult Counselor(FormCollection collection)
        {
            string                adminEmail = "";
            UserAccountClient     uac        = new UserAccountClient();
            CounselorInviteClient cic        = new CounselorInviteClient();
            SchoolAccountClient   sac        = new SchoolAccountClient();
            UserAccount           account    = uac.GetByPartitionAndRowKey(UserAccountClient.GetPartitionKeyForEmail(collection["email"].ToLower()), collection["email"].ToLower());
            CounselorInvite       invite     = cic.GetByPartitionAndRowKey("invite", collection["invite"]);
            SchoolAccount         school     = sac.GetByPartitionAndRowKey("school", collection["school"]);

            if (invite != null)
            {
                if (invite.Email == collection["email"].ToLower())
                {
                    if (account == null)
                    {
                        uac.AddNewItem(new UserAccount {
                            PartitionKey = UserAccountClient.GetPartitionKeyForEmail(collection["email"].ToLower()), RowKey = collection["email"].ToLower(), FirstName = collection["firstname"], LastName = collection["lastname"], Email = collection["email"], Password = collection["password"], ProfileType = "counselor", EmailConfirmed = true
                        });
                        CounselorAccountClient сac   = new CounselorAccountClient();
                        AdminAccountClient     aac   = new AdminAccountClient();
                        AdminAccount           admin = aac.GetBySchool(collection["school"]);
                        if (admin != null)
                        {
                            adminEmail = admin.RowKey;
                        }
                        сac.AddNewItem(new CounselorAccount {
                            RowKey = collection["email"].ToLower(), PhoneNumber = collection["phonenumber"], PhoneExtension = collection["extension"], School = collection["school"]
                        });
                        cic.Delete(invite);
                    }
                    else
                    {
                        ViewBag.Invite       = invite;
                        ViewBag.ErrorMessage = "There is an account already associated with this email. Please log in instead.";
                        return(View());
                    }
                }
                else
                {
                    ViewBag.Invite     = invite;
                    ViewBag.EmailMatch = "Email has to match";
                    return(View());
                }
            }
            else
            {
                return(RedirectToAction("Index", "Home"));
            }

            string sessionkey = ClientSession.GetClientSessionKey("user", collection["email"].ToLower(), collection["firstname"] + " " + collection["lastname"], "counselor");

            Response.Cookies["sessionkey"].Value        = sessionkey;
            Response.Cookies["sessionkey"].Expires      = DateTime.UtcNow.AddDays(7);
            Response.Cookies["sessionusername"].Value   = collection["email"].ToLower();
            Response.Cookies["sessionusername"].Expires = DateTime.UtcNow.AddDays(7);
            Response.Cookies["cbnvm"].Value             = "1";
            Response.Cookies["cbnvm"].Expires           = DateTime.UtcNow.AddDays(7);
            SendCongratulationsEmailToCounselor(collection["email"], collection["firstname"] + " " + collection["lastname"]);
            SendUpdateEmailToAdmin(adminEmail, collection["firstname"] + " " + collection["lastname"]);

            EmailManager emailManager = new EmailManager();
            string       schooStr     = "";

            if (school != null)
            {
                schooStr = "<p>School name: " + school.SchoolName + "</p>";
            }
            string str = "<p>Full name: " + collection["firstname"] + " " + collection["lastname"] + "</p><p>Email: " + collection["email"] + "</p><p>Phone Number: " + collection["phonenumber"] + "</p><p>" + collection["extension"] + "</p>" + schooStr;

            emailManager.SendMail("*****@*****.**", "Admin", "*****@*****.**", "HS Counselor", str);
            TempData["counselor"] = true;
            return(RedirectToAction("Index", "CounselorPortal"));
        }
        public HttpResponse AddSchoolPost(string rowkey)
        {
            if (AuthTokens[0] == "demo")
            {
                Response.ContentType = "application/json";
                Response.Write("{\"result\": \"done\"}");
                Response.End();
                return(null);
            }

            string response            = "";
            SchoolAccountClient sac    = new SchoolAccountClient();
            SchoolAccount       school = sac.GetByPartitionAndRowKey("school", rowkey);

            if (school != null)
            {
                AdminAccountClient aac   = new AdminAccountClient();
                AdminAccount       admin = aac.GetByPartitionAndRowKey("admin", AuthTokens[1].ToLower());
                if (school.Admin != null && school.Admin != "")
                {
                    response = "{\"result\": \"exist\"}";
                }
                else
                {
                    if (admin.SchoolSelected && !admin.ConnectionToSchoolConfirmed)
                    {
                        response = "{\"result\": \"not confirm\"}";
                    }
                    else if (admin.ConnectionToSchoolConfirmed)
                    {
                        response = "{\"result\": \"dup\"}";
                    }
                    else
                    {
                        admin.School         = school.RowKey;
                        admin.SchoolSelected = true;
                        aac.Update(admin);
                        UserAccountClient uac          = new UserAccountClient();
                        UserAccount       user         = uac.GetByPartitionAndRowKey(UserAccountClient.GetPartitionKeyForEmail(admin.RowKey), admin.RowKey);
                        EmailManager      emailManager = new EmailManager();
                        string            body         = "<div>Admin name: " + user.FirstName + " " + user.LastName + "</div><div>Admin phone number and extension:" + admin.PhoneNumber + " x " + admin.PhoneExtension + "</div><div>Admin Email: " + admin.RowKey + "</div>" +
                                                         "<div>School name: " + school.SchoolName + "</div><div>School address" + school.Address + " " + school.City + " " + school.State + " " + school.ZipCode + "</div>" +
                                                         "<div>School phone number: " + school.PhoneNumber + "</div>";
                        emailManager.SendMail("*****@*****.**", "Admin", "*****@*****.**", "Admin request", body);
                        response = "{\"result\": \"done\"}";
                    }
                }
            }
            else
            {
                response = "{\"result\": \"error\"}";
            }



            //if (school != null)
            //{
            //    //AdminProfileClient apc = new AdminProfileClient();
            //    //AdminProfile admin = apc.GetByPartitionAndRowKey("adminProfile", AuthTokens[1].ToLower());
            //    if (admin != null)
            //    {
            //        TeacherToSchoolConnectionClient ttscc = new TeacherToSchoolConnectionClient();
            //        TeacherToSchoolConnection connection = ttscc.GetByPartitionAndRowKey(rowkey, admin.RowKey);
            //        SchoolToTeacherConnectionClient sttcc = new SchoolToTeacherConnectionClient();
            //        SchoolToTeacherConnection s2tconnection = sttcc.GetByPartitionAndRowKey(admin.RowKey, rowkey);
            //        if (connection == null)
            //        {
            //            ttscc.AddNewItem(new TeacherToSchoolConnection { PartitionKey = rowkey, RowKey = admin.RowKey });
            //            sttcc.AddNewItem(new SchoolToTeacherConnection { PartitionKey = admin.RowKey, RowKey = rowkey });
            //            response = "{\"result\": \"done\"}";
            //        }
            //        else
            //        {
            //            response = "{\"result\": \"already exist\"}";
            //        }
            //    }
            //    else
            //    {
            //        response = "{\"result\": \"fail\"}";
            //    }
            //}
            //else
            //{
            //    response = "{\"result\": \"fail\"}";
            //}
            Response.ContentType = "application/json";
            Response.Write(response);
            Response.End();
            return(null);
        }
        public ActionResult LogIn(FormCollection collection)
        {
            string            accessurl = collection["accessurl"];
            UserAccountClient uac       = new UserAccountClient();
            UserAccount       account   = uac.Logon(collection["email"].ToLower(), collection["password"]);

            if (account == null)
            {
                if (accessurl != null)
                {
                    ViewBag.AccessCode = accessurl;
                }
                ViewBag.InvalidEmail = collection["email"].ToLower();
                return(View());
            }
            else if (account.EmailConfirmed == false)
            {
                ViewBag.VerifyEmail             = collection["email"].ToLower();
                ViewBag.ResendConfirmationEmail = true;
                return(View());
            }
            if (account.ProfileType == "su")
            {
                SaveSessionCookie(collection["email"].ToLower(), account.FirstName + " " + account.LastName, account.ProfileType);
            }
            else if (account.ProfileType == "administrator")
            {
                AdminAccountClient aac   = new AdminAccountClient();
                AdminAccount       admin = aac.GetByPartitionAndRowKey("admin", account.RowKey);
                SaveSessionCookie(collection["email"].ToLower(), account.FirstName + " " + account.LastName, account.ProfileType);
                if (admin.SchoolSelected)
                {
                    return(RedirectToAction("Index", "AdminPortal"));
                }
                else
                {
                    return(RedirectToAction("AddSchool", "AdminPortal"));
                }
            }
            else if (account.ProfileType == "counselor")
            {
                CounselorAccountClient cac       = new CounselorAccountClient();
                CounselorAccount       counselor = cac.GetByPartitionAndRowKey("counselor", account.RowKey);
                if (counselor.Active)
                {
                    SaveSessionCookie(collection["email"].ToLower(), account.FirstName + " " + account.LastName, account.ProfileType);
                    return(RedirectToAction("Index", "CounselorPortal"));
                }
                else
                {
                    ViewBag.ErrorMessage = "Not Active";
                    return(View());
                }
            }
            else if (account.ProfileType == "student")
            {
                StudentAccountClient sac        = new StudentAccountClient();
                StudentAccount       student    = sac.GetByPartitionAndRowKey(StudentAccountClient.GetPartitionKeyForEmail(account.Email), account.Email);
                AccessCodeClient     acc        = new AccessCodeClient();
                AccessCode           accessCode = acc.GetByPartitionAndRowKey("accesscode", accessurl);
                if (accessCode != null && accessCode.Year == AccessCodeClient.CurrentGradYear())
                {
                    if (student.Active)
                    {
                        if (student.School != accessCode.School)
                        {
                            TempData["activeschool"] = true;
                        }
                        else if (student.Year == accessCode.Year)
                        {
                            TempData["sameyear"] = true;
                        }
                        else
                        {
                            student.Year               = accessCode.Year;
                            student.Grade              = accessCode.Grade;
                            student.Counselor          = accessCode.Counselor;
                            student.GroupName          = accessCode.GroupName;
                            student.AssessmentComplete = false;
                            sac.Update(student);
                        }
                    }
                    else
                    {
                        if (student.School != accessCode.School)
                        {
                            student.School             = accessCode.School;
                            student.Year               = accessCode.Year;
                            student.Grade              = accessCode.Grade;
                            student.Counselor          = accessCode.Counselor;
                            student.GroupName          = accessCode.GroupName;
                            student.AssessmentComplete = false;
                            sac.Update(student);
                        }
                        else
                        {
                            TempData["inactive"] = true;
                        }
                    }
                }
                else
                {
                    TempData["invalid"] = true;
                }
                SaveSessionCookie(collection["email"].ToLower(), account.FirstName + " " + account.LastName, account.ProfileType);
                //StudentProfileClient spc = new StudentProfileClient();
                //StudentProfile student = spc.GetByPartitionAndRowKey(StudentProfileClient.GetPartitionKeyForEmail(account.Email), account.Email);
                Response.Cookies["firstname"].Value   = account.FirstName;
                Response.Cookies["firstname"].Expires = DateTime.UtcNow.AddDays(7);
                Response.Cookies["lastname"].Value    = account.LastName;
                Response.Cookies["lastname"].Expires  = DateTime.UtcNow.AddDays(7);
                Response.Cookies["email"].Value       = account.Email;
                Response.Cookies["email"].Expires     = DateTime.UtcNow.AddDays(7);
                Response.Cookies["gender"].Value      = student.Gender;
                Response.Cookies["gender"].Expires    = DateTime.UtcNow.AddDays(7);
                Response.Cookies["clr"].Value         = "1";
                Response.Cookies["clr"].Expires       = DateTime.UtcNow.AddDays(7);
                Response.Cookies["cbnvm"].Value       = "1";
                Response.Cookies["cbnvm"].Expires     = DateTime.UtcNow.AddDays(7);

                AssessmentDimensionClient adc = new AssessmentDimensionClient();
                AssessmentInterestClient  aic = new AssessmentInterestClient();

                //AssessmentDimensionsRatingClient adrc = new AssessmentDimensionsRatingClient();
                //AssessmentInterestRatingClient airc = new AssessmentInterestRatingClient();
                JavaScriptSerializer      jss = new JavaScriptSerializer();
                List <AssessmentInterest> importantThingRatings = new List <AssessmentInterest>(aic.GetAllCurrentByStudent(student.School, account.RowKey, student.Year, student.Grade));
                //List<AssessmentInterestRating> importantThingRatings = new List<AssessmentInterestRating>(airc.GetAllBySchoolAndStudent(student.School, account.RowKey));
                Response.Cookies["interests"].Value   = jss.Serialize(importantThingRatings.Where(x => x.Value == "1").Select(x => x.Interest).ToList());
                Response.Cookies["interests"].Expires = DateTime.UtcNow.AddDays(7);
                for (var i = 0; i < dimensions.Length; i++)
                {
                    //AssessmentDimensionsRating dimensionsRating = adrc.GetByPartitionAndRowKey(student.School, account.Email + dimensions[i]);
                    AssessmentDimension dimensionsRating = adc.GetByPartitionAndRowKey(student.School, account.Email + student.Year + student.Grade + dimensions[i]);
                    if (dimensionsRating != null)
                    {
                        Response.Cookies[dimensions[i]].Value   = dimensionsRating.Value;
                        Response.Cookies[dimensions[i]].Expires = DateTime.UtcNow.AddDays(7);
                        if (i == 0)
                        {
                            Response.Cookies["question1"].Value   = (dimensionsRating.Misc != null ? dimensionsRating.Misc : dimensionsRating.Value);
                            Response.Cookies["question1"].Expires = DateTime.UtcNow.AddDays(7);
                        }
                    }
                }
                return(RedirectToAction("Index", "StudentPortal"));
            }
            return(RedirectToAction("Index", "Home"));
        }