public void IsUserAuthorizedTest()
        {
            var dataAccess = new AccessService();
            // Make sure that these domains are not there
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));

            Guid userId = dataAccess.GetUserID("*****@*****.**");
            Assert.IsTrue(userId == Guid.Empty);

            // Make sure that you can add users
            Assert.IsTrue(dataAccess.AddUser("*****@*****.**", 0));
            Assert.IsTrue(dataAccess.AddUser("*****@*****.**", 1));
            Assert.IsTrue(dataAccess.AddUser("*****@*****.**", 2));

            // Check that the users are actually in the DB
            Assert.IsTrue(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsTrue(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsTrue(dataAccess.IsUserAuthorized("*****@*****.**"));

            Guid userIdCheck2 = dataAccess.GetUserID("*****@*****.**");
            Assert.IsFalse(userIdCheck2 == Guid.Empty);

            // Delete users
            Assert.IsTrue(dataAccess.DeleteUser("*****@*****.**"));
            Assert.IsTrue(dataAccess.DeleteUser("*****@*****.**"));
            Assert.IsTrue(dataAccess.DeleteUser("*****@*****.**"));
        }
        /// <summary>
        ///  Get function ,to get all the projects for specific vertical from data access layer.
        ///  It been used in project-list.js to show the project names on a ProjectList.html.
        /// </summary>
        /// <param name="VerticalId">VerticalId (int)index defined in the Verticals enum</param>
        /// <returns>List of Project objects in format of json</returns>
        public string GetVerticalProjects(int VerticalId)
        {
            AccessService DataAccess = new AccessService();
            var passProjectList = new List<StatusUpdatesModel.Project>();
            try {
                if (this.Session["username"].ToString() != null && DataAccess.IsUserAuthorized(this.Session["username"].ToString()))
                {
                   // AccessService DataAccess = new AccessService();
                    var VerticalProjects = DataAccess.GetAllProjectsForVertical(VerticalId);

                    foreach (StatusUpdatesModel.Project project in VerticalProjects)
                    {
                        StatusUpdatesModel.Project tempProject = new StatusUpdatesModel.Project();
                        tempProject.LatestUpdate = project.LatestUpdate;
                        tempProject.ProjectID = project.ProjectID;
                        tempProject.ProjectName = project.ProjectName;
                        passProjectList.Add(tempProject);

                    }
                }
            }
            catch (Exception)
            {
                // Probably not the best way to handle this
                string empty = JsonConvert.SerializeObject(passProjectList);
                return empty;
            }
            string result = JsonConvert.SerializeObject(passProjectList);
            return result;
        }
        public void GetUserIDTest()
        {
            var dataAccess = new AccessService();
            // Add a user
            Assert.IsTrue(dataAccess.AddUser("*****@*****.**", 0));

            // Check that the users are actually in the DB
            Assert.IsTrue(dataAccess.IsUserAuthorized("*****@*****.**"));

            // Here's the actual test - the GUID should not be empty
            Guid userIdCheck = dataAccess.GetUserID("*****@*****.**");
            Assert.IsFalse(userIdCheck == Guid.Empty);

            // Now delete and check again - if that was really the user's id, then it should return false after deleting
            Assert.IsTrue(dataAccess.DeleteUser("*****@*****.**"));
            Guid userIdCheck2 = dataAccess.GetUserID("*****@*****.**");
            Assert.IsTrue(userIdCheck2 == Guid.Empty);

        }
        public void UpdateUserEmailTest2()
        {
            var dataAccess = new AccessService();
            // Make sure that these domains are not there
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));

            // Make sure these updated email addresses do not exist
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));

            Guid userId = dataAccess.GetUserID("*****@*****.**");
            Assert.IsTrue(userId == Guid.Empty);

            // Make sure that you can add users
            Assert.IsTrue(dataAccess.AddUser("*****@*****.**", 0));
            Assert.IsTrue(dataAccess.AddUser("*****@*****.**", 1));
            Assert.IsTrue(dataAccess.AddUser("*****@*****.**", 2));

            // Check that the users are actually in the DB
            Assert.IsTrue(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsTrue(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsTrue(dataAccess.IsUserAuthorized("*****@*****.**"));

            Guid userIdCheck2 = dataAccess.GetUserID("*****@*****.**");
            Assert.IsFalse(userIdCheck2 == Guid.Empty);

            // Make sure these updated email addresses do not exist
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));

            // Now we are going to update these users - this is the main part
            Assert.IsTrue(dataAccess.UpdateUserEmail("*****@*****.**", "*****@*****.**"));
            Assert.IsTrue(dataAccess.UpdateUserEmail("*****@*****.**", "*****@*****.**"));
            // Update it in the overloaded way
            Guid userId3 = dataAccess.GetUserID("*****@*****.**");
            Assert.IsTrue(dataAccess.UpdateUserEmail(userId3, "*****@*****.**"));

            // Make sure that these domains are not there anymore
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsFalse(dataAccess.IsUserAuthorized("*****@*****.**"));

            // Make sure these updated email addresses exist
            Assert.IsTrue(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsTrue(dataAccess.IsUserAuthorized("*****@*****.**"));
            Assert.IsTrue(dataAccess.IsUserAuthorized("*****@*****.**"));

            // Clean up users
            Assert.IsTrue(dataAccess.DeleteUser("*****@*****.**"));
            Assert.IsTrue(dataAccess.DeleteUser("*****@*****.**"));
            Assert.IsTrue(dataAccess.DeleteUser("*****@*****.**"));

        }
        public void GetUserRoleTest()
        {//__this covers AddUser, GetUserRole, DeleteUser, UpdateUserRole
            string emailAddy = "*****@*****.**";
            //string emailAddy2 = "*****@*****.**";
            int userRole = 1;
            AccessService dataAccess = new AccessService();
            try//__make sure we can back out in case of errors
            {

                bool userAdded = dataAccess.AddUser(emailAddy, userRole);

                //__test adding new user
                Assert.IsTrue(userAdded, "AddUser returned false for email " + emailAddy + ", UserRole=" + userRole);
                int recordedRole = dataAccess.GetUserRole(emailAddy);
                Assert.AreEqual(userRole, recordedRole);

                int newRole = 0;
                dataAccess.UpdateUserRole(emailAddy, newRole);
                recordedRole = dataAccess.GetUserRole(emailAddy);
                Assert.AreEqual(newRole, recordedRole, "User Role not properly Modified");

                bool userRemoved = dataAccess.DeleteUser(emailAddy);
                Assert.IsTrue(userRemoved, "userRemoved returned false");
            }
            finally
            {//__make sure to clean out our test data
                if (dataAccess.IsUserAuthorized(emailAddy))
                {
                    dataAccess.DeleteUser(emailAddy);
                }
            }
        }