public BibleVerse searchVerses(BibleVerse bv)
        {
            string sqlStatement = "SELECT * FROM dbo.Verse WHERE Testament LIKE @Testament AND Book LIKE @Book AND Chapter=@Chapter AND Verse=@Verse";
            //  AND Book='@Book' AND Chapter='1' AND Verse='1'
            BibleVerse bibleV = null;

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand command = new SqlCommand(sqlStatement, connection);

                command.Parameters.AddWithValue("@Testament", '%' + bv.testament + '%');
                command.Parameters.AddWithValue("@Book", '%' + bv.book + '%');
                command.Parameters.AddWithValue("@Chapter", bv.chapter);
                command.Parameters.AddWithValue("@Verse", bv.verse);

                try
                {
                    connection.Open();
                    SqlDataReader reader = command.ExecuteReader();

                    while (reader.Read())
                    {
                        bibleV = new BibleVerse((string)reader[1], (string)reader[2], (int)reader[3], (int)reader[4], (string)reader[5]);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            return(bibleV);
        }
        public ActionResult addVerse(BibleVerse bibleVerse)
        {
            //put an item in the log file stateting you've entered this method
            MyLogger.GetInstance().Info("");
            MyLogger.GetInstance().Info("Entering the BibleController. addVerse() method");
            try {
                //Call the Security Business Service createVerse() method from the addVerse() method
                //and save the results of the method call in a local variable: success

                SecurityService securityService = new SecurityService();
                Boolean         success         = securityService.createVerse(bibleVerse);

                if (success)
                {
                    MyLogger.GetInstance().Info("Exiting the addVerse() in BibleController. Add Success!");

                    return(View("AddVerseSuccess"));
                }
                else
                {
                    MyLogger.GetInstance().Info("Exiting the BibleController. Login Failure");

                    return(View("AddVerseFail"));
                }
            } catch (Exception e) {
                MyLogger.GetInstance().Error("Exception!" + e.Message);

                return(Content("Exception in addVerse" + e.Message));
            }
        }
示例#3
0
        public void getVerse(IDialogContext content, LuisResult result)
        {
            BibleVerse verse = new BibleVerse();

            foreach (EntityRecommendation entity in result.Entities)
            {
                if (entity.Entity.Equals("Book"))
                {
                    verse.Book = verse.Book ?? String.Empty + entity.Entity;
                }
                else if (entity.Entity.Equals("Chapter"))
                {
                    verse.Chapter = int.Parse(entity.Entity);
                }
                else if (entity.Entity.Equals("Verse"))
                {
                    if (verse.StartVerse == 0)
                    {
                        verse.StartVerse = int.Parse(entity.Entity);
                    }
                    else
                    {
                        verse.EndVerse = int.Parse(entity.Entity);
                    }
                }
            }
        }
        public bool createVerse(BibleVerse bv)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                string query = "INSERT INTO dbo.Verse (Testament, Book, Chapter, Verse, Text) VALUES (@Testament, @Book, @Chapter, @Verse, @Text)";

                SqlCommand myCommand = new SqlCommand(query, connection);

                myCommand.Parameters.AddWithValue("@Testament", bv.testament);
                myCommand.Parameters.AddWithValue("@Book", bv.book);
                myCommand.Parameters.AddWithValue("@Chapter", bv.chapter);
                myCommand.Parameters.AddWithValue("@Verse", bv.verse);
                myCommand.Parameters.AddWithValue("@Text", bv.text);

                try
                {
                    connection.Open();

                    if (myCommand.ExecuteNonQuery() > 0)
                    {
                        return(true);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                return(false);
            }
        }
        //Create Verse will create take what the user filled out in the Add Verse Form and create a new object of verse in the database
        public bool createVerse(BibleVerse bibleVerse)
        {
            MyLogger.GetInstance().Info("Entering the SecurityDAO. createVerse() method");
            //start by assuming nothing was found
            bool success = false;
            //queryString to create new verse in database
            String queryString = "INSERT INTO dbo.Verses (testamentSelection, bookSelection, chapterNumber, verseNumber, verseText) VALUES (@Testament, @Book, @ChapterNum, @VerseNum, @VerseText)";

            using (SqlConnection sqlConnection = new SqlConnection(connectionString)) {
                using (SqlCommand sqlCommand = new SqlCommand(queryString, sqlConnection)) {
                    sqlCommand.Parameters.Add("@Testament", SqlDbType.VarChar).Value  = bibleVerse.TestamentSelection;
                    sqlCommand.Parameters.Add("@Book", SqlDbType.VarChar).Value       = bibleVerse.BookSelection;
                    sqlCommand.Parameters.Add("@ChapterNum", SqlDbType.VarChar).Value = bibleVerse.ChapterNumber;
                    sqlCommand.Parameters.Add("@VerseNum", SqlDbType.VarChar).Value   = bibleVerse.VerseNumber;
                    sqlCommand.Parameters.Add("@VerseText", SqlDbType.Text).Value     = bibleVerse.VerseText;

                    try {
                        sqlConnection.Open();
                        sqlCommand.ExecuteNonQuery();
                        MyLogger.GetInstance().Info("sql Querey successfully inserted a verse into the database");

                        sqlConnection.Close();
                        success = true;
                    } catch (Exception e) {
                        MyLogger.GetInstance().Info("Fail occured in the createVerse() method within the SecurityDAO");

                        Debug.WriteLine(e.Message);
                    }
                }
            }
            return(success);
        }
        public ActionResult searchVerse(BibleVerse bibleVerse)
        {
            Debug.WriteLine(bibleVerse.ChapterNumber);

            //put an item in the log file stateting you've entered this method
            MyLogger.GetInstance().Info("");
            MyLogger.GetInstance().Info("Entering the BibleController. searchVerse() method");
            try {
                //Call the Security Business Service findVerse() method from the searchVerse() method
                //and save the results of the method call in a local variable: returnedVerse

                SecurityService securityService = new SecurityService();
                BibleVerse      returnedVerse   = securityService.findVerse(bibleVerse);
                Debug.WriteLine("controller return: " + returnedVerse.VerseText);

                if (returnedVerse.VerseText == "")
                {
                    MyLogger.GetInstance().Info("Exiting the BibleController. searchVerse Failure");

                    return(View("SearchVerseFail"));
                }
                else
                {
                    MyLogger.GetInstance().Info("Exiting the searchVerse() in BibleController. searchVerse Success!");

                    return(View("SearchVerseResult", returnedVerse));
                }
            } catch (Exception e) {
                MyLogger.GetInstance().Error("Exception!" + e.Message);

                return(Content("Exception in searchVerse" + e.Message));
            }
        }
        public async Task <ActionResult <MinQuestion> > GetFitBQuestion(string BibleId, string BookName, int Chapter, int Verse)
        {
            BibleId = await QuizQuestion.GetValidBibleIdAsync(_context, BibleId);

            BibleBook Book = await BibleBook.GetBookAndChapterByNameAsync(_context, BibleId, BookName, Chapter);

            if (Book == null)
            {
                return(NotFound());
            }
            BibleVerse verse = new BibleVerse();

            try
            {
                verse = await _context.BibleVerses.Where(v => v.BibleId == BibleId &&
                                                         v.BookNumber == Book.BookNumber &&
                                                         v.Chapter == Chapter &&
                                                         v.Verse == Verse)
                        .SingleAsync();
            }
            catch
            {
                return(NotFound());
            }

            QuizQuestion Question = new QuizQuestion();

            Question = await Question.BuildQuestionForVerseAsync(_context, verse, 8, BibleId);

            Question.PopulatePBEQuestionInfo(Book);
            MinQuestion minQuestion = new MinQuestion(Question);

            return(minQuestion);
        }
示例#8
0
        void verseView_SelectedVerseChanged(BibleVerse obj)
        {
            Action <BibleVerse> handler = SelectedVerseChanged;

            if (handler != null)
            {
                handler(obj);
            }
        }
        public BibleVerse SearchForBibleVerse(BibleVerse bibleVerse)
        {
            string testament     = bibleVerse.Testament;
            string book          = bibleVerse.Book;
            int    chapterNumber = bibleVerse.ChapterNumber;
            int    verseNumber   = bibleVerse.VerseNumber;

            return(daoService.SearchForBibleVerse(testament, book, chapterNumber, verseNumber));
        }
示例#10
0
        public async Task <ApiResponse <string> > ReindexNKJV()
        {
            var fileName = @"C:\Suzette\TheArabicBible\The Arabic Bible\BibleCopies\KJV\King-James-Bible-KJV-Bible-Clean.txt";

            var bibleText = string.Empty;

            using (var reader = new System.IO.StreamReader(fileName))
            {
                bibleText = reader.ReadToEnd();
            }

            var books       = bibleText.Split('@');
            var bookCounter = 1;

            foreach (var book in books)
            {
                var bookText = book.Replace("�", "").Replace("\n", " ").Replace("\r", " ").Replace("    ", " ").Replace("   ", " ").Replace("  ", " ");
                if (!string.IsNullOrWhiteSpace(bookText))
                {
                    var verses = bookText.Split('{');
                    foreach (var verse in verses)
                    {
                        var verseInfo = verse.Split('}');
                        var verseIds  = verseInfo[0].Split(':');
                        if (verseIds.Length > 1)
                        {
                            var verseText = verseInfo[1];
                            var doc       = new BibleVerse()
                            {
                                BibleId = 2
                                ,
                                TestmentId = (bookCounter <= 39 ? 1 : 2)
                                ,
                                GroupId = GetGroupId(bookCounter)
                                ,
                                BookId = bookCounter
                                ,
                                ChapterId = Convert.ToInt16(verseIds[0])
                                ,
                                VerseNo = Convert.ToInt16(verseIds[1])
                                ,
                                VerseText = verseText
                                ,
                                SearchText = verseText
                            };

                            // return new ApiResponse<string>() { Data = JsonConvert.SerializeObject(doc) };
                            var response = await _bibleRepository.AddDocument(doc);
                        }
                    }
                    bookCounter++;
                }
            }
            return(new ApiResponse <string>());//todo set status to false
        }
示例#11
0
 public void DisplayVerse(BibleVerse bibleVerse)
 {
     if (bibleVerse == null)
     {
         live.DrawVerse(null, null);
     }
     else
     {
         live.DrawVerse(bibleVerse.Text, bibleVerse.Reference);
     }
 }
示例#12
0
        public IActionResult SearchResults(string testament, string book, int chapter, int verse)
        {
            BibleVerse result = service.Search(testament, book, chapter, verse);

            ViewBag.Message = "Search Results";
            if (result.Chapter == 0)
            {
                ViewBag.Message = "No Results. Try Adding Your Verse Or Searching Again";
                return(View("SearchFailed"));
            }
            return(View("SearchResults", result));
        }
        public bool Create(string testament, string book, int chapter, int verseNum, string text)
        {
            BibleVerse verse = new BibleVerse();
            Data = new DataService();

            verse.Testament = testament;
            verse.Book = book;
            verse.Chapter = chapter;
            verse.Verse = verseNum;
            verse.Text = text;

            bool success = Data.CreateVerse(verse);

            return success;
        }
示例#14
0
        public IActionResult AddVerse(BibleVerse bv)
        {
            VerseBusinessService vbs = new VerseBusinessService();

            if (vbs.createVerse(bv))
            {
                return(Index());
            }
            else
            {
                ErrorViewModel ev = new ErrorViewModel();
                ev.RequestId = "Verse creation failed";
                return(View("Views/Shared/Error.cshtml", ev));
            }
        }
示例#15
0
        public async Task <ApiResponse <string> > AddDocument(BibleVerse doc)
        {
            var response = new ApiResponse <string>();
            var docId    = doc.BibleId.ToString("00") + doc.BookId.ToString("00") + doc.ChapterId.ToString("000") + doc.VerseNo.ToString("000");
            var endpoint = new EndPoint();

            endpoint.ApiMethod  = _writeIndex + docId;
            endpoint.HttpMethod = "POST";
            var jsonDoc    = JsonConvert.SerializeObject(doc);
            var esResponse = await _requestManager.ExecuteRequest <ElasticSearchResponse <ElasticSearchBibleDocument>, string>(endpoint, jsonDoc);

            response.Status = esResponse.Status;
            response.Data   = jsonDoc;
            return(response);
        }
示例#16
0
        public ActionResult AddBibleVerse(BibleVerse bibleVerse)
        {
            BibleVerseService bibleVerseService = new BibleVerseService();

            if (bibleVerseService.AddBibleVerse(bibleVerse))
            {
                MyLogger.GetInstance().Info("Added Bible Verse to the database");
                return(View("VerseSuccessfullyAdded", bibleVerse));
            }
            else
            {
                MyLogger.GetInstance().Error("Failed to add Bible Verse to database");
                return(View("AddFailed"));
            }
        }
示例#17
0
        public IActionResult FindVerse(BibleVerse bv)
        {
            VerseBusinessService vbs = new VerseBusinessService();

            if (vbs.findVerse(bv) == null)
            {
                ErrorViewModel ev = new ErrorViewModel();
                ev.RequestId = "No verse found";
                return(View("Views/Shared/Error.cshtml", ev));
            }
            else
            {
                BibleVerse bibleV = vbs.findVerse(bv);
                return(View("Views/Verse/SearchResults.cshtml", bibleV));
            }
        }
示例#18
0
        public ActionResult SearchForBibleVerse(BibleVerse queryVerse)
        {
            BibleVerseService bibleVerseService = new BibleVerseService();

            BibleVerse bibleVerse = bibleVerseService.SearchForBibleVerse(queryVerse);

            if (bibleVerse.Testament != null)
            {
                MyLogger.GetInstance().Info("Located Bible Verse with search");
                return(View("DisplayBibleVerse", bibleVerse));
            }
            else
            {
                MyLogger.GetInstance().Info("Failed to Locate the Bible Verse with search");
                return(View("NoResultsFound"));
            }
        }
示例#19
0
 public ActionResult Create(BibleVerse bibleVerse)
 {
     try
     {
         // TODO: Add insert logic here
         if (ModelState.IsValid)
         {
             db.BibleVerse.Add(bibleVerse);
             db.SaveChanges();
         }
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View(bibleVerse));
     }
 }
示例#20
0
        /// <summary>
        /// POST: api/Messages
        /// Receive a message from a user and reply to it
        /// </summary>
        public async Task <HttpResponseMessage> Post([FromBody] Activity activity)
        {
            if (activity.Type == ActivityTypes.Message)
            {
                ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));

                LuisResult result = JsonConvert.DeserializeObject <LuisResult>(await connector.HttpClient.GetStringAsync(""));

                BibleVerse verse = new BibleVerse();
                foreach (EntityRecommendation entity in result.Entities)
                {
                    if (entity.Entity.Equals("Book"))
                    {
                        verse.Book = verse.Book ?? String.Empty + entity.Entity;
                    }
                    else if (entity.Entity.Equals("Chapter"))
                    {
                        verse.Chapter = int.Parse(entity.Entity);
                    }
                    else if (entity.Entity.Equals("Verse"))
                    {
                        if (verse.StartVerse == 0)
                        {
                            verse.StartVerse = int.Parse(entity.Entity);
                        }
                        else
                        {
                            verse.EndVerse = int.Parse(entity.Entity);
                        }
                    }
                }

                //connector.HttpClient.

                await connector.Conversations.ReplyToActivityAsync(reply);
            }
            else
            {
                HandleSystemMessage(activity);
            }
            var response = Request.CreateResponse(HttpStatusCode.OK);

            return(response);
        }
示例#21
0
        public async Task <ApiResponse <List <BibleVerse> > > GetDocuments(int bibleId, int bookId, int chapterId)
        {
            var response = new ApiResponse <List <BibleVerse> >();

            var query = string.Empty;

            query = query + "( ";
            query = query + " 'query': ('bool': (";
            query = query + " 'must' : [  ( 'term' : ( 'BibleId': {0}) ), ( 'term' : ( 'BookId': '{1}') ), ( 'term' : ( 'ChapterId': '{2}') )]";
            query = query + ")) ";
            query = query + ", 'sort' : [ 'BibleId' , 'BookId' , 'ChapterId' , 'VerseNo' ]";
            query = query + ", 'from' : {3} ";
            query = query + ", 'size' : {4} ";
            query = query + ")";

            query = string.Format(query, bibleId, bookId.ToString("00"), chapterId.ToString("000"), 0, 1000);

            query = query.Replace("(", "{").Replace(")", "}").Replace("'", "\"");

            var endpoint = new EndPoint();

            endpoint.ApiMethod  = _readIndex + "_search";
            endpoint.HttpMethod = "POST";

            var esResponse = await _requestManager.ExecuteRequest <ElasticSearchResponse <ElasticSearchBibleDocument>, string>(endpoint, query);

            if (esResponse.Status.Ok)
            {
                response.Data = new List <BibleVerse>();
                foreach (var hit in esResponse.Data.hits.hits)
                {
                    var verse = new BibleVerse()
                    {
                        BibleId = hit._source.BibleId, TestmentId = hit._source.TestmentId, BookId = hit._source.BookId, ChapterId = hit._source.ChapterId, VerseNo = Convert.ToInt16(hit._source.VerseNo), VerseText = hit._source.VerseText
                    };
                    response.Data.Add(verse);
                }
            }
            else
            {
                response.Status = esResponse.Status;
            }
            return(response);
        }
示例#22
0
        public BibleVerse SearchForBibleVerse(string testament, string book, int chapterNumber, int verseNumber)
        {
            BibleVerse bibleVerse = new BibleVerse();

            string connectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=BibleVerses;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";

            string queryString = "SELECT * FROM dbo.Verses WHERE Testament = @Testament AND Book = @Book AND ChapterNumber = @ChapterNumber AND VerseNumber = @VerseNumber";

            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                //create command and parameter objects
                SqlCommand command = new SqlCommand(queryString, conn);
                command.Parameters.AddWithValue("@Testament", testament);
                command.Parameters.AddWithValue("@Book", book);
                command.Parameters.AddWithValue("@ChapterNumber", chapterNumber);
                command.Parameters.AddWithValue("@VerseNumber", verseNumber);

                // open the database and run the command
                try
                {
                    conn.Open();
                    SqlDataReader reader = command.ExecuteReader();
                    reader.Read();

                    if (reader.HasRows)
                    {
                        bibleVerse.Testament     = reader["Testament"].ToString();
                        bibleVerse.Book          = reader["Book"].ToString();
                        bibleVerse.ChapterNumber = Convert.ToInt32(reader["ChapterNumber"].ToString());
                        bibleVerse.VerseNumber   = Convert.ToInt32(reader["VerseNumber"].ToString());
                        bibleVerse.VerseText     = reader["VerseText"].ToString();
                    }
                    reader.Close();
                    conn.Close();
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.Message);
                }
            }

            return(bibleVerse);
        }
        public BibleVerse Search(string testament, string book, int chapter, int verseNum)
        {
            string sqlStatement = "SELECT * FROM dbo.verse WHERE Book = @BOOK AND Chapter = @CHAPTER AND" +
                                  " Verse = @VERSE AND Testament = @TESTAMENT";

            BibleVerse verse = new BibleVerse();

            using (SqlConnection connection = new SqlConnection(this.dbString))
            {
                SqlCommand command = new SqlCommand(sqlStatement, connection);

                command.Parameters.Add("@TESTAMENT", System.Data.SqlDbType.VarChar, 50);
                command.Parameters["@TESTAMENT"].Value = testament;
                command.Parameters.Add("@BOOK", System.Data.SqlDbType.VarChar, 50);
                command.Parameters["@BOOK"].Value = book;
                command.Parameters.Add("@CHAPTER", System.Data.SqlDbType.Int);
                command.Parameters["@CHAPTER"].Value = chapter;
                command.Parameters.Add("@VERSE", System.Data.SqlDbType.Int);
                command.Parameters["@VERSE"].Value = verseNum;

                try
                {
                    connection.Open();
                    SqlDataReader reader = command.ExecuteReader();

                    while (reader.Read())
                    {
                        verse.Testament = (string)reader[1];
                        verse.Book      = (string)reader[2];
                        verse.Chapter   = (int)reader[3];
                        verse.Verse     = (int)reader[4];
                        verse.Text      = (string)reader[5];
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            return(verse);
        }
示例#24
0
        public static BibleVerse getVerse(DateTime date)
        {
            var bibleVerseTransformer = new BibleVerseTransformer();
            var verse = new BibleVerse();

            using (var dbconn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconn"].ConnectionString))
            {
                if (dbconn.State == ConnectionState.Open)
                {
                    dbconn.Close();
                }
                dbconn.Open();

                using (var cmd = new SqlCommand("spGetDailyBibleVerse", dbconn))
                {
                    try
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.AddWithValue("@dateofVerse", date.ToString("MM/dd/yyyy"));

                        var _reader = cmd.ExecuteReader();

                        while (_reader.Read())
                        {
                            verse = bibleVerseTransformer.Transform(_reader);
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
                    finally
                    {
                        dbconn.Close();
                        dbconn.Dispose();
                    }
                }
                return(verse);
            }
        }
        //find verse will return the verse a user searched for in the search for verse form
        public BibleVerse findVerse(BibleVerse bibleVerse)
        {
            MyLogger.GetInstance().Info("Entering the SecurityDAO. findVerse() method");

            BibleVerse returnedVerse = new BibleVerse();

            String queryString = "SELECT * FROM dbo.Verses WHERE testamentSelection=@Testament AND bookSelection=@Book AND chapterNumber=@ChapterNum AND verseNumber=@VerseNum";

            using (SqlConnection sqlConnection = new SqlConnection(connectionString)) {
                using (SqlCommand sqlCommand = new SqlCommand(queryString, sqlConnection)) {
                    sqlCommand.Parameters.Add("@Testament", SqlDbType.VarChar).Value  = bibleVerse.TestamentSelection;
                    sqlCommand.Parameters.Add("@Book", SqlDbType.VarChar).Value       = bibleVerse.BookSelection;
                    sqlCommand.Parameters.Add("@ChapterNum", SqlDbType.VarChar).Value = bibleVerse.ChapterNumber;
                    sqlCommand.Parameters.Add("@VerseNum", SqlDbType.VarChar).Value   = bibleVerse.VerseNumber;

                    try {
                        sqlConnection.Open();
                        SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
                        MyLogger.GetInstance().Info("Connection to the Database was made");

                        while (sqlDataReader.Read())
                        {
                            returnedVerse.TestamentSelection = sqlDataReader.GetString(1);
                            returnedVerse.BookSelection      = sqlDataReader.GetString(2);
                            returnedVerse.ChapterNumber      = sqlDataReader.GetString(3);
                            returnedVerse.VerseNumber        = sqlDataReader.GetString(4);
                            returnedVerse.VerseText          = sqlDataReader.GetString(5);
                            Debug.WriteLine("Retrieved text:" + sqlDataReader.GetString(5));
                        }
                        sqlConnection.Close();
                    } catch (Exception e) {
                        MyLogger.GetInstance().Info("Fail occured in the findVerse() method within the SecurityDAO");

                        Debug.WriteLine(e.Message);
                    }
                }
            }
            return(returnedVerse);
        }
        public bool CreateVerse(BibleVerse verse)
        {
            bool success = false;

            string sqlStatement = "INSERT INTO dbo.verse (Testament, Book, Chapter, Verse, Text) VALUES (@TESTAMENT, @BOOK, @CHAPTER, @VERSE, @TEXT)";

            using (SqlConnection connection = new SqlConnection(this.dbString))
            {
                SqlCommand command = new SqlCommand(sqlStatement, connection);

                command.Parameters.Add("@TESTAMENT", System.Data.SqlDbType.VarChar, 50);
                command.Parameters["@TESTAMENT"].Value = verse.Testament;
                command.Parameters.Add("@BOOK", System.Data.SqlDbType.VarChar, 50);
                command.Parameters["@BOOK"].Value = verse.Book;
                command.Parameters.Add("@CHAPTER", System.Data.SqlDbType.Int);
                command.Parameters["@CHAPTER"].Value = verse.Chapter;
                command.Parameters.Add("@VERSE", System.Data.SqlDbType.Int);
                command.Parameters["@VERSE"].Value = verse.Verse;
                command.Parameters.Add("@TEXT", System.Data.SqlDbType.VarChar, 200);
                command.Parameters["@TEXT"].Value = verse.Text;

                try
                {
                    connection.Open();
                    if (command.ExecuteNonQuery() != 0)
                    {
                        success = true;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }

            return(success);
        }
示例#27
0
        public bool AddBibleVerse(BibleVerse queryVerse)
        {
            bool success = false;

            string connectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=BibleVerses;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";

            string queryString = "INSERT INTO dbo.Verses (Testament, Book, ChapterNumber, VerseNumber, VerseText) VALUES (@Testament, @Book, @ChapterNumber, @VerseNumber, @VerseText);";

            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                //create command and parameter objects
                SqlCommand command = new SqlCommand(queryString, conn);
                command.Parameters.AddWithValue("@Testament", queryVerse.Testament);
                command.Parameters.AddWithValue("@Book", queryVerse.Book);
                command.Parameters.AddWithValue("@ChapterNumber", queryVerse.ChapterNumber);
                command.Parameters.AddWithValue("@VerseNumber", queryVerse.VerseNumber);
                command.Parameters.AddWithValue("@VerseText", queryVerse.VerseText);


                // open the database and run the command
                try
                {
                    conn.Open();
                    command.ExecuteNonQuery();
                    conn.Close();
                    success = true;
                }
                catch (Exception e)
                {
                    success = false;
                    Console.WriteLine(e.Message);
                }
            }

            return(success);
        }
示例#28
0
        public async Task <ApiResponse <string> > ReindexVanDyke()
        {
            var directoryName = @"..\App_Data\Bibles\VanDyke\";// @"C:\Suzette\TheArabicBible\The Arabic Bible\BibleCopies\VanDyke\";
            var books         = System.IO.Directory.GetFiles(directoryName);

            foreach (var book in books)
            {
                var bookText = string.Empty;
                using (var reader = new System.IO.StreamReader(book))
                {
                    bookText = reader.ReadToEnd();
                }
                if (!string.IsNullOrEmpty(bookText))
                {
                    var bookId  = Convert.ToInt16(book.Replace(directoryName, "").Substring(0, 2));
                    var groupId = GetGroupId(bookId);

                    bookText = bookText.Replace("الأصحَاحُ", "@");
                    bookText = System.Text.RegularExpressions.Regex.Replace(bookText, "[0-9]", "$"); //replace verse number/digit with $
                    bookText = bookText.Replace("$$$", "$").Replace("$$", "$");                      //if verse number has more than digit replace them all with one $

                    var chapters       = bookText.Split('@');
                    var chapterCounter = 0;
                    foreach (var chapter in chapters)
                    {
                        var verses       = chapter.Split('$');
                        var verseCounter = 0;
                        for (var i = 1; i < verses.Count(); i++)
                        {
                            var verse = verses[i];

                            var trimedVerse = verse.Replace("\n", "").Replace("\r", "").Trim();
                            var doc         = new BibleVerse()
                            {
                                BibleId = 1
                                ,
                                TestmentId = (bookId <= 39 ? 1 : 2)
                                ,
                                GroupId = groupId
                                ,
                                BookId = bookId
                                ,
                                ChapterId = chapterCounter
                                ,
                                VerseNo = i
                                ,
                                VerseText = trimedVerse
                                ,
                                SearchText = ArabicHelper.MapArabicToEnglishLetters(trimedVerse)
                            };
                            if (!string.IsNullOrEmpty(trimedVerse))
                            {
                                chapterCounter = chapterCounter == 0 ? 1 : chapterCounter;
                                verseCounter   = verseCounter == 0 ? 1 : verseCounter;
                                // return new ApiResponse<string>() { Data = JsonConvert.SerializeObject(doc) };
                                var response = await _bibleRepository.AddDocument(doc);
                            }
                            verseCounter++;
                        }
                        chapterCounter++;
                    }
                }
            }
            return(new ApiResponse <string>());//todo set status to false
        }
示例#29
0
        public void AddVerse(string verseNumber, string verseText)
        {
            BibleVerse v = new BibleVerse()
            {
                Book = ThisApp.selectedBook,
                Chapter = ThisApp.selectedChapter,
                VerseNumber = verseNumber,
                Scripture = verseText
            };

            // If the verse is not already selected, add it
            if (selectedVerses.IndexOf(v) < 0)
            {
                selectedVerses.Add(v);

                ThisApp.selectedVerses = selectedVerses;
            }

            // If record every highlight is checked on, add it and save to preferences
            if (ThisApp.preferences.GetBoolean("recordEveryHighlight", false))
            {
                ThisApp.highlightedScriptures = selectedVerses;

                string json = JsonConvert.SerializeObject(ThisApp.highlightedScriptures);
                var prefs = PreferenceManager.GetDefaultSharedPreferences(context.ApplicationContext);
                prefs.Edit().PutString("HighlightList", json).Commit();
            }

            Console.WriteLine("There are now " + selectedVerses.Count() + " verses selected.");
        }
示例#30
0
        public async Task <ApiResponse <List <BibleVerse> > > Query(int pageIndex, List <int> bibleIds, Bible bibleFilter, SearchCriteria searchCriteria)
        {
            var response    = new ApiResponse <List <BibleVerse> >();
            var currentPage = pageIndex;
            var recPerPage  = 20;
            var startIndex  = recPerPage * (currentPage - 1);
            var searchTerm  = searchCriteria.SearchItems[0].SearchTerm;

            if (bibleFilter.Language.Equals("arabic", StringComparison.OrdinalIgnoreCase))
            {
                searchTerm = ArabicHelper.MapArabicToEnglishLetters(searchCriteria.SearchItems[0].SearchTerm);
            }

            var filterItems = GetFilter(bibleIds, bibleFilter);

            var searchStart = $" ( ";

            var boolQueryStart  = $" 'query' : ( 'bool' : (";
            var queryMustClause = $"   'must'     : [ ('wildcard' : ('SearchText' :  '*{searchTerm}*' )) ]";       // must works like and
            var boolQueryEnd    = $" )) ";

            var boolFilterStart     = $" , 'filter'   : ( 'bool' : (";
            var filterShouldClause  = $"   'should'   : [] ";                      //should works like or
            var filterMustClause    = $" , 'must'     : [ {filterItems.Item1} ] "; //must works like and
            var filterMustNotClause = $" , 'must_not' : [ {filterItems.Item2} ]";  //must_not works like and not
            var boolFilterEnd       = $" )) ";

            var sort = $" , 'sort' : ['BookId' , 'ChapterId' , 'VerseNo' ]";
            var from = $" , 'from' : {startIndex} ";
            var size = $" , 'size' : {recPerPage} ";

            var searchEnd = $" ) ";

            var boolQuery  = $" {boolQueryStart}  {queryMustClause} {boolQueryEnd} ";
            var boolFilter = $" {boolFilterStart} {filterShouldClause} {filterMustClause} {filterMustNotClause} {boolFilterEnd} ";

            var query = $"{searchStart} {boolQuery} {boolFilter} {sort} {from} {size} {searchEnd} ";

            query = query.Replace("(", "{").Replace(")", "}").Replace("'", "\"");

            var endpoint = new EndPoint();

            endpoint.ApiMethod  = _readIndex + "_search";
            endpoint.HttpMethod = "POST";

            var esResponse = await _requestManager.ExecuteRequest <ElasticSearchResponse <ElasticSearchBibleDocument>, string>(endpoint, query);

            if (esResponse.Status.Ok)
            {
                response.Pagination = new ApiPagination
                {
                    RecPerPage     = recPerPage,
                    CurrentPage    = currentPage,
                    TotalRecCount  = esResponse.Data.hits.total,
                    TotalPageCount = Convert.ToInt16(Math.Ceiling(Convert.ToDecimal(esResponse.Data.hits.total) / recPerPage))
                };

                response.Data = new List <BibleVerse>();
                foreach (var hit in esResponse.Data.hits.hits)
                {
                    var verse = new BibleVerse()
                    {
                        BibleId = Convert.ToInt16(hit._source.BibleId)
                        ,
                        BookId = Convert.ToInt16(hit._source.BookId)
                        ,
                        ChapterId = Convert.ToInt16(hit._source.ChapterId)
                        ,
                        VerseNo = Convert.ToInt16(hit._source.VerseNo)
                        ,
                        VerseText = hit._source.VerseText
                    };
                    response.Data.Add(verse);
                }
            }
            else
            {
                response.Status = esResponse.Status;
            }
            return(response);
        }
示例#31
0
        private static List <BibleVerse> GetAllTexts()
        {
            List <BibleVerse> texts = new List <BibleVerse>();

            using (MyContext db = new MyContext())
                using (StreamReader sr = new StreamReader("d:\\texts.txt", Encoding.Default))
                {
                    string line;
                    while ((line = sr.ReadLine()) != null)
                    {
                        if (line == "break")
                        {
                            break;
                        }

                        try
                        {
                            string     cleanText = null;
                            BiblePlace place     = GetBiblePlace(line);
                            var        placeInDb = (from t in db.BiblePlaces
                                                    where t.BookBG == place.BookBG &&
                                                    t.Chapter == place.Chapter &&
                                                    t.End == place.End &&
                                                    t.FullLocation == place.FullLocation &&
                                                    t.Start == place.Start
                                                    select t).SingleOrDefault();
                            if (placeInDb != null)
                            {
                                cleanText = placeInDb.BibleVerses.Single().Text;
                            }
                            else
                            {
                                string rawText = RetrieveRawText(place);
                                cleanText = ExtractCleanText(rawText);

                                // Add a record
                                db.BiblePlaces.Add(place);
                                db.SaveChanges();
                                BibleVerse verse = new BibleVerse()
                                {
                                    BiblePlace = place,
                                    Text       = cleanText
                                };
                                db.BibleVerses.Add(verse);
                                db.SaveChanges();
                                Thread.Sleep(500);
                            }
                            texts.Add(new BibleVerse()
                            {
                                BiblePlace = place, Text = cleanText
                            });
                            string output = string.Format("Place {0} is OK", line);
                            Console.WriteLine(output);
                            fileOutput.WriteLine(output);
                        }
                        catch (Exception ex)
                        {
                            string output = "Problem with row: " + line + "\n      " + ex.Message;
                            Console.WriteLine(output);
                            fileOutput.WriteLine(output);
                        }
                    }
                }
            return(texts);
        }