Beispiel #1
0
        public void AddSnippet(Snippet code)
        {
            SqlConnection conn = DB.Connection();

            conn.Open();
            SqlCommand   cmd = new SqlCommand("INSERT INTO join_end_users_snippets (id_snippet, id_end_user) VALUES (@SnippetId, @UserId);", conn);
            SqlParameter sId = new SqlParameter("@SnippetId", code.Id);

            cmd.Parameters.Add(sId);
            SqlParameter uId = new SqlParameter("@UserId", this.Id);

            cmd.Parameters.Add(uId);
            cmd.ExecuteNonQuery();
            if (conn != null)
            {
                conn.Close();
            }
        }
Beispiel #2
0
        public void GetSnippets_RetrievesUserSnippets_List()
        {
            EndUser testUser = new EndUser("Jerry", "password");

            testUser.Save();
            Snippet testSnippet = new Snippet("Some Code", "x = 'Foo'", new DateTime(2017, 6, 19, 12, 55, 00));

            testSnippet.Save();
            Snippet anotherSnippet = new Snippet("More Code", "y = 'Bar'", new DateTime(2017, 1, 01, 11, 55, 00));

            anotherSnippet.Save();
            testUser.AddSnippet(testSnippet);
            List <Snippet> allUserSnippets = testUser.GetSnippets();
            List <Snippet> result          = new List <Snippet> {
                testSnippet
            };

            Assert.Equal(result, allUserSnippets);
        }
Beispiel #3
0
        public void Delete_DeletesSnippetFromDatabase_True()
        {
            //Arrange
            Snippet testSnippet1 = new Snippet("Some Code", "x = 'Foo'", new DateTime(2017, 6, 19, 12, 55, 00));

            testSnippet1.Save();
            Snippet testSnippet2 = new Snippet("Other Code", "x = 'Zoo'", new DateTime(2017, 7, 19, 12, 55, 00));

            testSnippet2.Save();
            //Act
            testSnippet1.Delete();
            List <Snippet> resultSnippetList = Snippet.GetAll();
            List <Snippet> testSnippetList   = new List <Snippet> {
                testSnippet2
            };

            //Assert
            Assert.Equal(testSnippetList, resultSnippetList);
        }
Beispiel #4
0
//AddSnippet()----
        public void AddSnippet(Snippet newSnippet)
        {
            SqlConnection conn = DB.Connection();

            conn.Open();

            SqlCommand cmd = new SqlCommand("INSERT INTO join_snippets_tags(id_snippet, id_tag) VALUES (@SnippetId, @TagId)", conn);

            SqlParameter SnippetIdParam = new SqlParameter("@SnippetId", newSnippet.Id);

            cmd.Parameters.Add(SnippetIdParam);

            SqlParameter TagIdParam = new SqlParameter("@TagId", this.Id);

            cmd.Parameters.Add(TagIdParam);

            cmd.ExecuteNonQuery();
            if (conn != null)
            {
                conn.Close();
            }
        }
Beispiel #5
0
//GetSnippets()----
        public List <Snippet> GetSnippets()
        {
            SqlConnection conn = DB.Connection();

            conn.Open();

            SqlCommand cmd = new SqlCommand("SELECT snippets.* FROM tags JOIN join_snippets_tags ON (tags.id = join_snippets_tags.id_tag) JOIN snippets ON (snippets.id = join_snippets_tags.id_snippet) WHERE tags.id = @TagId", conn);

            SqlParameter TagIdParam = new SqlParameter("@TagId", this.Id.ToString());

            cmd.Parameters.Add(TagIdParam);

            SqlDataReader rdr = cmd.ExecuteReader();

            List <Snippet> snippets = new List <Snippet> {
            };

            while (rdr.Read())
            {
                int      snippetId          = rdr.GetInt32(0);
                string   snippetDescription = rdr.GetString(1);
                string   snippetText        = rdr.GetString(2);
                DateTime snippetTime        = rdr.GetDateTime(3);

                Snippet newSnippet = new Snippet(snippetDescription, snippetText, snippetTime, snippetId);
                snippets.Add(newSnippet);
            }

            if (rdr != null)
            {
                rdr.Close();
            }
            if (conn != null)
            {
                conn.Close();
            }
            return(snippets);
        }
Beispiel #6
0
//----Find()
        public static Snippet Find(int id)
        {
            SqlConnection conn = DB.Connection();

            conn.Open();

            SqlCommand cmd = new SqlCommand("SELECT * FROM snippets WHERE id = @SnippetId", conn);

            SqlParameter SnippetIdParameter = new SqlParameter("@SnippetId", id.ToString());

            cmd.Parameters.Add(SnippetIdParameter);

            SqlDataReader rdr = cmd.ExecuteReader();

            int      foundSnippetId          = 0;
            string   foundSnippetDescription = null;
            string   foundSnippetText        = null;
            DateTime foundSnippetTime        = default(DateTime);

            while (rdr.Read())
            {
                foundSnippetId          = rdr.GetInt32(0);
                foundSnippetDescription = rdr.GetString(1);
                foundSnippetText        = rdr.GetString(2);
                foundSnippetTime        = rdr.GetDateTime(3);
            }
            Snippet foundSnippet = new Snippet(foundSnippetDescription, foundSnippetText, foundSnippetTime, foundSnippetId);

            if (rdr != null)
            {
                rdr.Close();
            }
            if (conn != null)
            {
                conn.Close();
            }
            return(foundSnippet);
        }
Beispiel #7
0
        public void GetSnippets_ReturnsAllSnippetsFromOneTag_True()
        {
            //Arrange
            Tag testTag = new Tag("loop");

            testTag.Save();
            Snippet firstSnippet = new Snippet("Some Code", "x = 'Foo'", new DateTime(2017, 6, 19, 12, 55, 00));

            firstSnippet.Save();
            Snippet secondSnippet = new Snippet("Some Code", "x = 'Foo'", new DateTime(2017, 6, 19, 12, 55, 00));

            secondSnippet.Save();
            //Act
            testTag.AddSnippet(firstSnippet);
            testTag.AddSnippet(secondSnippet);
            List <Snippet> testSnippets   = testTag.GetSnippets();
            List <Snippet> contolSnippets = new List <Snippet> {
                firstSnippet, secondSnippet
            };

            //Assert
            Assert.Equal(contolSnippets, testSnippets);
        }
Beispiel #8
0
        public void GetTags_ReturnsAllTagsFromOneSnippet_True()
        {
            //Arrange
            Snippet testSnippet = new Snippet("Some Code", "x = 'Foo'", new DateTime(2017, 6, 19, 12, 55, 00));

            testSnippet.Save();
            Tag firstTag = new Tag("loop");

            firstTag.Save();
            Tag secondTag = new Tag("loop");

            secondTag.Save();
            //Act
            testSnippet.AddTag(firstTag);
            testSnippet.AddTag(secondTag);
            List <Tag> testTags    = testSnippet.GetTags();
            List <Tag> controlTags = new List <Tag> {
                firstTag, secondTag
            };

            //Assert
            Assert.Equal(controlTags, testTags);
        }
Beispiel #9
0
//Search()----
        public static List <Snippet> SearchSnippetText(string searchText)
        {
            SqlConnection conn = DB.Connection();

            conn.Open();

            searchText = '%' + searchText + '%';
            SqlCommand cmd = new SqlCommand("SELECT * FROM snippets WHERE  snippets.text LIKE @SearchText COLLATE Latin1_General_CS_AS", conn);

            SqlParameter textParameter = new SqlParameter("@SearchText", searchText);

            cmd.Parameters.Add(textParameter);
            SqlDataReader  rdr      = cmd.ExecuteReader();
            List <Snippet> snippets = new List <Snippet> {
            };

            while (rdr.Read())
            {
                int      snippetId       = rdr.GetInt32(0);
                string   snippetDesc     = rdr.GetString(1);
                string   snippetText     = rdr.GetString(2);
                DateTime snippetDatetime = rdr.GetDateTime(3);

                Snippet newSnippet = new Snippet(snippetDesc, snippetText, snippetDatetime, snippetId);
                snippets.Add(newSnippet);
            }

            if (rdr != null)
            {
                rdr.Close();
            }
            if (conn != null)
            {
                conn.Close();
            }
            return(snippets);
        }
Beispiel #10
0
        public void AddSnippet_AddSnippetToOneTag_True()
        {
            //Arrange
            Tag testTag = new Tag("loop");

            testTag.Save();

            Snippet firstSnippet = new Snippet("Some Code", "x = 'Foo'", new DateTime(2017, 6, 19, 12, 55, 00));

            firstSnippet.Save();
            Snippet secondSnippet = new Snippet("Some Code", "x = 'Foo'", new DateTime(2017, 6, 19, 12, 55, 00));

            secondSnippet.Save();
            //Act
            testTag.AddSnippet(firstSnippet);
            testTag.AddSnippet(secondSnippet);
            List <Snippet> result   = testTag.GetSnippets();
            List <Snippet> testList = new List <Snippet> {
                firstSnippet, secondSnippet
            };

            //Assert
            Assert.Equal(testList, result);
        }
Beispiel #11
0
        public void AddTag_AddTagToOneSnippet_True()
        {
            //Arrange
            Snippet testSnippet = new Snippet("Some Code", "x = 'Foo'", new DateTime(2017, 6, 19, 12, 55, 00));

            testSnippet.Save();

            Tag firstTag = new Tag("loop");

            firstTag.Save();
            Tag secondTag = new Tag("dowd");

            secondTag.Save();
            //Act
            testSnippet.AddTag(firstTag);
            testSnippet.AddTag(secondTag);
            List <Tag> result   = testSnippet.GetTags();
            List <Tag> testList = new List <Tag> {
                firstTag, secondTag
            };

            //Assert
            Assert.Equal(testList, result);
        }
Beispiel #12
0
        public void Search_SearchSnippetText_True()
        {
            Snippet testSnippet = new Snippet("desc1", "x = 'Foo'", new DateTime(2000, 01, 01));

            testSnippet.Save();

            Snippet controlSnippet = new Snippet("desc2", "y = 'Foo'", new DateTime(1999, 01, 01));

            controlSnippet.Save();

            Snippet testCaseSensSnippet = new Snippet("desc3", "x = 'foo'", new DateTime(1950, 01, 01));

            testCaseSensSnippet.Save();

            List <Snippet> testList     = Snippet.SearchSnippetText("Foo");
            List <Snippet> expectedList = new List <Snippet> {
                testSnippet, controlSnippet
            };

            bool testTrue    = (testList.Contains(testSnippet) && testList.Contains(controlSnippet));
            bool controlTrue = (expectedList.Contains(testSnippet) && expectedList.Contains(controlSnippet));

            Assert.Equal(testTrue, controlTrue);
        }
Beispiel #13
0
        public HomeModule()
        {
//CREATE USER
            Get["/user_create"] = _ =>
            {
                return(View["user_create.cshtml"]);
            };
            Post["/user_create"] = _ =>
            {
                EndUser newUser = new EndUser(Request.Form["user-name"], Request.Form["user-password"]);
                byte[]  tmp     = new byte[0];
                string  hash    = EndUser.PasswordHash(newUser.Password, tmp);
                newUser.Password = hash;
                newUser.Save();
                return(View["user_login.cshtml"]);
            };
//USER LOGIN
            Get["/"] = _ =>
            {
                return(View["user_login.cshtml"]);
            };
            Post["/user_login"] = _ =>
            {
                string unhashed    = Request.Form["user-password"];
                byte[] tmp         = new byte[0];
                string hash        = EndUser.PasswordHash(unhashed, tmp);
                bool   loginResult = EndUser.LoginAttempt(Request.Form["user-name"], hash);
                return(View["loginsuccess.cshtml", loginResult]);
            };
//ALL SNIPPETS
            Get["/snippet/view"] = _ => {
                List <Snippet> allSnippets = Snippet.GetAll();
                return(View["snippet_view.cshtml", allSnippets]);
            };
//SPECIFIC SNIPPET
//---VIEW SNIPPET
            Get["/snippet/{id}"] = param => {
                Dictionary <string, object> model = new Dictionary <string, object> {
                };
                Snippet    SelectedSnippet        = Snippet.Find(param.id);
                List <Tag> SnippetTags            = SelectedSnippet.GetTags();

                model.Add("snippet", SelectedSnippet);
                model.Add("tag", SnippetTags);
                return(View["this_snippet.cshtml", model]);
            };

            //----UPDATE SNUPPET

            Get["/snippet/{id}/update"] = param => {
                Dictionary <string, object> model = new Dictionary <string, object> {
                };
                Snippet SelectedSnippet           = Snippet.Find(param.id);


                model.Add("snippet", SelectedSnippet);
                return(View["snippet_update.cshtml", model]);
            };
            Patch["/snippet/{id}/update"] = param => {
                Dictionary <string, object> model = new Dictionary <string, object> {
                };
                Snippet  SelectedSnippet          = Snippet.Find(param.id);
                DateTime SnippetDateTime          = DateTime.Now;


                List <Tag> SnippetTags = SelectedSnippet.GetTags();

                SelectedSnippet.Update(Request.Form["snippet-text"], SnippetDateTime);

                model.Add("tag", SnippetTags);
                model.Add("snippet", SelectedSnippet);
                return(View["this_snippet.cshtml", model]);
            };

//----DELETE SNIPPET
            Get["/snippet/{id}/delete"] = param => {
                Dictionary <string, object> model = new Dictionary <string, object> {
                };
                Snippet    SelectedSnippet        = Snippet.Find(param.id);
                List <Tag> SnippetTags            = SelectedSnippet.GetTags();

                model.Add("tag", SnippetTags);
                model.Add("snippet", SelectedSnippet);
                return(View["delete_confirm.cshtml", model]);
            };
            Delete["/snippet/{id}/delete/"] = param => {
                Snippet selectedSnippet = Snippet.Find(param.id);
                selectedSnippet.Delete();
                return(View["action_success.cshtml"]);
            };
//----DOWNLOAD SNIPPET

            Get["/snippet/{id}/download"] = param =>
            {
                Snippet selectedSnippet = Snippet.Find(param.id);
                string  snippetContent  = selectedSnippet.Text;
                using (StreamWriter objWriter = new StreamWriter("snippetText" + param.id + ".txt"))
                {
                    objWriter.Write(snippetContent);
                }
                return(View["action_success.cshtml"]);
            };
//ADD TAG TO SNIPPET
            Post["/snippet/{id}/add_tag"] = param => {
                Dictionary <string, object> model = new Dictionary <string, object> {
                };
                Snippet SelectedSnippet           = Snippet.Find(param.id);

                Tag newTag = new Tag(Request.Form["tag-text"]);
                newTag.Save();

                SelectedSnippet.AddTag(newTag);
                List <Tag> SnippetTags = SelectedSnippet.GetTags();

                model.Add("snippet", SelectedSnippet);
                model.Add("tag", SnippetTags);
                return(View["this_snippet.cshtml", model]);
            };
//CREATE SNIPPET
            Get["/snippet/create"] = _ =>
            {
                return(View["snippet_create.cshtml"]);
            };
            Post["/snippet/create"] = _ => {
                DateTime snippetDateTime = DateTime.Now;
                Snippet  newSnippet      = new Snippet(Request.Form["snippet-description"], Request.Form["snippet-text"], snippetDateTime);

                newSnippet.Save();
                List <Snippet> allSnippets = Snippet.GetAll();
                return(View["snippet_view.cshtml", allSnippets]);
            };
//SearchSnippet
            Get["/search/snippets"] = _ => {
                List <Snippet> allSnippets = new List <Snippet> {
                };
                return(View["search_snippet.cshtml", allSnippets]);
            };
            Post["/search/snippets"] = _ => {
                List <Snippet> allSnippets = Snippet.SearchSnippetText(Request.Form["search-string"]);
                return(View["search_snippet.cshtml", allSnippets]);
            };
//SearchTag
            Get["/search/tags"] = _ => {
                Dictionary <string, object> model = new Dictionary <string, object> {
                };

                List <Tag>     allTags          = Tag.GetAll();
                List <Snippet> searchedSnippets = new List <Snippet> {
                };

                model.Add("searched", searchedSnippets);
                model.Add("Tags", allTags);

                return(View["search_tag.cshtml", model]);
            };
            Post["/search/tags"] = _ => {
                Dictionary <string, object> model = new Dictionary <string, object> {
                };

                List <Tag>     allTags          = Tag.GetAll();
                List <Snippet> searchedSnippets = Tag.SearchSnippetsByTag(Request.Form["tag-id"]);

                model.Add("searched", searchedSnippets);
                model.Add("Tags", allTags);

                return(View["search_tag.cshtml", model]);
            };
        }
Beispiel #14
0
 public void Dispose()
 {
     Tag.DeleteAll();
     Snippet.DeleteAll();
 }