From ca3023fc14e14485dfdf19ddb0c999c869cc5baf Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Sat, 20 Sep 2025 12:12:43 +0530 Subject: [PATCH 01/13] Completed the Flash Card app --- Controller/FlashCardController.cs | 55 +++++ Controller/StackController.cs | 58 +++++ Controller/StudyController.cs | 46 ++++ DataAccess/FlashCardDataAccess.cs | 190 +++++++++++++++ DataAccess/StackDataAccess.cs | 217 +++++++++++++++++ DataAccess/StudyDataAccess.cs | 156 ++++++++++++ DataBaseScripts/FlashCardTables.sql | Bin 0 -> 14418 bytes DataBaseScripts/Tables.sql | 39 +++ DataBaseScripts/sesion log.txt | 5 + FlashCardLearning.csproj | 19 ++ FlashCardLearning.sln | 25 ++ Model/entities/FlashCards.cs | 16 ++ Model/entities/Stacks.cs | 14 ++ Model/entities/StudySession.cs | 45 ++++ Program.cs | 5 + View/FlashCardMenu.cs | 241 +++++++++++++++++++ View/MainMenu.cs | 55 +++++ View/StackMenu.cs | 211 ++++++++++++++++ View/StudyMenu.cs | 358 ++++++++++++++++++++++++++++ app.config | 6 + 20 files changed, 1761 insertions(+) create mode 100644 Controller/FlashCardController.cs create mode 100644 Controller/StackController.cs create mode 100644 Controller/StudyController.cs create mode 100644 DataAccess/FlashCardDataAccess.cs create mode 100644 DataAccess/StackDataAccess.cs create mode 100644 DataAccess/StudyDataAccess.cs create mode 100644 DataBaseScripts/FlashCardTables.sql create mode 100644 DataBaseScripts/Tables.sql create mode 100644 DataBaseScripts/sesion log.txt create mode 100644 FlashCardLearning.csproj create mode 100644 FlashCardLearning.sln create mode 100644 Model/entities/FlashCards.cs create mode 100644 Model/entities/Stacks.cs create mode 100644 Model/entities/StudySession.cs create mode 100644 Program.cs create mode 100644 View/FlashCardMenu.cs create mode 100644 View/MainMenu.cs create mode 100644 View/StackMenu.cs create mode 100644 View/StudyMenu.cs create mode 100644 app.config diff --git a/Controller/FlashCardController.cs b/Controller/FlashCardController.cs new file mode 100644 index 00000000..ca9bdea3 --- /dev/null +++ b/Controller/FlashCardController.cs @@ -0,0 +1,55 @@ +using FlashCardLearning.DataAccess; +using FlashCardLearning.Model.entities; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlashCardLearning.Controller +{ + class FlashCardController + { + FlashCardDataAccess flashCardDataAccess = new(); + + internal void CreateFlashCard(string? question, string answer, int stackId) + { + FlashCards flashCardEntity = new(); + flashCardEntity.Question = question; + flashCardEntity.Answer = answer; + flashCardEntity.StackId = stackId; + + flashCardDataAccess.AddFlashCard(flashCardEntity); + } + + internal bool CheckFlashCardAvailable(int flashCardId) + { + bool flashCardAvailable = flashCardDataAccess.CheckFlashCardAvailable(flashCardId); + return flashCardAvailable; + } + + internal void EditFlashCard(int flashCardId, string question, string answer) + { + FlashCards flashCardEntity = new(); + flashCardEntity.Id = flashCardId; + flashCardEntity.Question = question; + flashCardEntity.Answer = answer; + + flashCardDataAccess.UpdateFlashCard(flashCardEntity); + } + + internal void RemoveFlashCard(int flashCardId) + { + flashCardDataAccess.DeleteFlashCard(flashCardId); + } + + internal List ViewFlashCards(int StackId) + { + List flashCards = flashCardDataAccess.SelectFlashCard(StackId); + return flashCards; + } + + + } +} diff --git a/Controller/StackController.cs b/Controller/StackController.cs new file mode 100644 index 00000000..7a7bed3a --- /dev/null +++ b/Controller/StackController.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using FlashCardLearning.DataAccess; +using FlashCardLearning.Model.entities; + + +namespace FlashCardLearning.Controller +{ + internal class StackController + { + StackDataAccess stackDataAccess = new(); + + internal void CreateStack(string stackName) + { + Stacks stackEntity = new(); + stackEntity.StackName = stackName; + + stackDataAccess.Addstack(stackEntity); + } + + internal List ViewStack() + { + List stacks = stackDataAccess.Selectstack(); + return stacks; + } + + internal bool CheckStackAvailable(int stackId) + { + bool StackAvailable = stackDataAccess.CheckStackAvailable(stackId); + return StackAvailable; + } + + internal void EditStack(int stackId, string stackName) + { + Stacks stackEntity = new(); + + stackEntity.Id = stackId; + stackEntity.StackName = stackName; + + stackDataAccess.UpdateStack(stackEntity); + } + + internal void RemoveStack(int stackId) + { + stackDataAccess.DeleteStack(stackId); + + stackDataAccess.DeleteFlashCards(stackId); + + stackDataAccess.DeleteSudySession(stackId); + } + + + } +} diff --git a/Controller/StudyController.cs b/Controller/StudyController.cs new file mode 100644 index 00000000..a90074cd --- /dev/null +++ b/Controller/StudyController.cs @@ -0,0 +1,46 @@ +using FlashCardLearning.DataAccess; +using FlashCardLearning.Model.entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlashCardLearning.Controller +{ + internal class StudyController + { + StudyDataAccess studyDataAccess = new(); + internal void TrackSession(string flashCardslist, int stackId, int durationPerSession, int totalPoints) + { + StudySession studySession = new(); + studySession.FlashCardsLearned = flashCardslist; + studySession.StackId = stackId; + studySession.SessionDuration = durationPerSession; + studySession.Points = totalPoints; + + studyDataAccess.AddSession(studySession); + } + + + internal List ViewReports(int year) + { + List report = studyDataAccess.SelectReport(year); + return report; + } + + internal List ViewSessionLog(string? startDate, string? endDate) + { + StudySessionHistoryInput studySessionHistoryInput = new(); + + DateOnly startDateOnly = DateOnly.Parse(startDate); + DateOnly endDateOnly = DateOnly.Parse(endDate); + + studySessionHistoryInput.SessionStartDate = startDateOnly; + studySessionHistoryInput.SessionEndDate = endDateOnly; + + List studySessionHistories = studyDataAccess.SelectSessionLog(studySessionHistoryInput); + return studySessionHistories; + } + } +} diff --git a/DataAccess/FlashCardDataAccess.cs b/DataAccess/FlashCardDataAccess.cs new file mode 100644 index 00000000..032754f4 --- /dev/null +++ b/DataAccess/FlashCardDataAccess.cs @@ -0,0 +1,190 @@ +using FlashCardLearning.Model.entities; +using Microsoft.Data.SqlClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Configuration; +using System.Data; +using System.Collections; + +namespace FlashCardLearning.DataAccess +{ + internal class FlashCardDataAccess + { + + string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"]?.ConnectionString; + + internal void AddFlashCard(FlashCards flashCardEntity) + { + string query = "INSERT INTO FlashCards (question, answer, stack_id) VALUES (@question, @answer, @stackId)"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@question", SqlDbType.VarChar).Value = flashCardEntity.Question; + command.Parameters.Add("@answer", SqlDbType.VarChar).Value = flashCardEntity.Answer; + command.Parameters.Add("@stackId", SqlDbType.VarChar).Value = flashCardEntity.StackId; + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Flash Card has been created succesfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + + internal List SelectFlashCard(int StackId) + { + + string query = "SELECT id, question, answer FROM FlashCards WHERE stack_id = @StackId"; + + List flashCards = new List(); + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@StackId", SqlDbType.VarChar).Value = StackId; + + using (SqlDataReader reader = command.ExecuteReader()) + { + while (reader.Read()) + { + flashCards.Add(new FlashCards + { + Id = reader.GetInt32(reader.GetOrdinal("Id")), + Question = reader.GetString(reader.GetOrdinal("question")), + Answer = reader.GetString(reader.GetOrdinal("answer")) + }); + } + + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return flashCards; + } + internal bool CheckFlashCardAvailable(int flashCardId) + { + string query = "SELECT id FROM FlashCards WHERE id=@flashCardId"; + + bool flashCardAvailable = true; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@flashCardId", SqlDbType.Int).Value = flashCardId; + object? result = command.ExecuteScalar(); + if (result == null) + { + flashCardAvailable = false; + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return flashCardAvailable; + } + + internal void UpdateFlashCard(FlashCards flashCardEntity) + { + string question = ""; + string answer = ""; + + if (flashCardEntity.Question != "" && flashCardEntity.Answer != "") + { + question = "question = @question,"; + answer = " answer = @answer"; + + } + else if (flashCardEntity.Answer != "") + { + answer = " answer = @answer"; + } + else if (flashCardEntity.Question != "") + { + question = "question = @question"; + } + + + string query = $"UPDATE FlashCards SET {question} {answer} WHERE id = @flashCardId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@flashCardId", SqlDbType.Int).Value = flashCardEntity.Id; + command.Parameters.Add("@question", SqlDbType.VarChar).Value = flashCardEntity.Question; + command.Parameters.Add("@answer", SqlDbType.VarChar).Value = flashCardEntity.Answer; + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Flash Card updated successfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + + internal void DeleteFlashCard(int flashCardId) + { + string query = "DELETE FROM FlashCards WHERE id = @flashCardId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@flashCardId", SqlDbType.Int).Value = flashCardId; + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Flash Card deleted successfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + } + +} + diff --git a/DataAccess/StackDataAccess.cs b/DataAccess/StackDataAccess.cs new file mode 100644 index 00000000..92dd4b66 --- /dev/null +++ b/DataAccess/StackDataAccess.cs @@ -0,0 +1,217 @@ +using Microsoft.Data.SqlClient; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Configuration; +using FlashCardLearning.Model.entities; + + +namespace FlashCardLearning.DataAccess +{ + internal class StackDataAccess + { + string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"]?.ConnectionString; + + internal void Addstack(Stacks stackEntity) + { + string query = "INSERT INTO Stacks (stack_name) VALUES (@stackname)"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackname", SqlDbType.Int).Value = stackEntity.StackName; + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Stack with name {stackEntity.StackName} has been created succesfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + + } + } + + internal List Selectstack() + { + string query = "SELECT id, stack_name from stacks"; + + List stacks = new List(); + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + using (SqlDataReader reader = command.ExecuteReader()) + { + while (reader.Read()) + { + stacks.Add(new Stacks + { + Id = reader.GetInt32(reader.GetOrdinal("Id")), + StackName = reader.GetString(reader.GetOrdinal("stack_name")) + }); + } + + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return stacks; + } + + internal bool CheckStackAvailable(int stackId) + { + string query = "SELECT id FROM stacks WHERE id=@stackId"; + + bool stackAvailable = true; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackId", SqlDbType.VarChar).Value = stackId; + + object? result = command.ExecuteScalar(); + + if (result == null) + { + stackAvailable = false; + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return stackAvailable; + } + + internal void UpdateStack(Stacks stacks) + { + string query = "UPDATE stacks SET stack_name = @stackname WHERE id = @stackId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackId", SqlDbType.Int).Value = stacks.Id; + command.Parameters.Add("@stackname", SqlDbType.VarChar).Value = stacks.StackName; + + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Stack updated to {stacks.StackName} succesfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + + internal void DeleteStack(int stackId) + { + string query = "DELETE FROM stacks WHERE id = @stackId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Stack deleted succesfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + + internal void DeleteFlashCards(int stackId) + { + + string query = "DELETE FROM FlashCards WHERE stack_id = @stackId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; + command.ExecuteNonQuery(); + + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + internal void DeleteSudySession(int stackId) + { + + string query = "DELETE FROM LearningLog WHERE stack_id = @stackId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; + command.ExecuteNonQuery(); + + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + } +} diff --git a/DataAccess/StudyDataAccess.cs b/DataAccess/StudyDataAccess.cs new file mode 100644 index 00000000..a6444711 --- /dev/null +++ b/DataAccess/StudyDataAccess.cs @@ -0,0 +1,156 @@ +using System.Configuration; +using FlashCardLearning.Model.entities; +using FlashCardLearning.View; +using Microsoft.Data.SqlClient; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Collections; + +namespace FlashCardLearning.DataAccess +{ + internal class StudyDataAccess + { + + string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"]?.ConnectionString; + + internal void AddSession(StudySession studySession) + { + string query = "INSERT INTO LearningLog (flash_cards_reviewed, stack_id, duration_minutes, points) " + + "VALUES (@flashCardslist, @stackId, @durationPerSession, @totalPoints)"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@flashCardslist", SqlDbType.VarChar).Value = studySession.FlashCardsLearned; + command.Parameters.Add("@stackId", SqlDbType.VarChar).Value = studySession.StackId; + command.Parameters.Add("@durationPerSession", SqlDbType.VarChar).Value = studySession.SessionDuration; + command.Parameters.Add("@totalPoints", SqlDbType.VarChar).Value = studySession.Points; + command.ExecuteNonQuery(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + + } + } + + internal List SelectReport(int year) + { + string query = @" + SELECT + s.stack_name, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 1 THEN l.stack_id END) AS January, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 2 THEN l.stack_id END) AS February, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 3 THEN l.stack_id END) AS March, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 4 THEN l.stack_id END) AS April, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 5 THEN l.stack_id END) AS May, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 6 THEN l.stack_id END) AS June, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 7 THEN l.stack_id END) AS July, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 8 THEN l.stack_id END) AS August, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 9 THEN l.stack_id END) AS September, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 10 THEN l.stack_id END) AS October, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 11 THEN l.stack_id END) AS November, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 12 THEN l.stack_id END) AS December + FROM LearningLog l + INNER JOIN Stacks s ON s.id = l.stack_id + WHERE YEAR(l.session_date) = @Year + GROUP BY s.stack_name + ORDER BY s.stack_name;"; + + List reports = new List(); + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@Year", SqlDbType.Int).Value = year; // use Int not VarChar + + using (SqlDataReader reader = command.ExecuteReader()) + { + while (reader.Read()) + { + reports.Add(new StackReport + { + StackName = reader.GetString(reader.GetOrdinal("stack_name")), + January = reader.GetInt32(reader.GetOrdinal("January")), + February = reader.GetInt32(reader.GetOrdinal("February")), + March = reader.GetInt32(reader.GetOrdinal("March")), + April = reader.GetInt32(reader.GetOrdinal("April")), + May = reader.GetInt32(reader.GetOrdinal("May")), + June = reader.GetInt32(reader.GetOrdinal("June")), + July = reader.GetInt32(reader.GetOrdinal("July")), + August = reader.GetInt32(reader.GetOrdinal("August")), + September = reader.GetInt32(reader.GetOrdinal("September")), + October = reader.GetInt32(reader.GetOrdinal("October")), + November = reader.GetInt32(reader.GetOrdinal("November")), + December = reader.GetInt32(reader.GetOrdinal("December")) + }); + } + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return reports; + } + + internal List SelectSessionLog(StudySessionHistoryInput studySessionHistoryInput) + { + string query = @" + select + stack_name,points,session_date from LearningLog l + INNER JOIN Stacks s ON s.id = l.stack_id + where session_date >= @startDate and session_date < @endDate + ORDER BY session_date ASC"; + + List history = new List(); + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@startDate", SqlDbType.Date).Value = studySessionHistoryInput.SessionStartDate; // use Int not VarChar + command.Parameters.Add("@endDate", SqlDbType.Date).Value = studySessionHistoryInput.SessionEndDate; + + using (SqlDataReader reader = command.ExecuteReader()) + { + while (reader.Read()) + { + history.Add(new StudySessionHistory + { + StackName = reader.GetString(reader.GetOrdinal("stack_name")), + Points = reader.GetInt32(reader.GetOrdinal("points")), + SessionDate = reader.GetDateTime(reader.GetOrdinal("session_date")), + }); + } + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return history; + } + } +} diff --git a/DataBaseScripts/FlashCardTables.sql b/DataBaseScripts/FlashCardTables.sql new file mode 100644 index 0000000000000000000000000000000000000000..343f574fd961b11640ade385126206967d00157a GIT binary patch literal 14418 zcmeI3Yfl?T6o%((EA>BE>W4U0N-)?4BJ~3`c8Wqw5=`4PiYyvPlQa;Db7}v4+xMB{ z@m{>^-L*+1z_Ql6J3DiB=3L%6XXfmG{~o#n*L5}b%=O%!+t%GrZsvy8D z;@|pK&qnT*-g)FM^lYRjwBdIk8W--hI~S#z-h8C>L%(~v zYU;n?+A4|n?5^)E;~nV9w#IXyQ4MuI)HwHaN8kI2v4z@?RcBxAx}Gb$`tPddK<#@v zy5i7u+m1@%9@FmO*@UE{r@t zxb93S{pCK0e#1!VAC)Yiq*)dFfqqA+rwM3FZ1Z(d6D=t#2u zQ_{#9ZT^VRkCU-p9IN&5_}cmt?ilZ>>QS0a>yc!&>mGVtf2vv!Bqz=tNeml7hDdWq zW$6C2bg-R{e|FpbB3c7kQcd+9i6)kW{h&3!s`LjP`_i1AWQLZb8|V^OyP|U7wQ}FT zv7?#~MdeV>(4A!4U0ER`qHoydp=u5%y-(KN_FBHL-VIgX&U-p{R3F{9+I`=rcwI(t z-_y^ly|1^@^M^Wq^EG?EPeak|I&3Fc3v{#khu&g)Xi-uYhBZacF9VDAye3^pi?Opm z)YEtRf37~=Bs9w7!nDROjz=#wCm8w|=Lq06aS{at`l^P|g1 zJs9a{XgNQ+fa1r(-V2XTf!e9pvk!hwvso|B(QKT8(z*1~W`e9%am-Iz(h}9K5~|@b zFk2X|1_Yjkk(Ysi2a}oj=J{dCv40M{izCsQupsy(*`8CQgb%j#f0q7FJQfS_N;*C; z|C6Urgec`Akl>L)p92rJDuue{EA!~_bf3BD2*k>hv4oYyttCz)U+3`>f0nn3&))Su zZC$Y-)cWq$c%FT)DCyQznU$>ha-v^6@w#snqRS9%HWV8TM1vT!sTlK~kCj&RzoFxn z-bL#uS{-Qo*!gY!t}Ykb6OJ_$YctNk)%d+3RuwK9|5~1lZLJ8j^jp2QT#WMvjf`u3 zO?ont-mt=f=0_Y(mJsI?m(JGFrgU^w8p%4yn*VQ!yBpHi>#L*2-SvrP5?P#$*C#$N zcUgT}5gIhFz3xtUbYq__(`7{KJZP*?2@A}yKHfCxHy|Oo8r^U1J zb>_VB0nTI5^KySn++UT2f_ zJod1|5qS%d_fTclic4bC`&n2+Tk64Gh!x48ycCG?ZuX2| zGH6Y_XJoLEIwIUEbA@eLz1dg1$?D}@rTa0Tg`yRB3tQ3+{>xja?S&Ra@7LL1F!@BQ z07xXQ1Cf-Ia-3IM#I0t@O=)7WZ)e^GHovrFVt-~rJiOU*npZmO-j)n!dBf88V|}ws z%mbQirlbSz1{*6Ukqu?Ou(rcGk9i*WgUn;L5>ad~=KDZnX)(xTD;JK6Mh!fJEVuNhSL5SLLa zJSW30KCjrlJy|Pd8`LFduOW$8z8)pW1>{=uXjEhywt7LkrEMUSXf?+q5j-(sOGB=P zv_4$5$8svNoTkUHEpIvOB(TngM^@f{Hh(eX65e$GnU(CM?J!4EV)D!1(^>ZzX0r*i zd`m5=`Nk&e9w zd;A z^!Id6-YuC`b#V{93f~^owHgIZSw{S9Jc}cAx&EcCI?7pJq=)%Cz}0)0mc%0c%Fq0& z-ml&y_dNaOQS|jjN8fOC{r3@ZiStDUnQ#Ny%C^snL+*S*^+4Y?WYOh2i13Ar<<*)t zbk&;t#gLiJtT>v~4Bx`otil%_Jsq6;>XYTSCBLRhza^SwjYh~2E~i^rBjIa^I9C?u mMRm#L>wGQtv68s-CtwEgt literal 0 HcmV?d00001 diff --git a/DataBaseScripts/Tables.sql b/DataBaseScripts/Tables.sql new file mode 100644 index 00000000..9ce0a79d --- /dev/null +++ b/DataBaseScripts/Tables.sql @@ -0,0 +1,39 @@ + + +-- Switch to the database +USE FLASH_CARD_LEARNING_DB; +GO + +-- ======================== +-- Table: Stacks +-- ======================== +CREATE TABLE Stacks ( + id INT IDENTITY(1,1) PRIMARY KEY, + stack_name NVARCHAR(100) NOT NULL, + created_date DATETIME NOT NULL DEFAULT GETDATE() +); + +-- ======================== +-- Table: FlashCards +-- ======================== +CREATE TABLE FlashCards ( + id INT IDENTITY(1,1) PRIMARY KEY, + question NVARCHAR(300) NOT NULL, + answer NVARCHAR(300) NOT NULL, + stack_id INT NOT NULL, + created_date DATETIME NOT NULL DEFAULT GETDATE(), + CONSTRAINT FK_FlashCards_Stacks FOREIGN KEY (stack_id) REFERENCES Stacks(id) +); + +-- ======================== +-- Table: LearningLog +-- ======================== +CREATE TABLE LearningLog ( + id INT IDENTITY(1,1) PRIMARY KEY, + flash_cards_reviewed NVARCHAR(max) NOT NULL, + stack_id INT NOT NULL, + session_date DATETIME NOT NULL DEFAULT GETDATE(), + duration_minutes INT NOT NULL, -- store as minutes (e.g., 150 = 2.5 hours) + CONSTRAINT FK_LearningLog_Stacks FOREIGN KEY (stack_id) REFERENCES Stacks(id) +); + diff --git a/DataBaseScripts/sesion log.txt b/DataBaseScripts/sesion log.txt new file mode 100644 index 00000000..3f1b5ab0 --- /dev/null +++ b/DataBaseScripts/sesion log.txt @@ -0,0 +1,5 @@ +select ROW_NUMBER() OVER (ORDER BY session_date ASC) AS RowNum, +stack_name,session_date,points from LearningLog l +INNER JOIN Stacks s ON s.id = l.stack_id +where ( (@Year IS NULL OR YEAR(l.session_date) = @Year) AND (@Month IS NULL OR MONTH(l.session_date) = @Month) + AND ( @Day IS NULL OR DAY(l.session_date) = @Day) AND (@Date IS NULL OR CAST(l.session_date AS DATE) = @Date) ) diff --git a/FlashCardLearning.csproj b/FlashCardLearning.csproj new file mode 100644 index 00000000..5d78ac7a --- /dev/null +++ b/FlashCardLearning.csproj @@ -0,0 +1,19 @@ + + + + Exe + net9.0 + enable + enable + + + + + + + + + + + + diff --git a/FlashCardLearning.sln b/FlashCardLearning.sln new file mode 100644 index 00000000..8f54580d --- /dev/null +++ b/FlashCardLearning.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.13.35818.85 d17.13 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlashCardLearning", "FlashCardLearning.csproj", "{5F4A8261-6C28-B41A-79DC-4896337F85ED}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5F4A8261-6C28-B41A-79DC-4896337F85ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F4A8261-6C28-B41A-79DC-4896337F85ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F4A8261-6C28-B41A-79DC-4896337F85ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F4A8261-6C28-B41A-79DC-4896337F85ED}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {E4095846-3E33-4066-88AF-996F9FA43AF7} + EndGlobalSection +EndGlobal diff --git a/Model/entities/FlashCards.cs b/Model/entities/FlashCards.cs new file mode 100644 index 00000000..f565cfd0 --- /dev/null +++ b/Model/entities/FlashCards.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlashCardLearning.Model.entities +{ + internal class FlashCards + { + public int Id {get; set;} + public string? Question { get; set; } + public string? Answer { get; set; } + public int StackId { get; set; } + } +} diff --git a/Model/entities/Stacks.cs b/Model/entities/Stacks.cs new file mode 100644 index 00000000..f634a73f --- /dev/null +++ b/Model/entities/Stacks.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlashCardLearning.Model.entities +{ + public class Stacks + { + public int Id {get; set;} + public string? StackName {get; set;} + } +} diff --git a/Model/entities/StudySession.cs b/Model/entities/StudySession.cs new file mode 100644 index 00000000..e468f86a --- /dev/null +++ b/Model/entities/StudySession.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlashCardLearning.Model.entities +{ + internal class StudySession + { + public string FlashCardsLearned { get; set; } + public int StackId { get; set; } + public int SessionDuration { get; set; } + public int Points { get; set; } + } + + internal class StudySessionHistoryInput + { + public DateOnly SessionStartDate { get; set; } + public DateOnly SessionEndDate { get; set; } + } + internal class StudySessionHistory + { + public string StackName { get; set; } + public DateTime SessionDate { get; set; } + public int Points { get; set; } + } + + internal class StackReport + { + public string StackName { get; set; } + public int January { get; set; } + public int February { get; set; } + public int March { get; set; } + public int April { get; set; } + public int May { get; set; } + public int June { get; set; } + public int July { get; set; } + public int August { get; set; } + public int September { get; set; } + public int October { get; set; } + public int November { get; set; } + public int December { get; set; } + } +} diff --git a/Program.cs b/Program.cs new file mode 100644 index 00000000..934577ea --- /dev/null +++ b/Program.cs @@ -0,0 +1,5 @@ +using FlashCardLearning.View; + +MainMenu mainMenu = new(); + +mainMenu.UserMainMenue(); \ No newline at end of file diff --git a/View/FlashCardMenu.cs b/View/FlashCardMenu.cs new file mode 100644 index 00000000..040f2083 --- /dev/null +++ b/View/FlashCardMenu.cs @@ -0,0 +1,241 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using ConsoleTables; +using FlashCardLearning.Controller; +using FlashCardLearning.Model.entities; + + +namespace FlashCardLearning.View +{ + internal class FlashCardMenu + { + FlashCardController flashCardController = new(); + StackController stackController = new(); + + int StackId = 0; + private void ManageFlashCard() + { + + StackMenu stackMenu = new(); + + Console.Clear(); + + ViewFlashCard(); + Console.WriteLine(); + Console.WriteLine("-----------Manage Flash Card Menu-----------"); + Console.WriteLine(); + Console.WriteLine("Enter 1 to create a FlashCard"); + Console.WriteLine("Enter 2 to Edit a FlashCard"); + Console.WriteLine("Enter 3 to Delete a FlashCard"); + Console.WriteLine("Enter 4 to Return to Stack Menu"); + Console.WriteLine(); + var userInput = Console.ReadLine(); + + string[] allowedUserInput = { "1", "2", "3", "4" }; + + while (!allowedUserInput.Contains(userInput)) + { + Console.WriteLine("Please Enter a valid menu number"); + userInput = Console.ReadLine(); + } + + while (true) + { + switch (userInput) + { + case "1": + CreateFlashCard(); + break; + case "2": + EditFlashCard(); + break; + case "3": + RemoveFlashCard(); + break; + case "4": + SelectStack(); + break; + } + } + } + + internal void SelectStack() + { + StackMenu stackMenu = new(); + + Console.Clear(); + + ViewStack(); + + Console.WriteLine("Please Enter the Stack Id to View the Flash Cards and Manage It , enter 0 to return to stack menu"); + StackId = stackMenu.ValidateStackId(); + + Console.Clear(); + + if (StackId != 0) ManageFlashCard(); + else stackMenu.ManageStacks(); + + } + + private void ViewFlashCard() + { + Console.WriteLine("Below are the Available Flash Cards"); + Console.WriteLine(); + + List flashCards = flashCardController.ViewFlashCards(StackId); + + var flashCardTable = new ConsoleTable("Id", "Question", "Answer"); + + foreach (FlashCards flashCard in flashCards) + { + flashCardTable.AddRow(flashCard.Id, flashCard.Question, flashCard.Answer); + } + flashCardTable.Write(); + + } + + private void CreateFlashCard() + { + Console.Clear(); + Console.WriteLine("Please Enter the Question, Press 0 to Return to Main Menu "); + + string Question = Console.ReadLine(); + + while (string.IsNullOrEmpty(Question) || Question.Length < 2) + { + if (Question == "0") + { + ManageFlashCard(); + return; + } + + Console.WriteLine("Please Enter a Proper Question"); + Question = Console.ReadLine(); + } + + Console.WriteLine("Please Enter the Answer, Press 0 to Return to Main Menu "); + + string Answer = Console.ReadLine(); + + while (string.IsNullOrEmpty(Answer) || Answer.Length < 2) + { + if (Answer == "0") + { + ManageFlashCard(); + return; + } + + Console.WriteLine("Please Enter a Proper Answer"); + Answer = Console.ReadLine(); + } + flashCardController.CreateFlashCard(Question, Answer, StackId); + } + + private void EditFlashCard() + { + Console.Clear(); + + ViewFlashCard(); + Console.WriteLine(); + + int flashCardId = ValidateFlashCardId(); + Console.WriteLine(); + + while (!flashCardController.CheckFlashCardAvailable(flashCardId)) + { + flashCardId = ValidateFlashCardId(); + } + + Console.WriteLine("Please enter the Question to update, Press 0 to Return to Main Menu"); + string question = Console.ReadLine(); + + Console.WriteLine(); + + Console.WriteLine("Please enter the Answer to update, Press 0 to Return to Main Menu"); + string answer = Console.ReadLine(); + + while ((string.IsNullOrEmpty(question) || question.Length < 2) && (string.IsNullOrEmpty(answer) || answer.Length < 2)) + { + if (question == "0") + { + ManageFlashCard(); + return; + } + Console.WriteLine("Please enter either Answer or Question to update"); + question = Console.ReadLine(); + } + + flashCardController.EditFlashCard(flashCardId, question, answer); + } + + public int ValidateFlashCardId() + { + Console.WriteLine("Please enter the FlashCard Id, Press 0 to Return to Main Menu"); + string userInput = Console.ReadLine(); + + int flashCardId = 0; + + bool isInteger = int.TryParse(userInput, out flashCardId); + + + while (flashCardId < 0 || !isInteger) + { + Console.WriteLine("Please Enter a valid FlashCard Id, To Return to Stack Menu Enter 0"); + userInput = Console.ReadLine(); + + isInteger = int.TryParse(userInput, out flashCardId); + } + + if (flashCardId == 0) + { + ManageFlashCard(); + return 0; + } + + return flashCardId; + } + + private void RemoveFlashCard() + { + Console.Clear(); + + ViewFlashCard(); + Console.WriteLine(); + + int flashCardId = ValidateFlashCardId(); + + Console.WriteLine(); + + while (!flashCardController.CheckFlashCardAvailable(flashCardId)) + { + flashCardId = ValidateFlashCardId(); + } + + flashCardController.RemoveFlashCard(flashCardId); + } + + private void ViewStack() + { + Console.WriteLine("Below are the available stacks"); + Console.WriteLine(); + + List stackList = stackController.ViewStack(); + + var stackTable = new ConsoleTable("Id", "Stack Name"); + + foreach (Stacks stack in stackList) + { + stackTable.AddRow(stack.Id, stack.StackName); + } + stackTable.Write(); + + Console.WriteLine(); + } + + } +} diff --git a/View/MainMenu.cs b/View/MainMenu.cs new file mode 100644 index 00000000..ae07e0b4 --- /dev/null +++ b/View/MainMenu.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlashCardLearning.View +{ + internal class MainMenu + { + internal void UserMainMenue() + { + StackMenu stackMenu = new(); + StudyMenu studyMenu = new(); + + Console.Clear(); + Console.WriteLine("-----------Welcome to Flash Card Learning App-----------"); + Console.WriteLine("Enter 1 to Manage Stacks and Flash Cards"); + Console.WriteLine("Enter 2 to Start a Learning Session"); + Console.WriteLine("Enter 3 View Study Session Reports"); + Console.WriteLine("Enter 0 to Quit"); + Console.WriteLine(); + var userInput = Console.ReadLine(); + bool runApp = true; + + string[] allowedUserInput = { "1", "2", "3", "0" }; + + while (!allowedUserInput.Contains(userInput)) + { + Console.WriteLine("Please Enter a valid menu number"); + userInput = Console.ReadLine(); + } + + while (runApp) + { + switch (userInput) + { + case "1": + stackMenu.ManageStacks(); + break; + case "2": + studyMenu.StudySession(); + break; + case "3": + studyMenu.ViewReports(); + break; + case "0": + Environment.Exit(0); + break; + } + } + + } + } +} diff --git a/View/StackMenu.cs b/View/StackMenu.cs new file mode 100644 index 00000000..d36b35bd --- /dev/null +++ b/View/StackMenu.cs @@ -0,0 +1,211 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using ConsoleTables; +using FlashCardLearning.Controller; +using FlashCardLearning.Model.entities; +using Microsoft.IdentityModel.Tokens; + +namespace FlashCardLearning.View +{ + internal class StackMenu + { + StackController stackController = new(); + FlashCardMenu flashCardMenu = new(); + MainMenu mainMenu = new(); + + internal void ManageStacks() + { + Console.Clear(); + Console.WriteLine("-----------Manage Stack Menu-----------"); + Console.WriteLine(); + Console.WriteLine("Enter 1 to Create a Stack"); + Console.WriteLine("Enter 2 to Edit a Stack"); + Console.WriteLine("Enter 3 to Delete a Stack"); + Console.WriteLine("Enter 4 to View Available Stacks"); + Console.WriteLine("Enter 5 to View Flash Cards Inside the Stack"); + Console.WriteLine("Enter 6 to Return to Main Menu"); + + var userInput = Console.ReadLine(); + + string[] allowedUserInput = { "1", "2", "3", "4", "5", "6" }; + + while (!allowedUserInput.Contains(userInput)) + { + Console.WriteLine("Please Enter a valid menu number"); + userInput = Console.ReadLine(); + } + bool fromMenu = true; + + while (true) + { + switch (userInput) + { + case "1": + CreateStack(); + break; + case "2": + EditStack(); + break; + case "3": + RemoveStack(); + break; + case "4": + ViewStack(fromMenu); + break; + case "5": + flashCardMenu.SelectStack(); + break; + case "6": + mainMenu.UserMainMenue(); + break; + } + } + } + + private void CreateStack() + { + Console.Clear(); + Console.WriteLine("Please Enter the Stack Name, To Return to Stack Menu Enter 0"); + + string stackName = Console.ReadLine(); + + while (string.IsNullOrEmpty(stackName) || stackName.Length < 2 || !Regex.IsMatch(stackName, @"^[a-zA-Z #\-/]+$")) + { + if (stackName == "0") + { + ManageStacks(); + return; + } + + Console.WriteLine("Please Enter a Proper Stack Name"); + stackName = Console.ReadLine(); + } + stackController.CreateStack(stackName); + } + + private void EditStack() + { + Console.Clear(); + + //display available stacks + ViewStack(false); + Console.WriteLine("Please Enter a valid Stack Id, To Return to Stack Menu Enter 0"); + int StackId = ValidateStackId(); + + while (!stackController.CheckStackAvailable(StackId)) + { + Console.WriteLine(); + Console.WriteLine("Stack Id was not available "); + Console.WriteLine(); + StackId = ValidateStackId(); + } + + //obtain stack name + Console.WriteLine(); + Console.WriteLine("Please Enter a Stack Name to Update, To Return to Stack Menu Enter 0"); + string stackName = Console.ReadLine(); + + while (string.IsNullOrEmpty(stackName) || stackName.Length < 2 || !Regex.IsMatch(stackName, @"^(?!\d+$)[a-zA-Z0-9 #\-/]+$")) + { + if (stackName == "0") + { + ManageStacks(); + return; + } + + Console.WriteLine("Please Enter a Proper Stack Name to Update"); + stackName = Console.ReadLine(); + + } + + stackController.EditStack(StackId, stackName); + } + + public int ValidateStackId() + { + + string userInput = Console.ReadLine(); + + int StackId = 0; + + bool isInteger = int.TryParse(userInput, out StackId); + + + while (StackId < 0 || !isInteger) + { + Console.WriteLine("Please Enter a valid Stack Id, To Return to Stack Menu Enter 0"); + userInput = Console.ReadLine(); + + isInteger = int.TryParse(userInput, out StackId); + } + + if (StackId == 0) + { + ManageStacks(); + return 0; + } + + return StackId; + } + + public void ViewStack(bool fromMenu) + { + + Console.WriteLine("Below are the available stacks"); + + List stackList = stackController.ViewStack(); + + var stackTable = new ConsoleTable("Id", "Stack Name"); + + foreach (Stacks stack in stackList) + { + stackTable.AddRow(stack.Id, stack.StackName); + } + + stackTable.Write(); + + Console.WriteLine(); + + //obtain ID + if (fromMenu) + { + Console.WriteLine("To Return to Stack Menu Enter 0"); + string unserInput = Console.ReadLine(); + + if (unserInput == "0") + { + ManageStacks(); + return; + } + } + } + + private void RemoveStack() + { + Console.Clear(); + //display available stacks + ViewStack(false); + + //obtain ID + Console.WriteLine("Please note that by deleting a stack the related flash cards will also get deleted!!!"); + Console.WriteLine(); + Console.WriteLine("Please Enter a valid Stack Id, To Return to Stack Menu Enter 0"); + int StackId = ValidateStackId(); + + + while (!stackController.CheckStackAvailable(StackId)) + { + StackId = ValidateStackId(); + } + + stackController.RemoveStack(StackId); + + } + + } +} diff --git a/View/StudyMenu.cs b/View/StudyMenu.cs new file mode 100644 index 00000000..c9068970 --- /dev/null +++ b/View/StudyMenu.cs @@ -0,0 +1,358 @@ +using ConsoleTables; +using FlashCardLearning.Controller; +using FlashCardLearning.Model.entities; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace FlashCardLearning.View +{ + internal class StudyMenu + { + MainMenu mainMenu = new(); + StackMenu stackMenu = new(); + FlashCardMenu flashCardMenu = new(); + + FlashCardController flashCardController = new(); + StackController stackController = new(); + StudyController studyController = new(); + + int StackId = 0; + int totalPoints = 0; + int totalReviewdPoints = 0; + DateTime sessionStartTime; + DateTime sessionEndTime; + int durationPerSession = 0; + string FlashCardslist = ""; + + internal void StudySession() + { + + Console.Clear(); + Console.WriteLine("-----------Learning Menu-----------"); + Console.WriteLine(); + Console.WriteLine("Enter 1 to Open Avaliable Stacks"); + Console.WriteLine("Enter 2 to Open Learning Session History"); + Console.WriteLine("Enter 0 to Return To Main Menue"); + + string userInput = Console.ReadLine(); + + string[] allowedUserInput = { "1", "2", "0" }; + + while (!allowedUserInput.Contains(userInput)) + { + Console.WriteLine("Please Enter a valid menu number"); + userInput = Console.ReadLine(); + } + + while (true) + { + switch (userInput) + { + case "1": + SelectStack(); + break; + case "2": + ViewSessionLog(); + break; + case "0": + mainMenu.UserMainMenue(); + break; + } + } + } + + private void ViewSessionLog() + { + Console.WriteLine("------------Session Log -----------"); + Console.WriteLine(); + + string pattern = @"^\d{4}-\d{2}-\d{2}$"; + + Console.WriteLine("Please enter the Start Date(yyyy-mm-dd), Enter 0 to Return to Main Menu "); + string startDate = Console.ReadLine(); + Console.WriteLine(); + + if (startDate == "0") + { + StudySession(); + return; + } + while (!System.Text.RegularExpressions.Regex.IsMatch(startDate, pattern) || + !DateTime.TryParseExact(startDate, "yyyy-mm-dd", + System.Globalization.CultureInfo.InvariantCulture, + System.Globalization.DateTimeStyles.None, + out DateTime validDate)) + { + if (startDate == "0") + { + StudySession(); + return; + } + Console.WriteLine("Please enter the Start Date(yyyy-mm-dd) in proper format"); + startDate = Console.ReadLine(); + } + + + Console.WriteLine("Please enter the End Date(yyyy-mm-dd), Enter 0 to Return to Main Menu "); + string endDate = Console.ReadLine(); + Console.WriteLine(); + if (endDate == "0") + { + StudySession(); + return; + } + while (!System.Text.RegularExpressions.Regex.IsMatch(endDate, pattern) || + !DateTime.TryParseExact(startDate, "yyyy-mm-dd", + System.Globalization.CultureInfo.InvariantCulture, + System.Globalization.DateTimeStyles.None, + out DateTime validDate)) + { + if (endDate == "0") + { + StudySession(); + return; + } + Console.WriteLine("Please enter the End Date(yyyy-mm-dd) in proper format"); + endDate = Console.ReadLine(); + + + } + + + List historyList = studyController.ViewSessionLog(startDate, endDate); + + var stackTable = new ConsoleTable("Id", "Stack Name", "Points", "Session Date"); + + int rowCount = 1; + + foreach (StudySessionHistory history in historyList) + { + stackTable.AddRow(rowCount, history.StackName, history.Points, history.SessionDate); + rowCount += 1; + } + stackTable.Write(); + + Console.WriteLine(); + + Console.WriteLine("Enter 0 to return to Previous menu"); + string userInput = Console.ReadLine(); + + if (userInput == "0") + { + StudySession(); + return; + } + } + + internal void ViewReports() + { + + Console.WriteLine("Please Enter a year in YYYY format to generate report, enter 0 to return to Previous menu"); + Console.WriteLine(); + + string year = Console.ReadLine(); + + int YearInput = 0; + + while (string.IsNullOrEmpty(year) || year.Length != 4 || !int.TryParse(year, out YearInput)) + { + if (year == "0") + { + StudySession(); + return; + } + + Console.WriteLine("Please Enter year in YYYY format"); + year = Console.ReadLine(); + } + + if (YearInput == 0) mainMenu.UserMainMenue(); + + List studySessions = studyController.ViewReports(YearInput); + + var ReportTable = new ConsoleTable( + "Stack Name", + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ); + + // Add rows for each stack + foreach (StackReport studySession in studySessions) + { + ReportTable.AddRow( + studySession.StackName, + studySession.January, + studySession.February, + studySession.March, + studySession.April, + studySession.May, + studySession.June, + studySession.July, + studySession.August, + studySession.September, + studySession.October, + studySession.November, + studySession.December + ); + } + + ReportTable.Write(); + + Console.WriteLine(); + Console.WriteLine("Enter 0 to return to Previous menu"); + Console.WriteLine(); + + string exit = Console.ReadLine(); + + if (exit == "0") mainMenu.UserMainMenue(); + } + + private void SelectStack() + { + Console.Clear(); + + ViewStack(); + + Console.WriteLine("Please Enter the Stack Id to View the Flash Cards and Manage It , enter 0 to return to Previous menu"); + Console.WriteLine(); + + StackId = stackMenu.ValidateStackId(); + + if (StackId != 0) ViewFlashCards(StackId); + else mainMenu.UserMainMenue(); + } + + public void ViewStack() + { + + Console.WriteLine("Below are the available stacks"); + Console.WriteLine(); + + List stackList = stackController.ViewStack(); + + var stackTable = new ConsoleTable("Id", "Stack Name"); + + foreach (Stacks stack in stackList) + { + stackTable.AddRow(stack.Id, stack.StackName); + } + stackTable.Write(); + + Console.WriteLine(); + + } + + private void ViewFlashCards(int StackId) + { + Console.WriteLine("Below are the Available Flash Cards"); + Console.WriteLine(); + + List flashCards = flashCardController.ViewFlashCards(StackId); + + var flashCardTable = new ConsoleTable("Id", "Question"); + + foreach (FlashCards flashCard in flashCards) + { + flashCardTable.AddRow(flashCard.Id, flashCard.Question); + } + + flashCardTable.Write(); + + AnswerFlashCard(flashCards); + } + + private void AnswerFlashCard(List FlashCards) + { + sessionStartTime = DateTime.Now; + + Console.WriteLine("Please enter the id of the flash card you choose to answer. enter 0 to return to Previous menu"); + + int flashCardId = flashCardMenu.ValidateFlashCardId(); + + if (flashCardId == 0) + { + Console.Clear(); + + Console.WriteLine(); + + sessionEndTime = DateTime.Now; + + GetDurationPerSession(); + + studyController.TrackSession(FlashCardslist, StackId, durationPerSession, totalPoints); + + SelectStack(); + + totalPoints = 0; + + } + + Console.WriteLine("Please enter the answer"); + + string answer = Console.ReadLine(); + string correctAnswer = ""; + + foreach (FlashCards flashCard in FlashCards) + { + + if (flashCard.Id == flashCardId) + { + totalReviewdPoints += 20; + correctAnswer = flashCard.Answer; + } + } + + if (answer == correctAnswer) + { + Console.Clear(); + + Console.WriteLine("The answer you entered was correct. 20 points added !!"); + Console.WriteLine(); + + totalPoints += 20; + + FlashCardslist += $"{flashCardId},"; + + Console.WriteLine($"You Scored {totalPoints} out of {totalReviewdPoints} points"); + Console.WriteLine(); + + ViewFlashCards(StackId); + + } + else + { + Console.Clear(); + + Console.WriteLine("The answer you entered was Incorrect!!. Below is the correct answer"); + Console.WriteLine(); + + Console.WriteLine($"Answer : {correctAnswer}"); + Console.WriteLine(); + + ViewFlashCards(StackId); + } + } + + private void GetDurationPerSession() + { + TimeSpan duration = sessionEndTime.Subtract(sessionStartTime); + + durationPerSession = duration.Minutes; + } + } +} diff --git a/app.config b/app.config new file mode 100644 index 00000000..8b2cd113 --- /dev/null +++ b/app.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From cd2ed97e3852ca89ed084a0a7ec98bab3fa3bb2d Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Sat, 20 Sep 2025 12:51:07 +0530 Subject: [PATCH 02/13] Removed unwanted dependencies --- Controller/FlashCardController.cs | 6 ------ Controller/StackController.cs | 8 +------- Controller/StudyController.cs | 5 ----- DataAccess/FlashCardDataAccess.cs | 6 ------ DataAccess/StackDataAccess.cs | 5 ----- DataAccess/StudyDataAccess.cs | 7 ------- Model/entities/FlashCards.cs | 8 +------- Model/entities/Stacks.cs | 8 +------- Model/entities/StudySession.cs | 8 +------- View/FlashCardMenu.cs | 9 +-------- View/MainMenu.cs | 8 +------- View/StackMenu.cs | 9 +-------- View/StudyMenu.cs | 7 ------- 13 files changed, 7 insertions(+), 87 deletions(-) diff --git a/Controller/FlashCardController.cs b/Controller/FlashCardController.cs index ca9bdea3..bc07dea7 100644 --- a/Controller/FlashCardController.cs +++ b/Controller/FlashCardController.cs @@ -1,11 +1,5 @@ using FlashCardLearning.DataAccess; using FlashCardLearning.Model.entities; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace FlashCardLearning.Controller { diff --git a/Controller/StackController.cs b/Controller/StackController.cs index 7a7bed3a..cfc9a894 100644 --- a/Controller/StackController.cs +++ b/Controller/StackController.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using FlashCardLearning.DataAccess; +using FlashCardLearning.DataAccess; using FlashCardLearning.Model.entities; diff --git a/Controller/StudyController.cs b/Controller/StudyController.cs index a90074cd..c59c9658 100644 --- a/Controller/StudyController.cs +++ b/Controller/StudyController.cs @@ -1,10 +1,5 @@ using FlashCardLearning.DataAccess; using FlashCardLearning.Model.entities; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace FlashCardLearning.Controller { diff --git a/DataAccess/FlashCardDataAccess.cs b/DataAccess/FlashCardDataAccess.cs index 032754f4..3f9fc850 100644 --- a/DataAccess/FlashCardDataAccess.cs +++ b/DataAccess/FlashCardDataAccess.cs @@ -1,13 +1,7 @@ using FlashCardLearning.Model.entities; using Microsoft.Data.SqlClient; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Configuration; using System.Data; -using System.Collections; namespace FlashCardLearning.DataAccess { diff --git a/DataAccess/StackDataAccess.cs b/DataAccess/StackDataAccess.cs index 92dd4b66..9fa5b49d 100644 --- a/DataAccess/StackDataAccess.cs +++ b/DataAccess/StackDataAccess.cs @@ -1,10 +1,5 @@ using Microsoft.Data.SqlClient; -using System; -using System.Collections.Generic; using System.Data; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Configuration; using FlashCardLearning.Model.entities; diff --git a/DataAccess/StudyDataAccess.cs b/DataAccess/StudyDataAccess.cs index a6444711..8094c54f 100644 --- a/DataAccess/StudyDataAccess.cs +++ b/DataAccess/StudyDataAccess.cs @@ -1,14 +1,7 @@ using System.Configuration; using FlashCardLearning.Model.entities; -using FlashCardLearning.View; using Microsoft.Data.SqlClient; -using System; -using System.Collections.Generic; using System.Data; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Collections; namespace FlashCardLearning.DataAccess { diff --git a/Model/entities/FlashCards.cs b/Model/entities/FlashCards.cs index f565cfd0..cfbd7f07 100644 --- a/Model/entities/FlashCards.cs +++ b/Model/entities/FlashCards.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace FlashCardLearning.Model.entities +namespace FlashCardLearning.Model.entities { internal class FlashCards { diff --git a/Model/entities/Stacks.cs b/Model/entities/Stacks.cs index f634a73f..fcd35f7c 100644 --- a/Model/entities/Stacks.cs +++ b/Model/entities/Stacks.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace FlashCardLearning.Model.entities +namespace FlashCardLearning.Model.entities { public class Stacks { diff --git a/Model/entities/StudySession.cs b/Model/entities/StudySession.cs index e468f86a..3067eff4 100644 --- a/Model/entities/StudySession.cs +++ b/Model/entities/StudySession.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace FlashCardLearning.Model.entities +namespace FlashCardLearning.Model.entities { internal class StudySession { diff --git a/View/FlashCardMenu.cs b/View/FlashCardMenu.cs index 040f2083..ff7dddc0 100644 --- a/View/FlashCardMenu.cs +++ b/View/FlashCardMenu.cs @@ -1,11 +1,4 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using ConsoleTables; +using ConsoleTables; using FlashCardLearning.Controller; using FlashCardLearning.Model.entities; diff --git a/View/MainMenu.cs b/View/MainMenu.cs index ae07e0b4..30230251 100644 --- a/View/MainMenu.cs +++ b/View/MainMenu.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace FlashCardLearning.View +namespace FlashCardLearning.View { internal class MainMenu { diff --git a/View/StackMenu.cs b/View/StackMenu.cs index d36b35bd..79561cfe 100644 --- a/View/StackMenu.cs +++ b/View/StackMenu.cs @@ -1,14 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; +using System.Text.RegularExpressions; using ConsoleTables; using FlashCardLearning.Controller; using FlashCardLearning.Model.entities; -using Microsoft.IdentityModel.Tokens; namespace FlashCardLearning.View { diff --git a/View/StudyMenu.cs b/View/StudyMenu.cs index c9068970..0238c644 100644 --- a/View/StudyMenu.cs +++ b/View/StudyMenu.cs @@ -1,13 +1,6 @@ using ConsoleTables; using FlashCardLearning.Controller; using FlashCardLearning.Model.entities; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; namespace FlashCardLearning.View { From 3c264f1b9fc2a949d18b5c511148ba717570a782 Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Sat, 20 Sep 2025 13:04:36 +0530 Subject: [PATCH 03/13] Removed unessasay assignment --- DataAccess/StackDataAccess.cs | 4 ++-- View/FlashCardMenu.cs | 5 +---- View/StudyMenu.cs | 8 ++++---- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/DataAccess/StackDataAccess.cs b/DataAccess/StackDataAccess.cs index 9fa5b49d..1fab8355 100644 --- a/DataAccess/StackDataAccess.cs +++ b/DataAccess/StackDataAccess.cs @@ -22,7 +22,7 @@ internal void Addstack(Stacks stackEntity) { using (SqlCommand command = new SqlCommand(query, connection)) { - command.Parameters.Add("@stackname", SqlDbType.Int).Value = stackEntity.StackName; + command.Parameters.Add("@stackname", SqlDbType.VarChar).Value = stackEntity.StackName; command.ExecuteNonQuery(); Console.WriteLine(); @@ -86,7 +86,7 @@ internal bool CheckStackAvailable(int stackId) { using (SqlCommand command = new SqlCommand(query, connection)) { - command.Parameters.Add("@stackId", SqlDbType.VarChar).Value = stackId; + command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; object? result = command.ExecuteScalar(); diff --git a/View/FlashCardMenu.cs b/View/FlashCardMenu.cs index ff7dddc0..7abc6196 100644 --- a/View/FlashCardMenu.cs +++ b/View/FlashCardMenu.cs @@ -10,12 +10,9 @@ internal class FlashCardMenu FlashCardController flashCardController = new(); StackController stackController = new(); - int StackId = 0; + int StackId; private void ManageFlashCard() { - - StackMenu stackMenu = new(); - Console.Clear(); ViewFlashCard(); diff --git a/View/StudyMenu.cs b/View/StudyMenu.cs index 0238c644..20b2473a 100644 --- a/View/StudyMenu.cs +++ b/View/StudyMenu.cs @@ -14,12 +14,12 @@ internal class StudyMenu StackController stackController = new(); StudyController studyController = new(); - int StackId = 0; - int totalPoints = 0; - int totalReviewdPoints = 0; + int StackId; + int totalPoints; + int totalReviewdPoints; DateTime sessionStartTime; DateTime sessionEndTime; - int durationPerSession = 0; + int durationPerSession; string FlashCardslist = ""; internal void StudySession() From 5722872b2849576185deefa25119e2b82d2c36fc Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Sat, 20 Sep 2025 13:14:36 +0530 Subject: [PATCH 04/13] Removed duplicate methods --- View/FlashCardMenu.cs | 22 ++-------------------- View/StudyMenu.cs | 23 +---------------------- 2 files changed, 3 insertions(+), 42 deletions(-) diff --git a/View/FlashCardMenu.cs b/View/FlashCardMenu.cs index 7abc6196..b37f925b 100644 --- a/View/FlashCardMenu.cs +++ b/View/FlashCardMenu.cs @@ -9,6 +9,7 @@ internal class FlashCardMenu { FlashCardController flashCardController = new(); StackController stackController = new(); + StackMenu stackMenu = new(); int StackId; private void ManageFlashCard() @@ -60,7 +61,7 @@ internal void SelectStack() Console.Clear(); - ViewStack(); + stackMenu.ViewStack(false); Console.WriteLine("Please Enter the Stack Id to View the Flash Cards and Manage It , enter 0 to return to stack menu"); StackId = stackMenu.ValidateStackId(); @@ -208,24 +209,5 @@ private void RemoveFlashCard() flashCardController.RemoveFlashCard(flashCardId); } - - private void ViewStack() - { - Console.WriteLine("Below are the available stacks"); - Console.WriteLine(); - - List stackList = stackController.ViewStack(); - - var stackTable = new ConsoleTable("Id", "Stack Name"); - - foreach (Stacks stack in stackList) - { - stackTable.AddRow(stack.Id, stack.StackName); - } - stackTable.Write(); - - Console.WriteLine(); - } - } } diff --git a/View/StudyMenu.cs b/View/StudyMenu.cs index 20b2473a..bf5ee1e2 100644 --- a/View/StudyMenu.cs +++ b/View/StudyMenu.cs @@ -219,7 +219,7 @@ private void SelectStack() { Console.Clear(); - ViewStack(); + stackMenu.ViewStack(false); Console.WriteLine("Please Enter the Stack Id to View the Flash Cards and Manage It , enter 0 to return to Previous menu"); Console.WriteLine(); @@ -229,27 +229,6 @@ private void SelectStack() if (StackId != 0) ViewFlashCards(StackId); else mainMenu.UserMainMenue(); } - - public void ViewStack() - { - - Console.WriteLine("Below are the available stacks"); - Console.WriteLine(); - - List stackList = stackController.ViewStack(); - - var stackTable = new ConsoleTable("Id", "Stack Name"); - - foreach (Stacks stack in stackList) - { - stackTable.AddRow(stack.Id, stack.StackName); - } - stackTable.Write(); - - Console.WriteLine(); - - } - private void ViewFlashCards(int StackId) { Console.WriteLine("Below are the Available Flash Cards"); From e3fd149ce03a1ee1365d4744ef28f1df3bffb8b5 Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Tue, 30 Sep 2025 07:05:07 +0530 Subject: [PATCH 05/13] updated gitignore and modified the folder structure --- .gitignore | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index 0d44d8c7..3db39a43 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ # Env files. .env +FlashCards.Review/FlashCard.App/app.config # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs @@ -480,3 +481,9 @@ $RECYCLE.BIN/ *.lnk .idea + + +#temp files +FlashCards.Review/FlashCard.App/bin/ +FlashCards.Review/FlashCard.App/obj/ +FlashCards.Review/FlashCard.App/DataBaseScripts/ \ No newline at end of file From f6b7f2aaacdcea7f26fb0418c6ce6e18d8712fc5 Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Tue, 30 Sep 2025 07:06:31 +0530 Subject: [PATCH 06/13] modified the folder structure --- Controller/FlashCardController.cs | 49 --- Controller/StackController.cs | 52 --- Controller/StudyController.cs | 41 --- DataAccess/FlashCardDataAccess.cs | 184 ---------- DataAccess/StackDataAccess.cs | 212 ----------- DataAccess/StudyDataAccess.cs | 149 -------- DataBaseScripts/FlashCardTables.sql | Bin 14418 -> 0 bytes DataBaseScripts/Tables.sql | 39 --- DataBaseScripts/sesion log.txt | 5 - FlashCardLearning.csproj | 19 - .../FlashCardLearning.sln | 0 Model/entities/FlashCards.cs | 10 - Model/entities/Stacks.cs | 8 - Model/entities/StudySession.cs | 39 --- Program.cs | 5 - View/FlashCardMenu.cs | 213 ----------- View/MainMenu.cs | 49 --- View/StackMenu.cs | 204 ----------- View/StudyMenu.cs | 330 ------------------ app.config | 6 - 20 files changed, 1614 deletions(-) delete mode 100644 Controller/FlashCardController.cs delete mode 100644 Controller/StackController.cs delete mode 100644 Controller/StudyController.cs delete mode 100644 DataAccess/FlashCardDataAccess.cs delete mode 100644 DataAccess/StackDataAccess.cs delete mode 100644 DataAccess/StudyDataAccess.cs delete mode 100644 DataBaseScripts/FlashCardTables.sql delete mode 100644 DataBaseScripts/Tables.sql delete mode 100644 DataBaseScripts/sesion log.txt delete mode 100644 FlashCardLearning.csproj rename FlashCardLearning.sln => FlashCards.Review/FlashCardLearning.sln (100%) delete mode 100644 Model/entities/FlashCards.cs delete mode 100644 Model/entities/Stacks.cs delete mode 100644 Model/entities/StudySession.cs delete mode 100644 Program.cs delete mode 100644 View/FlashCardMenu.cs delete mode 100644 View/MainMenu.cs delete mode 100644 View/StackMenu.cs delete mode 100644 View/StudyMenu.cs delete mode 100644 app.config diff --git a/Controller/FlashCardController.cs b/Controller/FlashCardController.cs deleted file mode 100644 index bc07dea7..00000000 --- a/Controller/FlashCardController.cs +++ /dev/null @@ -1,49 +0,0 @@ -using FlashCardLearning.DataAccess; -using FlashCardLearning.Model.entities; - -namespace FlashCardLearning.Controller -{ - class FlashCardController - { - FlashCardDataAccess flashCardDataAccess = new(); - - internal void CreateFlashCard(string? question, string answer, int stackId) - { - FlashCards flashCardEntity = new(); - flashCardEntity.Question = question; - flashCardEntity.Answer = answer; - flashCardEntity.StackId = stackId; - - flashCardDataAccess.AddFlashCard(flashCardEntity); - } - - internal bool CheckFlashCardAvailable(int flashCardId) - { - bool flashCardAvailable = flashCardDataAccess.CheckFlashCardAvailable(flashCardId); - return flashCardAvailable; - } - - internal void EditFlashCard(int flashCardId, string question, string answer) - { - FlashCards flashCardEntity = new(); - flashCardEntity.Id = flashCardId; - flashCardEntity.Question = question; - flashCardEntity.Answer = answer; - - flashCardDataAccess.UpdateFlashCard(flashCardEntity); - } - - internal void RemoveFlashCard(int flashCardId) - { - flashCardDataAccess.DeleteFlashCard(flashCardId); - } - - internal List ViewFlashCards(int StackId) - { - List flashCards = flashCardDataAccess.SelectFlashCard(StackId); - return flashCards; - } - - - } -} diff --git a/Controller/StackController.cs b/Controller/StackController.cs deleted file mode 100644 index cfc9a894..00000000 --- a/Controller/StackController.cs +++ /dev/null @@ -1,52 +0,0 @@ -using FlashCardLearning.DataAccess; -using FlashCardLearning.Model.entities; - - -namespace FlashCardLearning.Controller -{ - internal class StackController - { - StackDataAccess stackDataAccess = new(); - - internal void CreateStack(string stackName) - { - Stacks stackEntity = new(); - stackEntity.StackName = stackName; - - stackDataAccess.Addstack(stackEntity); - } - - internal List ViewStack() - { - List stacks = stackDataAccess.Selectstack(); - return stacks; - } - - internal bool CheckStackAvailable(int stackId) - { - bool StackAvailable = stackDataAccess.CheckStackAvailable(stackId); - return StackAvailable; - } - - internal void EditStack(int stackId, string stackName) - { - Stacks stackEntity = new(); - - stackEntity.Id = stackId; - stackEntity.StackName = stackName; - - stackDataAccess.UpdateStack(stackEntity); - } - - internal void RemoveStack(int stackId) - { - stackDataAccess.DeleteStack(stackId); - - stackDataAccess.DeleteFlashCards(stackId); - - stackDataAccess.DeleteSudySession(stackId); - } - - - } -} diff --git a/Controller/StudyController.cs b/Controller/StudyController.cs deleted file mode 100644 index c59c9658..00000000 --- a/Controller/StudyController.cs +++ /dev/null @@ -1,41 +0,0 @@ -using FlashCardLearning.DataAccess; -using FlashCardLearning.Model.entities; - -namespace FlashCardLearning.Controller -{ - internal class StudyController - { - StudyDataAccess studyDataAccess = new(); - internal void TrackSession(string flashCardslist, int stackId, int durationPerSession, int totalPoints) - { - StudySession studySession = new(); - studySession.FlashCardsLearned = flashCardslist; - studySession.StackId = stackId; - studySession.SessionDuration = durationPerSession; - studySession.Points = totalPoints; - - studyDataAccess.AddSession(studySession); - } - - - internal List ViewReports(int year) - { - List report = studyDataAccess.SelectReport(year); - return report; - } - - internal List ViewSessionLog(string? startDate, string? endDate) - { - StudySessionHistoryInput studySessionHistoryInput = new(); - - DateOnly startDateOnly = DateOnly.Parse(startDate); - DateOnly endDateOnly = DateOnly.Parse(endDate); - - studySessionHistoryInput.SessionStartDate = startDateOnly; - studySessionHistoryInput.SessionEndDate = endDateOnly; - - List studySessionHistories = studyDataAccess.SelectSessionLog(studySessionHistoryInput); - return studySessionHistories; - } - } -} diff --git a/DataAccess/FlashCardDataAccess.cs b/DataAccess/FlashCardDataAccess.cs deleted file mode 100644 index 3f9fc850..00000000 --- a/DataAccess/FlashCardDataAccess.cs +++ /dev/null @@ -1,184 +0,0 @@ -using FlashCardLearning.Model.entities; -using Microsoft.Data.SqlClient; -using System.Configuration; -using System.Data; - -namespace FlashCardLearning.DataAccess -{ - internal class FlashCardDataAccess - { - - string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"]?.ConnectionString; - - internal void AddFlashCard(FlashCards flashCardEntity) - { - string query = "INSERT INTO FlashCards (question, answer, stack_id) VALUES (@question, @answer, @stackId)"; - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@question", SqlDbType.VarChar).Value = flashCardEntity.Question; - command.Parameters.Add("@answer", SqlDbType.VarChar).Value = flashCardEntity.Answer; - command.Parameters.Add("@stackId", SqlDbType.VarChar).Value = flashCardEntity.StackId; - command.ExecuteNonQuery(); - - Console.WriteLine(); - Console.WriteLine($"Flash Card has been created succesfully"); - Console.WriteLine(); - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - } - - internal List SelectFlashCard(int StackId) - { - - string query = "SELECT id, question, answer FROM FlashCards WHERE stack_id = @StackId"; - - List flashCards = new List(); - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@StackId", SqlDbType.VarChar).Value = StackId; - - using (SqlDataReader reader = command.ExecuteReader()) - { - while (reader.Read()) - { - flashCards.Add(new FlashCards - { - Id = reader.GetInt32(reader.GetOrdinal("Id")), - Question = reader.GetString(reader.GetOrdinal("question")), - Answer = reader.GetString(reader.GetOrdinal("answer")) - }); - } - - } - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - return flashCards; - } - internal bool CheckFlashCardAvailable(int flashCardId) - { - string query = "SELECT id FROM FlashCards WHERE id=@flashCardId"; - - bool flashCardAvailable = true; - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@flashCardId", SqlDbType.Int).Value = flashCardId; - object? result = command.ExecuteScalar(); - if (result == null) - { - flashCardAvailable = false; - } - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - return flashCardAvailable; - } - - internal void UpdateFlashCard(FlashCards flashCardEntity) - { - string question = ""; - string answer = ""; - - if (flashCardEntity.Question != "" && flashCardEntity.Answer != "") - { - question = "question = @question,"; - answer = " answer = @answer"; - - } - else if (flashCardEntity.Answer != "") - { - answer = " answer = @answer"; - } - else if (flashCardEntity.Question != "") - { - question = "question = @question"; - } - - - string query = $"UPDATE FlashCards SET {question} {answer} WHERE id = @flashCardId"; - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@flashCardId", SqlDbType.Int).Value = flashCardEntity.Id; - command.Parameters.Add("@question", SqlDbType.VarChar).Value = flashCardEntity.Question; - command.Parameters.Add("@answer", SqlDbType.VarChar).Value = flashCardEntity.Answer; - command.ExecuteNonQuery(); - - Console.WriteLine(); - Console.WriteLine($"Flash Card updated successfully"); - Console.WriteLine(); - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - } - - internal void DeleteFlashCard(int flashCardId) - { - string query = "DELETE FROM FlashCards WHERE id = @flashCardId"; - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@flashCardId", SqlDbType.Int).Value = flashCardId; - command.ExecuteNonQuery(); - - Console.WriteLine(); - Console.WriteLine($"Flash Card deleted successfully"); - Console.WriteLine(); - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - } - } - -} - diff --git a/DataAccess/StackDataAccess.cs b/DataAccess/StackDataAccess.cs deleted file mode 100644 index 1fab8355..00000000 --- a/DataAccess/StackDataAccess.cs +++ /dev/null @@ -1,212 +0,0 @@ -using Microsoft.Data.SqlClient; -using System.Data; -using System.Configuration; -using FlashCardLearning.Model.entities; - - -namespace FlashCardLearning.DataAccess -{ - internal class StackDataAccess - { - string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"]?.ConnectionString; - - internal void Addstack(Stacks stackEntity) - { - string query = "INSERT INTO Stacks (stack_name) VALUES (@stackname)"; - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@stackname", SqlDbType.VarChar).Value = stackEntity.StackName; - command.ExecuteNonQuery(); - - Console.WriteLine(); - Console.WriteLine($"Stack with name {stackEntity.StackName} has been created succesfully"); - Console.WriteLine(); - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - - } - } - - internal List Selectstack() - { - string query = "SELECT id, stack_name from stacks"; - - List stacks = new List(); - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - using (SqlDataReader reader = command.ExecuteReader()) - { - while (reader.Read()) - { - stacks.Add(new Stacks - { - Id = reader.GetInt32(reader.GetOrdinal("Id")), - StackName = reader.GetString(reader.GetOrdinal("stack_name")) - }); - } - - } - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - return stacks; - } - - internal bool CheckStackAvailable(int stackId) - { - string query = "SELECT id FROM stacks WHERE id=@stackId"; - - bool stackAvailable = true; - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; - - object? result = command.ExecuteScalar(); - - if (result == null) - { - stackAvailable = false; - } - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - return stackAvailable; - } - - internal void UpdateStack(Stacks stacks) - { - string query = "UPDATE stacks SET stack_name = @stackname WHERE id = @stackId"; - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@stackId", SqlDbType.Int).Value = stacks.Id; - command.Parameters.Add("@stackname", SqlDbType.VarChar).Value = stacks.StackName; - - command.ExecuteNonQuery(); - - Console.WriteLine(); - Console.WriteLine($"Stack updated to {stacks.StackName} succesfully"); - Console.WriteLine(); - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - } - - internal void DeleteStack(int stackId) - { - string query = "DELETE FROM stacks WHERE id = @stackId"; - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; - command.ExecuteNonQuery(); - - Console.WriteLine(); - Console.WriteLine($"Stack deleted succesfully"); - Console.WriteLine(); - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - } - - internal void DeleteFlashCards(int stackId) - { - - string query = "DELETE FROM FlashCards WHERE stack_id = @stackId"; - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; - command.ExecuteNonQuery(); - - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - } - internal void DeleteSudySession(int stackId) - { - - string query = "DELETE FROM LearningLog WHERE stack_id = @stackId"; - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; - command.ExecuteNonQuery(); - - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - } - } -} diff --git a/DataAccess/StudyDataAccess.cs b/DataAccess/StudyDataAccess.cs deleted file mode 100644 index 8094c54f..00000000 --- a/DataAccess/StudyDataAccess.cs +++ /dev/null @@ -1,149 +0,0 @@ -using System.Configuration; -using FlashCardLearning.Model.entities; -using Microsoft.Data.SqlClient; -using System.Data; - -namespace FlashCardLearning.DataAccess -{ - internal class StudyDataAccess - { - - string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"]?.ConnectionString; - - internal void AddSession(StudySession studySession) - { - string query = "INSERT INTO LearningLog (flash_cards_reviewed, stack_id, duration_minutes, points) " + - "VALUES (@flashCardslist, @stackId, @durationPerSession, @totalPoints)"; - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@flashCardslist", SqlDbType.VarChar).Value = studySession.FlashCardsLearned; - command.Parameters.Add("@stackId", SqlDbType.VarChar).Value = studySession.StackId; - command.Parameters.Add("@durationPerSession", SqlDbType.VarChar).Value = studySession.SessionDuration; - command.Parameters.Add("@totalPoints", SqlDbType.VarChar).Value = studySession.Points; - command.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - - } - } - - internal List SelectReport(int year) - { - string query = @" - SELECT - s.stack_name, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 1 THEN l.stack_id END) AS January, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 2 THEN l.stack_id END) AS February, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 3 THEN l.stack_id END) AS March, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 4 THEN l.stack_id END) AS April, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 5 THEN l.stack_id END) AS May, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 6 THEN l.stack_id END) AS June, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 7 THEN l.stack_id END) AS July, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 8 THEN l.stack_id END) AS August, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 9 THEN l.stack_id END) AS September, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 10 THEN l.stack_id END) AS October, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 11 THEN l.stack_id END) AS November, - COUNT(CASE WHEN DATEPART(month, l.session_date) = 12 THEN l.stack_id END) AS December - FROM LearningLog l - INNER JOIN Stacks s ON s.id = l.stack_id - WHERE YEAR(l.session_date) = @Year - GROUP BY s.stack_name - ORDER BY s.stack_name;"; - - List reports = new List(); - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@Year", SqlDbType.Int).Value = year; // use Int not VarChar - - using (SqlDataReader reader = command.ExecuteReader()) - { - while (reader.Read()) - { - reports.Add(new StackReport - { - StackName = reader.GetString(reader.GetOrdinal("stack_name")), - January = reader.GetInt32(reader.GetOrdinal("January")), - February = reader.GetInt32(reader.GetOrdinal("February")), - March = reader.GetInt32(reader.GetOrdinal("March")), - April = reader.GetInt32(reader.GetOrdinal("April")), - May = reader.GetInt32(reader.GetOrdinal("May")), - June = reader.GetInt32(reader.GetOrdinal("June")), - July = reader.GetInt32(reader.GetOrdinal("July")), - August = reader.GetInt32(reader.GetOrdinal("August")), - September = reader.GetInt32(reader.GetOrdinal("September")), - October = reader.GetInt32(reader.GetOrdinal("October")), - November = reader.GetInt32(reader.GetOrdinal("November")), - December = reader.GetInt32(reader.GetOrdinal("December")) - }); - } - } - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - return reports; - } - - internal List SelectSessionLog(StudySessionHistoryInput studySessionHistoryInput) - { - string query = @" - select - stack_name,points,session_date from LearningLog l - INNER JOIN Stacks s ON s.id = l.stack_id - where session_date >= @startDate and session_date < @endDate - ORDER BY session_date ASC"; - - List history = new List(); - - using (SqlConnection connection = new SqlConnection(connectionString)) - { - connection.Open(); - try - { - using (SqlCommand command = new SqlCommand(query, connection)) - { - command.Parameters.Add("@startDate", SqlDbType.Date).Value = studySessionHistoryInput.SessionStartDate; // use Int not VarChar - command.Parameters.Add("@endDate", SqlDbType.Date).Value = studySessionHistoryInput.SessionEndDate; - - using (SqlDataReader reader = command.ExecuteReader()) - { - while (reader.Read()) - { - history.Add(new StudySessionHistory - { - StackName = reader.GetString(reader.GetOrdinal("stack_name")), - Points = reader.GetInt32(reader.GetOrdinal("points")), - SessionDate = reader.GetDateTime(reader.GetOrdinal("session_date")), - }); - } - } - } - } - catch (Exception ex) - { - Console.WriteLine($"SQL Error: {ex.Message}"); - } - } - return history; - } - } -} diff --git a/DataBaseScripts/FlashCardTables.sql b/DataBaseScripts/FlashCardTables.sql deleted file mode 100644 index 343f574fd961b11640ade385126206967d00157a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14418 zcmeI3Yfl?T6o%((EA>BE>W4U0N-)?4BJ~3`c8Wqw5=`4PiYyvPlQa;Db7}v4+xMB{ z@m{>^-L*+1z_Ql6J3DiB=3L%6XXfmG{~o#n*L5}b%=O%!+t%GrZsvy8D z;@|pK&qnT*-g)FM^lYRjwBdIk8W--hI~S#z-h8C>L%(~v zYU;n?+A4|n?5^)E;~nV9w#IXyQ4MuI)HwHaN8kI2v4z@?RcBxAx}Gb$`tPddK<#@v zy5i7u+m1@%9@FmO*@UE{r@t zxb93S{pCK0e#1!VAC)Yiq*)dFfqqA+rwM3FZ1Z(d6D=t#2u zQ_{#9ZT^VRkCU-p9IN&5_}cmt?ilZ>>QS0a>yc!&>mGVtf2vv!Bqz=tNeml7hDdWq zW$6C2bg-R{e|FpbB3c7kQcd+9i6)kW{h&3!s`LjP`_i1AWQLZb8|V^OyP|U7wQ}FT zv7?#~MdeV>(4A!4U0ER`qHoydp=u5%y-(KN_FBHL-VIgX&U-p{R3F{9+I`=rcwI(t z-_y^ly|1^@^M^Wq^EG?EPeak|I&3Fc3v{#khu&g)Xi-uYhBZacF9VDAye3^pi?Opm z)YEtRf37~=Bs9w7!nDROjz=#wCm8w|=Lq06aS{at`l^P|g1 zJs9a{XgNQ+fa1r(-V2XTf!e9pvk!hwvso|B(QKT8(z*1~W`e9%am-Iz(h}9K5~|@b zFk2X|1_Yjkk(Ysi2a}oj=J{dCv40M{izCsQupsy(*`8CQgb%j#f0q7FJQfS_N;*C; z|C6Urgec`Akl>L)p92rJDuue{EA!~_bf3BD2*k>hv4oYyttCz)U+3`>f0nn3&))Su zZC$Y-)cWq$c%FT)DCyQznU$>ha-v^6@w#snqRS9%HWV8TM1vT!sTlK~kCj&RzoFxn z-bL#uS{-Qo*!gY!t}Ykb6OJ_$YctNk)%d+3RuwK9|5~1lZLJ8j^jp2QT#WMvjf`u3 zO?ont-mt=f=0_Y(mJsI?m(JGFrgU^w8p%4yn*VQ!yBpHi>#L*2-SvrP5?P#$*C#$N zcUgT}5gIhFz3xtUbYq__(`7{KJZP*?2@A}yKHfCxHy|Oo8r^U1J zb>_VB0nTI5^KySn++UT2f_ zJod1|5qS%d_fTclic4bC`&n2+Tk64Gh!x48ycCG?ZuX2| zGH6Y_XJoLEIwIUEbA@eLz1dg1$?D}@rTa0Tg`yRB3tQ3+{>xja?S&Ra@7LL1F!@BQ z07xXQ1Cf-Ia-3IM#I0t@O=)7WZ)e^GHovrFVt-~rJiOU*npZmO-j)n!dBf88V|}ws z%mbQirlbSz1{*6Ukqu?Ou(rcGk9i*WgUn;L5>ad~=KDZnX)(xTD;JK6Mh!fJEVuNhSL5SLLa zJSW30KCjrlJy|Pd8`LFduOW$8z8)pW1>{=uXjEhywt7LkrEMUSXf?+q5j-(sOGB=P zv_4$5$8svNoTkUHEpIvOB(TngM^@f{Hh(eX65e$GnU(CM?J!4EV)D!1(^>ZzX0r*i zd`m5=`Nk&e9w zd;A z^!Id6-YuC`b#V{93f~^owHgIZSw{S9Jc}cAx&EcCI?7pJq=)%Cz}0)0mc%0c%Fq0& z-ml&y_dNaOQS|jjN8fOC{r3@ZiStDUnQ#Ny%C^snL+*S*^+4Y?WYOh2i13Ar<<*)t zbk&;t#gLiJtT>v~4Bx`otil%_Jsq6;>XYTSCBLRhza^SwjYh~2E~i^rBjIa^I9C?u mMRm#L>wGQtv68s-CtwEgt diff --git a/DataBaseScripts/Tables.sql b/DataBaseScripts/Tables.sql deleted file mode 100644 index 9ce0a79d..00000000 --- a/DataBaseScripts/Tables.sql +++ /dev/null @@ -1,39 +0,0 @@ - - --- Switch to the database -USE FLASH_CARD_LEARNING_DB; -GO - --- ======================== --- Table: Stacks --- ======================== -CREATE TABLE Stacks ( - id INT IDENTITY(1,1) PRIMARY KEY, - stack_name NVARCHAR(100) NOT NULL, - created_date DATETIME NOT NULL DEFAULT GETDATE() -); - --- ======================== --- Table: FlashCards --- ======================== -CREATE TABLE FlashCards ( - id INT IDENTITY(1,1) PRIMARY KEY, - question NVARCHAR(300) NOT NULL, - answer NVARCHAR(300) NOT NULL, - stack_id INT NOT NULL, - created_date DATETIME NOT NULL DEFAULT GETDATE(), - CONSTRAINT FK_FlashCards_Stacks FOREIGN KEY (stack_id) REFERENCES Stacks(id) -); - --- ======================== --- Table: LearningLog --- ======================== -CREATE TABLE LearningLog ( - id INT IDENTITY(1,1) PRIMARY KEY, - flash_cards_reviewed NVARCHAR(max) NOT NULL, - stack_id INT NOT NULL, - session_date DATETIME NOT NULL DEFAULT GETDATE(), - duration_minutes INT NOT NULL, -- store as minutes (e.g., 150 = 2.5 hours) - CONSTRAINT FK_LearningLog_Stacks FOREIGN KEY (stack_id) REFERENCES Stacks(id) -); - diff --git a/DataBaseScripts/sesion log.txt b/DataBaseScripts/sesion log.txt deleted file mode 100644 index 3f1b5ab0..00000000 --- a/DataBaseScripts/sesion log.txt +++ /dev/null @@ -1,5 +0,0 @@ -select ROW_NUMBER() OVER (ORDER BY session_date ASC) AS RowNum, -stack_name,session_date,points from LearningLog l -INNER JOIN Stacks s ON s.id = l.stack_id -where ( (@Year IS NULL OR YEAR(l.session_date) = @Year) AND (@Month IS NULL OR MONTH(l.session_date) = @Month) - AND ( @Day IS NULL OR DAY(l.session_date) = @Day) AND (@Date IS NULL OR CAST(l.session_date AS DATE) = @Date) ) diff --git a/FlashCardLearning.csproj b/FlashCardLearning.csproj deleted file mode 100644 index 5d78ac7a..00000000 --- a/FlashCardLearning.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - Exe - net9.0 - enable - enable - - - - - - - - - - - - diff --git a/FlashCardLearning.sln b/FlashCards.Review/FlashCardLearning.sln similarity index 100% rename from FlashCardLearning.sln rename to FlashCards.Review/FlashCardLearning.sln diff --git a/Model/entities/FlashCards.cs b/Model/entities/FlashCards.cs deleted file mode 100644 index cfbd7f07..00000000 --- a/Model/entities/FlashCards.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace FlashCardLearning.Model.entities -{ - internal class FlashCards - { - public int Id {get; set;} - public string? Question { get; set; } - public string? Answer { get; set; } - public int StackId { get; set; } - } -} diff --git a/Model/entities/Stacks.cs b/Model/entities/Stacks.cs deleted file mode 100644 index fcd35f7c..00000000 --- a/Model/entities/Stacks.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace FlashCardLearning.Model.entities -{ - public class Stacks - { - public int Id {get; set;} - public string? StackName {get; set;} - } -} diff --git a/Model/entities/StudySession.cs b/Model/entities/StudySession.cs deleted file mode 100644 index 3067eff4..00000000 --- a/Model/entities/StudySession.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace FlashCardLearning.Model.entities -{ - internal class StudySession - { - public string FlashCardsLearned { get; set; } - public int StackId { get; set; } - public int SessionDuration { get; set; } - public int Points { get; set; } - } - - internal class StudySessionHistoryInput - { - public DateOnly SessionStartDate { get; set; } - public DateOnly SessionEndDate { get; set; } - } - internal class StudySessionHistory - { - public string StackName { get; set; } - public DateTime SessionDate { get; set; } - public int Points { get; set; } - } - - internal class StackReport - { - public string StackName { get; set; } - public int January { get; set; } - public int February { get; set; } - public int March { get; set; } - public int April { get; set; } - public int May { get; set; } - public int June { get; set; } - public int July { get; set; } - public int August { get; set; } - public int September { get; set; } - public int October { get; set; } - public int November { get; set; } - public int December { get; set; } - } -} diff --git a/Program.cs b/Program.cs deleted file mode 100644 index 934577ea..00000000 --- a/Program.cs +++ /dev/null @@ -1,5 +0,0 @@ -using FlashCardLearning.View; - -MainMenu mainMenu = new(); - -mainMenu.UserMainMenue(); \ No newline at end of file diff --git a/View/FlashCardMenu.cs b/View/FlashCardMenu.cs deleted file mode 100644 index b37f925b..00000000 --- a/View/FlashCardMenu.cs +++ /dev/null @@ -1,213 +0,0 @@ -using ConsoleTables; -using FlashCardLearning.Controller; -using FlashCardLearning.Model.entities; - - -namespace FlashCardLearning.View -{ - internal class FlashCardMenu - { - FlashCardController flashCardController = new(); - StackController stackController = new(); - StackMenu stackMenu = new(); - - int StackId; - private void ManageFlashCard() - { - Console.Clear(); - - ViewFlashCard(); - Console.WriteLine(); - Console.WriteLine("-----------Manage Flash Card Menu-----------"); - Console.WriteLine(); - Console.WriteLine("Enter 1 to create a FlashCard"); - Console.WriteLine("Enter 2 to Edit a FlashCard"); - Console.WriteLine("Enter 3 to Delete a FlashCard"); - Console.WriteLine("Enter 4 to Return to Stack Menu"); - Console.WriteLine(); - var userInput = Console.ReadLine(); - - string[] allowedUserInput = { "1", "2", "3", "4" }; - - while (!allowedUserInput.Contains(userInput)) - { - Console.WriteLine("Please Enter a valid menu number"); - userInput = Console.ReadLine(); - } - - while (true) - { - switch (userInput) - { - case "1": - CreateFlashCard(); - break; - case "2": - EditFlashCard(); - break; - case "3": - RemoveFlashCard(); - break; - case "4": - SelectStack(); - break; - } - } - } - - internal void SelectStack() - { - StackMenu stackMenu = new(); - - Console.Clear(); - - stackMenu.ViewStack(false); - - Console.WriteLine("Please Enter the Stack Id to View the Flash Cards and Manage It , enter 0 to return to stack menu"); - StackId = stackMenu.ValidateStackId(); - - Console.Clear(); - - if (StackId != 0) ManageFlashCard(); - else stackMenu.ManageStacks(); - - } - - private void ViewFlashCard() - { - Console.WriteLine("Below are the Available Flash Cards"); - Console.WriteLine(); - - List flashCards = flashCardController.ViewFlashCards(StackId); - - var flashCardTable = new ConsoleTable("Id", "Question", "Answer"); - - foreach (FlashCards flashCard in flashCards) - { - flashCardTable.AddRow(flashCard.Id, flashCard.Question, flashCard.Answer); - } - flashCardTable.Write(); - - } - - private void CreateFlashCard() - { - Console.Clear(); - Console.WriteLine("Please Enter the Question, Press 0 to Return to Main Menu "); - - string Question = Console.ReadLine(); - - while (string.IsNullOrEmpty(Question) || Question.Length < 2) - { - if (Question == "0") - { - ManageFlashCard(); - return; - } - - Console.WriteLine("Please Enter a Proper Question"); - Question = Console.ReadLine(); - } - - Console.WriteLine("Please Enter the Answer, Press 0 to Return to Main Menu "); - - string Answer = Console.ReadLine(); - - while (string.IsNullOrEmpty(Answer) || Answer.Length < 2) - { - if (Answer == "0") - { - ManageFlashCard(); - return; - } - - Console.WriteLine("Please Enter a Proper Answer"); - Answer = Console.ReadLine(); - } - flashCardController.CreateFlashCard(Question, Answer, StackId); - } - - private void EditFlashCard() - { - Console.Clear(); - - ViewFlashCard(); - Console.WriteLine(); - - int flashCardId = ValidateFlashCardId(); - Console.WriteLine(); - - while (!flashCardController.CheckFlashCardAvailable(flashCardId)) - { - flashCardId = ValidateFlashCardId(); - } - - Console.WriteLine("Please enter the Question to update, Press 0 to Return to Main Menu"); - string question = Console.ReadLine(); - - Console.WriteLine(); - - Console.WriteLine("Please enter the Answer to update, Press 0 to Return to Main Menu"); - string answer = Console.ReadLine(); - - while ((string.IsNullOrEmpty(question) || question.Length < 2) && (string.IsNullOrEmpty(answer) || answer.Length < 2)) - { - if (question == "0") - { - ManageFlashCard(); - return; - } - Console.WriteLine("Please enter either Answer or Question to update"); - question = Console.ReadLine(); - } - - flashCardController.EditFlashCard(flashCardId, question, answer); - } - - public int ValidateFlashCardId() - { - Console.WriteLine("Please enter the FlashCard Id, Press 0 to Return to Main Menu"); - string userInput = Console.ReadLine(); - - int flashCardId = 0; - - bool isInteger = int.TryParse(userInput, out flashCardId); - - - while (flashCardId < 0 || !isInteger) - { - Console.WriteLine("Please Enter a valid FlashCard Id, To Return to Stack Menu Enter 0"); - userInput = Console.ReadLine(); - - isInteger = int.TryParse(userInput, out flashCardId); - } - - if (flashCardId == 0) - { - ManageFlashCard(); - return 0; - } - - return flashCardId; - } - - private void RemoveFlashCard() - { - Console.Clear(); - - ViewFlashCard(); - Console.WriteLine(); - - int flashCardId = ValidateFlashCardId(); - - Console.WriteLine(); - - while (!flashCardController.CheckFlashCardAvailable(flashCardId)) - { - flashCardId = ValidateFlashCardId(); - } - - flashCardController.RemoveFlashCard(flashCardId); - } - } -} diff --git a/View/MainMenu.cs b/View/MainMenu.cs deleted file mode 100644 index 30230251..00000000 --- a/View/MainMenu.cs +++ /dev/null @@ -1,49 +0,0 @@ -namespace FlashCardLearning.View -{ - internal class MainMenu - { - internal void UserMainMenue() - { - StackMenu stackMenu = new(); - StudyMenu studyMenu = new(); - - Console.Clear(); - Console.WriteLine("-----------Welcome to Flash Card Learning App-----------"); - Console.WriteLine("Enter 1 to Manage Stacks and Flash Cards"); - Console.WriteLine("Enter 2 to Start a Learning Session"); - Console.WriteLine("Enter 3 View Study Session Reports"); - Console.WriteLine("Enter 0 to Quit"); - Console.WriteLine(); - var userInput = Console.ReadLine(); - bool runApp = true; - - string[] allowedUserInput = { "1", "2", "3", "0" }; - - while (!allowedUserInput.Contains(userInput)) - { - Console.WriteLine("Please Enter a valid menu number"); - userInput = Console.ReadLine(); - } - - while (runApp) - { - switch (userInput) - { - case "1": - stackMenu.ManageStacks(); - break; - case "2": - studyMenu.StudySession(); - break; - case "3": - studyMenu.ViewReports(); - break; - case "0": - Environment.Exit(0); - break; - } - } - - } - } -} diff --git a/View/StackMenu.cs b/View/StackMenu.cs deleted file mode 100644 index 79561cfe..00000000 --- a/View/StackMenu.cs +++ /dev/null @@ -1,204 +0,0 @@ -using System.Text.RegularExpressions; -using ConsoleTables; -using FlashCardLearning.Controller; -using FlashCardLearning.Model.entities; - -namespace FlashCardLearning.View -{ - internal class StackMenu - { - StackController stackController = new(); - FlashCardMenu flashCardMenu = new(); - MainMenu mainMenu = new(); - - internal void ManageStacks() - { - Console.Clear(); - Console.WriteLine("-----------Manage Stack Menu-----------"); - Console.WriteLine(); - Console.WriteLine("Enter 1 to Create a Stack"); - Console.WriteLine("Enter 2 to Edit a Stack"); - Console.WriteLine("Enter 3 to Delete a Stack"); - Console.WriteLine("Enter 4 to View Available Stacks"); - Console.WriteLine("Enter 5 to View Flash Cards Inside the Stack"); - Console.WriteLine("Enter 6 to Return to Main Menu"); - - var userInput = Console.ReadLine(); - - string[] allowedUserInput = { "1", "2", "3", "4", "5", "6" }; - - while (!allowedUserInput.Contains(userInput)) - { - Console.WriteLine("Please Enter a valid menu number"); - userInput = Console.ReadLine(); - } - bool fromMenu = true; - - while (true) - { - switch (userInput) - { - case "1": - CreateStack(); - break; - case "2": - EditStack(); - break; - case "3": - RemoveStack(); - break; - case "4": - ViewStack(fromMenu); - break; - case "5": - flashCardMenu.SelectStack(); - break; - case "6": - mainMenu.UserMainMenue(); - break; - } - } - } - - private void CreateStack() - { - Console.Clear(); - Console.WriteLine("Please Enter the Stack Name, To Return to Stack Menu Enter 0"); - - string stackName = Console.ReadLine(); - - while (string.IsNullOrEmpty(stackName) || stackName.Length < 2 || !Regex.IsMatch(stackName, @"^[a-zA-Z #\-/]+$")) - { - if (stackName == "0") - { - ManageStacks(); - return; - } - - Console.WriteLine("Please Enter a Proper Stack Name"); - stackName = Console.ReadLine(); - } - stackController.CreateStack(stackName); - } - - private void EditStack() - { - Console.Clear(); - - //display available stacks - ViewStack(false); - Console.WriteLine("Please Enter a valid Stack Id, To Return to Stack Menu Enter 0"); - int StackId = ValidateStackId(); - - while (!stackController.CheckStackAvailable(StackId)) - { - Console.WriteLine(); - Console.WriteLine("Stack Id was not available "); - Console.WriteLine(); - StackId = ValidateStackId(); - } - - //obtain stack name - Console.WriteLine(); - Console.WriteLine("Please Enter a Stack Name to Update, To Return to Stack Menu Enter 0"); - string stackName = Console.ReadLine(); - - while (string.IsNullOrEmpty(stackName) || stackName.Length < 2 || !Regex.IsMatch(stackName, @"^(?!\d+$)[a-zA-Z0-9 #\-/]+$")) - { - if (stackName == "0") - { - ManageStacks(); - return; - } - - Console.WriteLine("Please Enter a Proper Stack Name to Update"); - stackName = Console.ReadLine(); - - } - - stackController.EditStack(StackId, stackName); - } - - public int ValidateStackId() - { - - string userInput = Console.ReadLine(); - - int StackId = 0; - - bool isInteger = int.TryParse(userInput, out StackId); - - - while (StackId < 0 || !isInteger) - { - Console.WriteLine("Please Enter a valid Stack Id, To Return to Stack Menu Enter 0"); - userInput = Console.ReadLine(); - - isInteger = int.TryParse(userInput, out StackId); - } - - if (StackId == 0) - { - ManageStacks(); - return 0; - } - - return StackId; - } - - public void ViewStack(bool fromMenu) - { - - Console.WriteLine("Below are the available stacks"); - - List stackList = stackController.ViewStack(); - - var stackTable = new ConsoleTable("Id", "Stack Name"); - - foreach (Stacks stack in stackList) - { - stackTable.AddRow(stack.Id, stack.StackName); - } - - stackTable.Write(); - - Console.WriteLine(); - - //obtain ID - if (fromMenu) - { - Console.WriteLine("To Return to Stack Menu Enter 0"); - string unserInput = Console.ReadLine(); - - if (unserInput == "0") - { - ManageStacks(); - return; - } - } - } - - private void RemoveStack() - { - Console.Clear(); - //display available stacks - ViewStack(false); - - //obtain ID - Console.WriteLine("Please note that by deleting a stack the related flash cards will also get deleted!!!"); - Console.WriteLine(); - Console.WriteLine("Please Enter a valid Stack Id, To Return to Stack Menu Enter 0"); - int StackId = ValidateStackId(); - - - while (!stackController.CheckStackAvailable(StackId)) - { - StackId = ValidateStackId(); - } - - stackController.RemoveStack(StackId); - - } - - } -} diff --git a/View/StudyMenu.cs b/View/StudyMenu.cs deleted file mode 100644 index bf5ee1e2..00000000 --- a/View/StudyMenu.cs +++ /dev/null @@ -1,330 +0,0 @@ -using ConsoleTables; -using FlashCardLearning.Controller; -using FlashCardLearning.Model.entities; - -namespace FlashCardLearning.View -{ - internal class StudyMenu - { - MainMenu mainMenu = new(); - StackMenu stackMenu = new(); - FlashCardMenu flashCardMenu = new(); - - FlashCardController flashCardController = new(); - StackController stackController = new(); - StudyController studyController = new(); - - int StackId; - int totalPoints; - int totalReviewdPoints; - DateTime sessionStartTime; - DateTime sessionEndTime; - int durationPerSession; - string FlashCardslist = ""; - - internal void StudySession() - { - - Console.Clear(); - Console.WriteLine("-----------Learning Menu-----------"); - Console.WriteLine(); - Console.WriteLine("Enter 1 to Open Avaliable Stacks"); - Console.WriteLine("Enter 2 to Open Learning Session History"); - Console.WriteLine("Enter 0 to Return To Main Menue"); - - string userInput = Console.ReadLine(); - - string[] allowedUserInput = { "1", "2", "0" }; - - while (!allowedUserInput.Contains(userInput)) - { - Console.WriteLine("Please Enter a valid menu number"); - userInput = Console.ReadLine(); - } - - while (true) - { - switch (userInput) - { - case "1": - SelectStack(); - break; - case "2": - ViewSessionLog(); - break; - case "0": - mainMenu.UserMainMenue(); - break; - } - } - } - - private void ViewSessionLog() - { - Console.WriteLine("------------Session Log -----------"); - Console.WriteLine(); - - string pattern = @"^\d{4}-\d{2}-\d{2}$"; - - Console.WriteLine("Please enter the Start Date(yyyy-mm-dd), Enter 0 to Return to Main Menu "); - string startDate = Console.ReadLine(); - Console.WriteLine(); - - if (startDate == "0") - { - StudySession(); - return; - } - while (!System.Text.RegularExpressions.Regex.IsMatch(startDate, pattern) || - !DateTime.TryParseExact(startDate, "yyyy-mm-dd", - System.Globalization.CultureInfo.InvariantCulture, - System.Globalization.DateTimeStyles.None, - out DateTime validDate)) - { - if (startDate == "0") - { - StudySession(); - return; - } - Console.WriteLine("Please enter the Start Date(yyyy-mm-dd) in proper format"); - startDate = Console.ReadLine(); - } - - - Console.WriteLine("Please enter the End Date(yyyy-mm-dd), Enter 0 to Return to Main Menu "); - string endDate = Console.ReadLine(); - Console.WriteLine(); - if (endDate == "0") - { - StudySession(); - return; - } - while (!System.Text.RegularExpressions.Regex.IsMatch(endDate, pattern) || - !DateTime.TryParseExact(startDate, "yyyy-mm-dd", - System.Globalization.CultureInfo.InvariantCulture, - System.Globalization.DateTimeStyles.None, - out DateTime validDate)) - { - if (endDate == "0") - { - StudySession(); - return; - } - Console.WriteLine("Please enter the End Date(yyyy-mm-dd) in proper format"); - endDate = Console.ReadLine(); - - - } - - - List historyList = studyController.ViewSessionLog(startDate, endDate); - - var stackTable = new ConsoleTable("Id", "Stack Name", "Points", "Session Date"); - - int rowCount = 1; - - foreach (StudySessionHistory history in historyList) - { - stackTable.AddRow(rowCount, history.StackName, history.Points, history.SessionDate); - rowCount += 1; - } - stackTable.Write(); - - Console.WriteLine(); - - Console.WriteLine("Enter 0 to return to Previous menu"); - string userInput = Console.ReadLine(); - - if (userInput == "0") - { - StudySession(); - return; - } - } - - internal void ViewReports() - { - - Console.WriteLine("Please Enter a year in YYYY format to generate report, enter 0 to return to Previous menu"); - Console.WriteLine(); - - string year = Console.ReadLine(); - - int YearInput = 0; - - while (string.IsNullOrEmpty(year) || year.Length != 4 || !int.TryParse(year, out YearInput)) - { - if (year == "0") - { - StudySession(); - return; - } - - Console.WriteLine("Please Enter year in YYYY format"); - year = Console.ReadLine(); - } - - if (YearInput == 0) mainMenu.UserMainMenue(); - - List studySessions = studyController.ViewReports(YearInput); - - var ReportTable = new ConsoleTable( - "Stack Name", - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" - ); - - // Add rows for each stack - foreach (StackReport studySession in studySessions) - { - ReportTable.AddRow( - studySession.StackName, - studySession.January, - studySession.February, - studySession.March, - studySession.April, - studySession.May, - studySession.June, - studySession.July, - studySession.August, - studySession.September, - studySession.October, - studySession.November, - studySession.December - ); - } - - ReportTable.Write(); - - Console.WriteLine(); - Console.WriteLine("Enter 0 to return to Previous menu"); - Console.WriteLine(); - - string exit = Console.ReadLine(); - - if (exit == "0") mainMenu.UserMainMenue(); - } - - private void SelectStack() - { - Console.Clear(); - - stackMenu.ViewStack(false); - - Console.WriteLine("Please Enter the Stack Id to View the Flash Cards and Manage It , enter 0 to return to Previous menu"); - Console.WriteLine(); - - StackId = stackMenu.ValidateStackId(); - - if (StackId != 0) ViewFlashCards(StackId); - else mainMenu.UserMainMenue(); - } - private void ViewFlashCards(int StackId) - { - Console.WriteLine("Below are the Available Flash Cards"); - Console.WriteLine(); - - List flashCards = flashCardController.ViewFlashCards(StackId); - - var flashCardTable = new ConsoleTable("Id", "Question"); - - foreach (FlashCards flashCard in flashCards) - { - flashCardTable.AddRow(flashCard.Id, flashCard.Question); - } - - flashCardTable.Write(); - - AnswerFlashCard(flashCards); - } - - private void AnswerFlashCard(List FlashCards) - { - sessionStartTime = DateTime.Now; - - Console.WriteLine("Please enter the id of the flash card you choose to answer. enter 0 to return to Previous menu"); - - int flashCardId = flashCardMenu.ValidateFlashCardId(); - - if (flashCardId == 0) - { - Console.Clear(); - - Console.WriteLine(); - - sessionEndTime = DateTime.Now; - - GetDurationPerSession(); - - studyController.TrackSession(FlashCardslist, StackId, durationPerSession, totalPoints); - - SelectStack(); - - totalPoints = 0; - - } - - Console.WriteLine("Please enter the answer"); - - string answer = Console.ReadLine(); - string correctAnswer = ""; - - foreach (FlashCards flashCard in FlashCards) - { - - if (flashCard.Id == flashCardId) - { - totalReviewdPoints += 20; - correctAnswer = flashCard.Answer; - } - } - - if (answer == correctAnswer) - { - Console.Clear(); - - Console.WriteLine("The answer you entered was correct. 20 points added !!"); - Console.WriteLine(); - - totalPoints += 20; - - FlashCardslist += $"{flashCardId},"; - - Console.WriteLine($"You Scored {totalPoints} out of {totalReviewdPoints} points"); - Console.WriteLine(); - - ViewFlashCards(StackId); - - } - else - { - Console.Clear(); - - Console.WriteLine("The answer you entered was Incorrect!!. Below is the correct answer"); - Console.WriteLine(); - - Console.WriteLine($"Answer : {correctAnswer}"); - Console.WriteLine(); - - ViewFlashCards(StackId); - } - } - - private void GetDurationPerSession() - { - TimeSpan duration = sessionEndTime.Subtract(sessionStartTime); - - durationPerSession = duration.Minutes; - } - } -} diff --git a/app.config b/app.config deleted file mode 100644 index 8b2cd113..00000000 --- a/app.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From faab5c232e37128c6dc82532cdb538667d8e5f0d Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Tue, 30 Sep 2025 07:12:11 +0530 Subject: [PATCH 07/13] modified the folder structure --- .gitignore | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 3db39a43..82908131 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,7 @@ # Env files. .env -FlashCards.Review/FlashCard.App/app.config + # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs @@ -483,7 +483,7 @@ $RECYCLE.BIN/ .idea -#temp files -FlashCards.Review/FlashCard.App/bin/ -FlashCards.Review/FlashCard.App/obj/ -FlashCards.Review/FlashCard.App/DataBaseScripts/ \ No newline at end of file + #temp files + FlashCards.Review/FlashCard.App/bin/ + FlashCards.Review/FlashCard.App/obj/ + FlashCards.Review/FlashCard.App/DataBaseScripts/ \ No newline at end of file From 17dc6d803272c4a85c59c53e8bc21f019dffd9b7 Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Tue, 30 Sep 2025 07:18:01 +0530 Subject: [PATCH 08/13] Modified folder strucuture --- .../Controller/FlashCardController.cs | 49 + .../Controller/StackController.cs | 52 + .../Controller/StudyController.cs | 41 + .../DataAccess/FlashCardDataAccess.cs | 184 ++ .../DataAccess/StackDataAccess.cs | 212 ++ .../DataAccess/StudyDataAccess.cs | 149 ++ .../DataBaseScripts/FlashCardTables.sql | Bin 0 -> 14418 bytes .../FlashCard.App/DataBaseScripts/Tables.sql | 39 + .../DataBaseScripts/sesion log.txt | 5 + .../FlashCard.App/FlashCardLearning.csproj | 19 + .../FlashCard.App/Helper/utilities.cs | 41 + .../Model/entities/FlashCards.cs | 10 + .../FlashCard.App/Model/entities/Stacks.cs | 8 + .../Model/entities/StudySession.cs | 39 + FlashCards.Review/FlashCard.App/Program.cs | 5 + .../FlashCard.App/View/FlashCardMenu.cs | 190 ++ .../FlashCard.App/View/MainMenu.cs | 49 + .../FlashCard.App/View/StackMenu.cs | 204 ++ .../FlashCard.App/View/StudyMenu.cs | 331 +++ FlashCards.Review/FlashCard.App/app.config | 6 + ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../net9.0/FlashCardLearning.AssemblyInfo.cs | 23 + ...FlashCardLearning.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../FlashCardLearning.GlobalUsings.g.cs | 8 + .../net9.0/FlashCardLearning.assets.cache | Bin 0 -> 32298 bytes ...ardLearning.csproj.AssemblyReference.cache | Bin 0 -> 21595 bytes ...CardLearning.csproj.BuildWithSkipAnalyzers | 0 ...shCardLearning.csproj.FileListAbsolute.txt | 77 + .../obj/Debug/net9.0/apphost.exe | Bin 0 -> 145408 bytes ...FlashCardLearning.csproj.nuget.dgspec.json | 99 + .../FlashCardLearning.csproj.nuget.g.props | 16 + .../FlashCardLearning.csproj.nuget.g.targets | 9 + .../FlashCard.App/obj/project.assets.json | 2130 +++++++++++++++++ .../FlashCard.App/obj/project.nuget.cache | 51 + 35 files changed, 4066 insertions(+) create mode 100644 FlashCards.Review/FlashCard.App/Controller/FlashCardController.cs create mode 100644 FlashCards.Review/FlashCard.App/Controller/StackController.cs create mode 100644 FlashCards.Review/FlashCard.App/Controller/StudyController.cs create mode 100644 FlashCards.Review/FlashCard.App/DataAccess/FlashCardDataAccess.cs create mode 100644 FlashCards.Review/FlashCard.App/DataAccess/StackDataAccess.cs create mode 100644 FlashCards.Review/FlashCard.App/DataAccess/StudyDataAccess.cs create mode 100644 FlashCards.Review/FlashCard.App/DataBaseScripts/FlashCardTables.sql create mode 100644 FlashCards.Review/FlashCard.App/DataBaseScripts/Tables.sql create mode 100644 FlashCards.Review/FlashCard.App/DataBaseScripts/sesion log.txt create mode 100644 FlashCards.Review/FlashCard.App/FlashCardLearning.csproj create mode 100644 FlashCards.Review/FlashCard.App/Helper/utilities.cs create mode 100644 FlashCards.Review/FlashCard.App/Model/entities/FlashCards.cs create mode 100644 FlashCards.Review/FlashCard.App/Model/entities/Stacks.cs create mode 100644 FlashCards.Review/FlashCard.App/Model/entities/StudySession.cs create mode 100644 FlashCards.Review/FlashCard.App/Program.cs create mode 100644 FlashCards.Review/FlashCard.App/View/FlashCardMenu.cs create mode 100644 FlashCards.Review/FlashCard.App/View/MainMenu.cs create mode 100644 FlashCards.Review/FlashCard.App/View/StackMenu.cs create mode 100644 FlashCards.Review/FlashCard.App/View/StudyMenu.cs create mode 100644 FlashCards.Review/FlashCard.App/app.config create mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfo.cs create mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfoInputs.cache create mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GlobalUsings.g.cs create mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.assets.cache create mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.AssemblyReference.cache create mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.BuildWithSkipAnalyzers create mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.FileListAbsolute.txt create mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/apphost.exe create mode 100644 FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.dgspec.json create mode 100644 FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.props create mode 100644 FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.targets create mode 100644 FlashCards.Review/FlashCard.App/obj/project.assets.json create mode 100644 FlashCards.Review/FlashCard.App/obj/project.nuget.cache diff --git a/FlashCards.Review/FlashCard.App/Controller/FlashCardController.cs b/FlashCards.Review/FlashCard.App/Controller/FlashCardController.cs new file mode 100644 index 00000000..bc07dea7 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/Controller/FlashCardController.cs @@ -0,0 +1,49 @@ +using FlashCardLearning.DataAccess; +using FlashCardLearning.Model.entities; + +namespace FlashCardLearning.Controller +{ + class FlashCardController + { + FlashCardDataAccess flashCardDataAccess = new(); + + internal void CreateFlashCard(string? question, string answer, int stackId) + { + FlashCards flashCardEntity = new(); + flashCardEntity.Question = question; + flashCardEntity.Answer = answer; + flashCardEntity.StackId = stackId; + + flashCardDataAccess.AddFlashCard(flashCardEntity); + } + + internal bool CheckFlashCardAvailable(int flashCardId) + { + bool flashCardAvailable = flashCardDataAccess.CheckFlashCardAvailable(flashCardId); + return flashCardAvailable; + } + + internal void EditFlashCard(int flashCardId, string question, string answer) + { + FlashCards flashCardEntity = new(); + flashCardEntity.Id = flashCardId; + flashCardEntity.Question = question; + flashCardEntity.Answer = answer; + + flashCardDataAccess.UpdateFlashCard(flashCardEntity); + } + + internal void RemoveFlashCard(int flashCardId) + { + flashCardDataAccess.DeleteFlashCard(flashCardId); + } + + internal List ViewFlashCards(int StackId) + { + List flashCards = flashCardDataAccess.SelectFlashCard(StackId); + return flashCards; + } + + + } +} diff --git a/FlashCards.Review/FlashCard.App/Controller/StackController.cs b/FlashCards.Review/FlashCard.App/Controller/StackController.cs new file mode 100644 index 00000000..cfc9a894 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/Controller/StackController.cs @@ -0,0 +1,52 @@ +using FlashCardLearning.DataAccess; +using FlashCardLearning.Model.entities; + + +namespace FlashCardLearning.Controller +{ + internal class StackController + { + StackDataAccess stackDataAccess = new(); + + internal void CreateStack(string stackName) + { + Stacks stackEntity = new(); + stackEntity.StackName = stackName; + + stackDataAccess.Addstack(stackEntity); + } + + internal List ViewStack() + { + List stacks = stackDataAccess.Selectstack(); + return stacks; + } + + internal bool CheckStackAvailable(int stackId) + { + bool StackAvailable = stackDataAccess.CheckStackAvailable(stackId); + return StackAvailable; + } + + internal void EditStack(int stackId, string stackName) + { + Stacks stackEntity = new(); + + stackEntity.Id = stackId; + stackEntity.StackName = stackName; + + stackDataAccess.UpdateStack(stackEntity); + } + + internal void RemoveStack(int stackId) + { + stackDataAccess.DeleteStack(stackId); + + stackDataAccess.DeleteFlashCards(stackId); + + stackDataAccess.DeleteSudySession(stackId); + } + + + } +} diff --git a/FlashCards.Review/FlashCard.App/Controller/StudyController.cs b/FlashCards.Review/FlashCard.App/Controller/StudyController.cs new file mode 100644 index 00000000..c59c9658 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/Controller/StudyController.cs @@ -0,0 +1,41 @@ +using FlashCardLearning.DataAccess; +using FlashCardLearning.Model.entities; + +namespace FlashCardLearning.Controller +{ + internal class StudyController + { + StudyDataAccess studyDataAccess = new(); + internal void TrackSession(string flashCardslist, int stackId, int durationPerSession, int totalPoints) + { + StudySession studySession = new(); + studySession.FlashCardsLearned = flashCardslist; + studySession.StackId = stackId; + studySession.SessionDuration = durationPerSession; + studySession.Points = totalPoints; + + studyDataAccess.AddSession(studySession); + } + + + internal List ViewReports(int year) + { + List report = studyDataAccess.SelectReport(year); + return report; + } + + internal List ViewSessionLog(string? startDate, string? endDate) + { + StudySessionHistoryInput studySessionHistoryInput = new(); + + DateOnly startDateOnly = DateOnly.Parse(startDate); + DateOnly endDateOnly = DateOnly.Parse(endDate); + + studySessionHistoryInput.SessionStartDate = startDateOnly; + studySessionHistoryInput.SessionEndDate = endDateOnly; + + List studySessionHistories = studyDataAccess.SelectSessionLog(studySessionHistoryInput); + return studySessionHistories; + } + } +} diff --git a/FlashCards.Review/FlashCard.App/DataAccess/FlashCardDataAccess.cs b/FlashCards.Review/FlashCard.App/DataAccess/FlashCardDataAccess.cs new file mode 100644 index 00000000..3f9fc850 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/DataAccess/FlashCardDataAccess.cs @@ -0,0 +1,184 @@ +using FlashCardLearning.Model.entities; +using Microsoft.Data.SqlClient; +using System.Configuration; +using System.Data; + +namespace FlashCardLearning.DataAccess +{ + internal class FlashCardDataAccess + { + + string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"]?.ConnectionString; + + internal void AddFlashCard(FlashCards flashCardEntity) + { + string query = "INSERT INTO FlashCards (question, answer, stack_id) VALUES (@question, @answer, @stackId)"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@question", SqlDbType.VarChar).Value = flashCardEntity.Question; + command.Parameters.Add("@answer", SqlDbType.VarChar).Value = flashCardEntity.Answer; + command.Parameters.Add("@stackId", SqlDbType.VarChar).Value = flashCardEntity.StackId; + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Flash Card has been created succesfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + + internal List SelectFlashCard(int StackId) + { + + string query = "SELECT id, question, answer FROM FlashCards WHERE stack_id = @StackId"; + + List flashCards = new List(); + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@StackId", SqlDbType.VarChar).Value = StackId; + + using (SqlDataReader reader = command.ExecuteReader()) + { + while (reader.Read()) + { + flashCards.Add(new FlashCards + { + Id = reader.GetInt32(reader.GetOrdinal("Id")), + Question = reader.GetString(reader.GetOrdinal("question")), + Answer = reader.GetString(reader.GetOrdinal("answer")) + }); + } + + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return flashCards; + } + internal bool CheckFlashCardAvailable(int flashCardId) + { + string query = "SELECT id FROM FlashCards WHERE id=@flashCardId"; + + bool flashCardAvailable = true; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@flashCardId", SqlDbType.Int).Value = flashCardId; + object? result = command.ExecuteScalar(); + if (result == null) + { + flashCardAvailable = false; + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return flashCardAvailable; + } + + internal void UpdateFlashCard(FlashCards flashCardEntity) + { + string question = ""; + string answer = ""; + + if (flashCardEntity.Question != "" && flashCardEntity.Answer != "") + { + question = "question = @question,"; + answer = " answer = @answer"; + + } + else if (flashCardEntity.Answer != "") + { + answer = " answer = @answer"; + } + else if (flashCardEntity.Question != "") + { + question = "question = @question"; + } + + + string query = $"UPDATE FlashCards SET {question} {answer} WHERE id = @flashCardId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@flashCardId", SqlDbType.Int).Value = flashCardEntity.Id; + command.Parameters.Add("@question", SqlDbType.VarChar).Value = flashCardEntity.Question; + command.Parameters.Add("@answer", SqlDbType.VarChar).Value = flashCardEntity.Answer; + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Flash Card updated successfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + + internal void DeleteFlashCard(int flashCardId) + { + string query = "DELETE FROM FlashCards WHERE id = @flashCardId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@flashCardId", SqlDbType.Int).Value = flashCardId; + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Flash Card deleted successfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + } + +} + diff --git a/FlashCards.Review/FlashCard.App/DataAccess/StackDataAccess.cs b/FlashCards.Review/FlashCard.App/DataAccess/StackDataAccess.cs new file mode 100644 index 00000000..1fab8355 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/DataAccess/StackDataAccess.cs @@ -0,0 +1,212 @@ +using Microsoft.Data.SqlClient; +using System.Data; +using System.Configuration; +using FlashCardLearning.Model.entities; + + +namespace FlashCardLearning.DataAccess +{ + internal class StackDataAccess + { + string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"]?.ConnectionString; + + internal void Addstack(Stacks stackEntity) + { + string query = "INSERT INTO Stacks (stack_name) VALUES (@stackname)"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackname", SqlDbType.VarChar).Value = stackEntity.StackName; + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Stack with name {stackEntity.StackName} has been created succesfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + + } + } + + internal List Selectstack() + { + string query = "SELECT id, stack_name from stacks"; + + List stacks = new List(); + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + using (SqlDataReader reader = command.ExecuteReader()) + { + while (reader.Read()) + { + stacks.Add(new Stacks + { + Id = reader.GetInt32(reader.GetOrdinal("Id")), + StackName = reader.GetString(reader.GetOrdinal("stack_name")) + }); + } + + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return stacks; + } + + internal bool CheckStackAvailable(int stackId) + { + string query = "SELECT id FROM stacks WHERE id=@stackId"; + + bool stackAvailable = true; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; + + object? result = command.ExecuteScalar(); + + if (result == null) + { + stackAvailable = false; + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return stackAvailable; + } + + internal void UpdateStack(Stacks stacks) + { + string query = "UPDATE stacks SET stack_name = @stackname WHERE id = @stackId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackId", SqlDbType.Int).Value = stacks.Id; + command.Parameters.Add("@stackname", SqlDbType.VarChar).Value = stacks.StackName; + + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Stack updated to {stacks.StackName} succesfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + + internal void DeleteStack(int stackId) + { + string query = "DELETE FROM stacks WHERE id = @stackId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; + command.ExecuteNonQuery(); + + Console.WriteLine(); + Console.WriteLine($"Stack deleted succesfully"); + Console.WriteLine(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + + internal void DeleteFlashCards(int stackId) + { + + string query = "DELETE FROM FlashCards WHERE stack_id = @stackId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; + command.ExecuteNonQuery(); + + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + internal void DeleteSudySession(int stackId) + { + + string query = "DELETE FROM LearningLog WHERE stack_id = @stackId"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@stackId", SqlDbType.Int).Value = stackId; + command.ExecuteNonQuery(); + + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + } + } +} diff --git a/FlashCards.Review/FlashCard.App/DataAccess/StudyDataAccess.cs b/FlashCards.Review/FlashCard.App/DataAccess/StudyDataAccess.cs new file mode 100644 index 00000000..8094c54f --- /dev/null +++ b/FlashCards.Review/FlashCard.App/DataAccess/StudyDataAccess.cs @@ -0,0 +1,149 @@ +using System.Configuration; +using FlashCardLearning.Model.entities; +using Microsoft.Data.SqlClient; +using System.Data; + +namespace FlashCardLearning.DataAccess +{ + internal class StudyDataAccess + { + + string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"]?.ConnectionString; + + internal void AddSession(StudySession studySession) + { + string query = "INSERT INTO LearningLog (flash_cards_reviewed, stack_id, duration_minutes, points) " + + "VALUES (@flashCardslist, @stackId, @durationPerSession, @totalPoints)"; + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@flashCardslist", SqlDbType.VarChar).Value = studySession.FlashCardsLearned; + command.Parameters.Add("@stackId", SqlDbType.VarChar).Value = studySession.StackId; + command.Parameters.Add("@durationPerSession", SqlDbType.VarChar).Value = studySession.SessionDuration; + command.Parameters.Add("@totalPoints", SqlDbType.VarChar).Value = studySession.Points; + command.ExecuteNonQuery(); + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + + } + } + + internal List SelectReport(int year) + { + string query = @" + SELECT + s.stack_name, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 1 THEN l.stack_id END) AS January, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 2 THEN l.stack_id END) AS February, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 3 THEN l.stack_id END) AS March, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 4 THEN l.stack_id END) AS April, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 5 THEN l.stack_id END) AS May, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 6 THEN l.stack_id END) AS June, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 7 THEN l.stack_id END) AS July, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 8 THEN l.stack_id END) AS August, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 9 THEN l.stack_id END) AS September, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 10 THEN l.stack_id END) AS October, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 11 THEN l.stack_id END) AS November, + COUNT(CASE WHEN DATEPART(month, l.session_date) = 12 THEN l.stack_id END) AS December + FROM LearningLog l + INNER JOIN Stacks s ON s.id = l.stack_id + WHERE YEAR(l.session_date) = @Year + GROUP BY s.stack_name + ORDER BY s.stack_name;"; + + List reports = new List(); + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@Year", SqlDbType.Int).Value = year; // use Int not VarChar + + using (SqlDataReader reader = command.ExecuteReader()) + { + while (reader.Read()) + { + reports.Add(new StackReport + { + StackName = reader.GetString(reader.GetOrdinal("stack_name")), + January = reader.GetInt32(reader.GetOrdinal("January")), + February = reader.GetInt32(reader.GetOrdinal("February")), + March = reader.GetInt32(reader.GetOrdinal("March")), + April = reader.GetInt32(reader.GetOrdinal("April")), + May = reader.GetInt32(reader.GetOrdinal("May")), + June = reader.GetInt32(reader.GetOrdinal("June")), + July = reader.GetInt32(reader.GetOrdinal("July")), + August = reader.GetInt32(reader.GetOrdinal("August")), + September = reader.GetInt32(reader.GetOrdinal("September")), + October = reader.GetInt32(reader.GetOrdinal("October")), + November = reader.GetInt32(reader.GetOrdinal("November")), + December = reader.GetInt32(reader.GetOrdinal("December")) + }); + } + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return reports; + } + + internal List SelectSessionLog(StudySessionHistoryInput studySessionHistoryInput) + { + string query = @" + select + stack_name,points,session_date from LearningLog l + INNER JOIN Stacks s ON s.id = l.stack_id + where session_date >= @startDate and session_date < @endDate + ORDER BY session_date ASC"; + + List history = new List(); + + using (SqlConnection connection = new SqlConnection(connectionString)) + { + connection.Open(); + try + { + using (SqlCommand command = new SqlCommand(query, connection)) + { + command.Parameters.Add("@startDate", SqlDbType.Date).Value = studySessionHistoryInput.SessionStartDate; // use Int not VarChar + command.Parameters.Add("@endDate", SqlDbType.Date).Value = studySessionHistoryInput.SessionEndDate; + + using (SqlDataReader reader = command.ExecuteReader()) + { + while (reader.Read()) + { + history.Add(new StudySessionHistory + { + StackName = reader.GetString(reader.GetOrdinal("stack_name")), + Points = reader.GetInt32(reader.GetOrdinal("points")), + SessionDate = reader.GetDateTime(reader.GetOrdinal("session_date")), + }); + } + } + } + } + catch (Exception ex) + { + Console.WriteLine($"SQL Error: {ex.Message}"); + } + } + return history; + } + } +} diff --git a/FlashCards.Review/FlashCard.App/DataBaseScripts/FlashCardTables.sql b/FlashCards.Review/FlashCard.App/DataBaseScripts/FlashCardTables.sql new file mode 100644 index 0000000000000000000000000000000000000000..343f574fd961b11640ade385126206967d00157a GIT binary patch literal 14418 zcmeI3Yfl?T6o%((EA>BE>W4U0N-)?4BJ~3`c8Wqw5=`4PiYyvPlQa;Db7}v4+xMB{ z@m{>^-L*+1z_Ql6J3DiB=3L%6XXfmG{~o#n*L5}b%=O%!+t%GrZsvy8D z;@|pK&qnT*-g)FM^lYRjwBdIk8W--hI~S#z-h8C>L%(~v zYU;n?+A4|n?5^)E;~nV9w#IXyQ4MuI)HwHaN8kI2v4z@?RcBxAx}Gb$`tPddK<#@v zy5i7u+m1@%9@FmO*@UE{r@t zxb93S{pCK0e#1!VAC)Yiq*)dFfqqA+rwM3FZ1Z(d6D=t#2u zQ_{#9ZT^VRkCU-p9IN&5_}cmt?ilZ>>QS0a>yc!&>mGVtf2vv!Bqz=tNeml7hDdWq zW$6C2bg-R{e|FpbB3c7kQcd+9i6)kW{h&3!s`LjP`_i1AWQLZb8|V^OyP|U7wQ}FT zv7?#~MdeV>(4A!4U0ER`qHoydp=u5%y-(KN_FBHL-VIgX&U-p{R3F{9+I`=rcwI(t z-_y^ly|1^@^M^Wq^EG?EPeak|I&3Fc3v{#khu&g)Xi-uYhBZacF9VDAye3^pi?Opm z)YEtRf37~=Bs9w7!nDROjz=#wCm8w|=Lq06aS{at`l^P|g1 zJs9a{XgNQ+fa1r(-V2XTf!e9pvk!hwvso|B(QKT8(z*1~W`e9%am-Iz(h}9K5~|@b zFk2X|1_Yjkk(Ysi2a}oj=J{dCv40M{izCsQupsy(*`8CQgb%j#f0q7FJQfS_N;*C; z|C6Urgec`Akl>L)p92rJDuue{EA!~_bf3BD2*k>hv4oYyttCz)U+3`>f0nn3&))Su zZC$Y-)cWq$c%FT)DCyQznU$>ha-v^6@w#snqRS9%HWV8TM1vT!sTlK~kCj&RzoFxn z-bL#uS{-Qo*!gY!t}Ykb6OJ_$YctNk)%d+3RuwK9|5~1lZLJ8j^jp2QT#WMvjf`u3 zO?ont-mt=f=0_Y(mJsI?m(JGFrgU^w8p%4yn*VQ!yBpHi>#L*2-SvrP5?P#$*C#$N zcUgT}5gIhFz3xtUbYq__(`7{KJZP*?2@A}yKHfCxHy|Oo8r^U1J zb>_VB0nTI5^KySn++UT2f_ zJod1|5qS%d_fTclic4bC`&n2+Tk64Gh!x48ycCG?ZuX2| zGH6Y_XJoLEIwIUEbA@eLz1dg1$?D}@rTa0Tg`yRB3tQ3+{>xja?S&Ra@7LL1F!@BQ z07xXQ1Cf-Ia-3IM#I0t@O=)7WZ)e^GHovrFVt-~rJiOU*npZmO-j)n!dBf88V|}ws z%mbQirlbSz1{*6Ukqu?Ou(rcGk9i*WgUn;L5>ad~=KDZnX)(xTD;JK6Mh!fJEVuNhSL5SLLa zJSW30KCjrlJy|Pd8`LFduOW$8z8)pW1>{=uXjEhywt7LkrEMUSXf?+q5j-(sOGB=P zv_4$5$8svNoTkUHEpIvOB(TngM^@f{Hh(eX65e$GnU(CM?J!4EV)D!1(^>ZzX0r*i zd`m5=`Nk&e9w zd;A z^!Id6-YuC`b#V{93f~^owHgIZSw{S9Jc}cAx&EcCI?7pJq=)%Cz}0)0mc%0c%Fq0& z-ml&y_dNaOQS|jjN8fOC{r3@ZiStDUnQ#Ny%C^snL+*S*^+4Y?WYOh2i13Ar<<*)t zbk&;t#gLiJtT>v~4Bx`otil%_Jsq6;>XYTSCBLRhza^SwjYh~2E~i^rBjIa^I9C?u mMRm#L>wGQtv68s-CtwEgt literal 0 HcmV?d00001 diff --git a/FlashCards.Review/FlashCard.App/DataBaseScripts/Tables.sql b/FlashCards.Review/FlashCard.App/DataBaseScripts/Tables.sql new file mode 100644 index 00000000..9ce0a79d --- /dev/null +++ b/FlashCards.Review/FlashCard.App/DataBaseScripts/Tables.sql @@ -0,0 +1,39 @@ + + +-- Switch to the database +USE FLASH_CARD_LEARNING_DB; +GO + +-- ======================== +-- Table: Stacks +-- ======================== +CREATE TABLE Stacks ( + id INT IDENTITY(1,1) PRIMARY KEY, + stack_name NVARCHAR(100) NOT NULL, + created_date DATETIME NOT NULL DEFAULT GETDATE() +); + +-- ======================== +-- Table: FlashCards +-- ======================== +CREATE TABLE FlashCards ( + id INT IDENTITY(1,1) PRIMARY KEY, + question NVARCHAR(300) NOT NULL, + answer NVARCHAR(300) NOT NULL, + stack_id INT NOT NULL, + created_date DATETIME NOT NULL DEFAULT GETDATE(), + CONSTRAINT FK_FlashCards_Stacks FOREIGN KEY (stack_id) REFERENCES Stacks(id) +); + +-- ======================== +-- Table: LearningLog +-- ======================== +CREATE TABLE LearningLog ( + id INT IDENTITY(1,1) PRIMARY KEY, + flash_cards_reviewed NVARCHAR(max) NOT NULL, + stack_id INT NOT NULL, + session_date DATETIME NOT NULL DEFAULT GETDATE(), + duration_minutes INT NOT NULL, -- store as minutes (e.g., 150 = 2.5 hours) + CONSTRAINT FK_LearningLog_Stacks FOREIGN KEY (stack_id) REFERENCES Stacks(id) +); + diff --git a/FlashCards.Review/FlashCard.App/DataBaseScripts/sesion log.txt b/FlashCards.Review/FlashCard.App/DataBaseScripts/sesion log.txt new file mode 100644 index 00000000..3f1b5ab0 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/DataBaseScripts/sesion log.txt @@ -0,0 +1,5 @@ +select ROW_NUMBER() OVER (ORDER BY session_date ASC) AS RowNum, +stack_name,session_date,points from LearningLog l +INNER JOIN Stacks s ON s.id = l.stack_id +where ( (@Year IS NULL OR YEAR(l.session_date) = @Year) AND (@Month IS NULL OR MONTH(l.session_date) = @Month) + AND ( @Day IS NULL OR DAY(l.session_date) = @Day) AND (@Date IS NULL OR CAST(l.session_date AS DATE) = @Date) ) diff --git a/FlashCards.Review/FlashCard.App/FlashCardLearning.csproj b/FlashCards.Review/FlashCard.App/FlashCardLearning.csproj new file mode 100644 index 00000000..5d78ac7a --- /dev/null +++ b/FlashCards.Review/FlashCard.App/FlashCardLearning.csproj @@ -0,0 +1,19 @@ + + + + Exe + net9.0 + enable + enable + + + + + + + + + + + + diff --git a/FlashCards.Review/FlashCard.App/Helper/utilities.cs b/FlashCards.Review/FlashCard.App/Helper/utilities.cs new file mode 100644 index 00000000..226cc944 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/Helper/utilities.cs @@ -0,0 +1,41 @@ +using FlashCardLearning.View; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlashCardLearning.Helper +{ + internal class Utilities + { + FlashCardMenu flashCardMenu = new(); + + public int ValidateFlashCardId() + { + Console.WriteLine("Please enter the FlashCard Id, Press 0 to Return to Main Menu"); + string userInput = Console.ReadLine(); + + int flashCardId = 0; + + bool isInteger = int.TryParse(userInput, out flashCardId); + + + while (flashCardId < 0 || !isInteger) + { + Console.WriteLine("Please Enter a valid FlashCard Id, To Return to Stack Menu Enter 0"); + userInput = Console.ReadLine(); + + isInteger = int.TryParse(userInput, out flashCardId); + } + + if (flashCardId == 0) + { + flashCardMenu.ManageFlashCard(); + return 0; + } + + return flashCardId; + } + } +} diff --git a/FlashCards.Review/FlashCard.App/Model/entities/FlashCards.cs b/FlashCards.Review/FlashCard.App/Model/entities/FlashCards.cs new file mode 100644 index 00000000..cfbd7f07 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/Model/entities/FlashCards.cs @@ -0,0 +1,10 @@ +namespace FlashCardLearning.Model.entities +{ + internal class FlashCards + { + public int Id {get; set;} + public string? Question { get; set; } + public string? Answer { get; set; } + public int StackId { get; set; } + } +} diff --git a/FlashCards.Review/FlashCard.App/Model/entities/Stacks.cs b/FlashCards.Review/FlashCard.App/Model/entities/Stacks.cs new file mode 100644 index 00000000..fcd35f7c --- /dev/null +++ b/FlashCards.Review/FlashCard.App/Model/entities/Stacks.cs @@ -0,0 +1,8 @@ +namespace FlashCardLearning.Model.entities +{ + public class Stacks + { + public int Id {get; set;} + public string? StackName {get; set;} + } +} diff --git a/FlashCards.Review/FlashCard.App/Model/entities/StudySession.cs b/FlashCards.Review/FlashCard.App/Model/entities/StudySession.cs new file mode 100644 index 00000000..3067eff4 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/Model/entities/StudySession.cs @@ -0,0 +1,39 @@ +namespace FlashCardLearning.Model.entities +{ + internal class StudySession + { + public string FlashCardsLearned { get; set; } + public int StackId { get; set; } + public int SessionDuration { get; set; } + public int Points { get; set; } + } + + internal class StudySessionHistoryInput + { + public DateOnly SessionStartDate { get; set; } + public DateOnly SessionEndDate { get; set; } + } + internal class StudySessionHistory + { + public string StackName { get; set; } + public DateTime SessionDate { get; set; } + public int Points { get; set; } + } + + internal class StackReport + { + public string StackName { get; set; } + public int January { get; set; } + public int February { get; set; } + public int March { get; set; } + public int April { get; set; } + public int May { get; set; } + public int June { get; set; } + public int July { get; set; } + public int August { get; set; } + public int September { get; set; } + public int October { get; set; } + public int November { get; set; } + public int December { get; set; } + } +} diff --git a/FlashCards.Review/FlashCard.App/Program.cs b/FlashCards.Review/FlashCard.App/Program.cs new file mode 100644 index 00000000..934577ea --- /dev/null +++ b/FlashCards.Review/FlashCard.App/Program.cs @@ -0,0 +1,5 @@ +using FlashCardLearning.View; + +MainMenu mainMenu = new(); + +mainMenu.UserMainMenue(); \ No newline at end of file diff --git a/FlashCards.Review/FlashCard.App/View/FlashCardMenu.cs b/FlashCards.Review/FlashCard.App/View/FlashCardMenu.cs new file mode 100644 index 00000000..fd130b57 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/View/FlashCardMenu.cs @@ -0,0 +1,190 @@ +using ConsoleTables; +using FlashCardLearning.Controller; +using FlashCardLearning.Model.entities; +using FlashCardLearning.Helper; + +namespace FlashCardLearning.View +{ + internal class FlashCardMenu + { + FlashCardController flashCardController = new(); + StackController stackController = new(); + StackMenu stackMenu = new(); + Utilities utilities = new(); + + int StackId; + public void ManageFlashCard() + { + Console.Clear(); + + ViewFlashCard(); + Console.WriteLine(); + Console.WriteLine("-----------Manage Flash Card Menu-----------"); + Console.WriteLine(); + Console.WriteLine("Enter 1 to create a FlashCard"); + Console.WriteLine("Enter 2 to Edit a FlashCard"); + Console.WriteLine("Enter 3 to Delete a FlashCard"); + Console.WriteLine("Enter 4 to Return to Stack Menu"); + Console.WriteLine(); + var userInput = Console.ReadLine(); + + string[] allowedUserInput = { "1", "2", "3", "4" }; + + while (!allowedUserInput.Contains(userInput)) + { + Console.WriteLine("Please Enter a valid menu number"); + userInput = Console.ReadLine(); + } + + while (true) + { + switch (userInput) + { + case "1": + CreateFlashCard(); + break; + case "2": + EditFlashCard(); + break; + case "3": + RemoveFlashCard(); + break; + case "4": + SelectStack(); + break; + } + } + } + + internal void SelectStack() + { + StackMenu stackMenu = new(); + + Console.Clear(); + + stackMenu.ViewStack(false); + + Console.WriteLine("Please Enter the Stack Id to View the Flash Cards and Manage It , enter 0 to return to stack menu"); + StackId = stackMenu.ValidateStackId(); + + Console.Clear(); + + if (StackId != 0) ManageFlashCard(); + else stackMenu.ManageStacks(); + + } + + private void ViewFlashCard() + { + Console.WriteLine("Below are the Available Flash Cards"); + Console.WriteLine(); + + List flashCards = flashCardController.ViewFlashCards(StackId); + + var flashCardTable = new ConsoleTable("Id", "Question", "Answer"); + + foreach (FlashCards flashCard in flashCards) + { + flashCardTable.AddRow(flashCard.Id, flashCard.Question, flashCard.Answer); + } + flashCardTable.Write(); + + } + + private void CreateFlashCard() + { + Console.Clear(); + Console.WriteLine("Please Enter the Question, Press 0 to Return to Main Menu "); + + string Question = Console.ReadLine(); + + while (string.IsNullOrEmpty(Question) || Question.Length < 2) + { + if (Question == "0") + { + ManageFlashCard(); + return; + } + + Console.WriteLine("Please Enter a Proper Question"); + Question = Console.ReadLine(); + } + + Console.WriteLine("Please Enter the Answer, Press 0 to Return to Main Menu "); + + string Answer = Console.ReadLine(); + + while (string.IsNullOrEmpty(Answer) || Answer.Length < 2) + { + if (Answer == "0") + { + ManageFlashCard(); + return; + } + + Console.WriteLine("Please Enter a Proper Answer"); + Answer = Console.ReadLine(); + } + flashCardController.CreateFlashCard(Question, Answer, StackId); + } + + private void EditFlashCard() + { + int flashCardId = GetFlashcardId(); + + Console.WriteLine("Please enter the Question to update, Press 0 to Return to Main Menu"); + string question = Console.ReadLine(); + + Console.WriteLine(); + + Console.WriteLine("Please enter the Answer to update, Press 0 to Return to Main Menu"); + string answer = Console.ReadLine(); + + while ((string.IsNullOrEmpty(question) || question.Length < 2) && (string.IsNullOrEmpty(answer) || answer.Length < 2)) + { + if (question == "0") + { + ManageFlashCard(); + return; + } + Console.WriteLine("Please enter either Answer or Question to update"); + question = Console.ReadLine(); + } + + flashCardController.EditFlashCard(flashCardId, question, answer); + } + + private void RemoveFlashCard() + { + int flashCardId = GetFlashcardId(); + + while (!flashCardController.CheckFlashCardAvailable(flashCardId)) + { + flashCardId = utilities.ValidateFlashCardId(); + } + + flashCardController.RemoveFlashCard(flashCardId); + } + + private int GetFlashcardId() + { + Console.Clear(); + + ViewFlashCard(); + Console.WriteLine(); + + int flashCardId = utilities.ValidateFlashCardId(); + Console.WriteLine(); + + while (!flashCardController.CheckFlashCardAvailable(flashCardId)) + { + flashCardId = utilities.ValidateFlashCardId(); + } + + return flashCardId; + } + + + + } +} diff --git a/FlashCards.Review/FlashCard.App/View/MainMenu.cs b/FlashCards.Review/FlashCard.App/View/MainMenu.cs new file mode 100644 index 00000000..30230251 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/View/MainMenu.cs @@ -0,0 +1,49 @@ +namespace FlashCardLearning.View +{ + internal class MainMenu + { + internal void UserMainMenue() + { + StackMenu stackMenu = new(); + StudyMenu studyMenu = new(); + + Console.Clear(); + Console.WriteLine("-----------Welcome to Flash Card Learning App-----------"); + Console.WriteLine("Enter 1 to Manage Stacks and Flash Cards"); + Console.WriteLine("Enter 2 to Start a Learning Session"); + Console.WriteLine("Enter 3 View Study Session Reports"); + Console.WriteLine("Enter 0 to Quit"); + Console.WriteLine(); + var userInput = Console.ReadLine(); + bool runApp = true; + + string[] allowedUserInput = { "1", "2", "3", "0" }; + + while (!allowedUserInput.Contains(userInput)) + { + Console.WriteLine("Please Enter a valid menu number"); + userInput = Console.ReadLine(); + } + + while (runApp) + { + switch (userInput) + { + case "1": + stackMenu.ManageStacks(); + break; + case "2": + studyMenu.StudySession(); + break; + case "3": + studyMenu.ViewReports(); + break; + case "0": + Environment.Exit(0); + break; + } + } + + } + } +} diff --git a/FlashCards.Review/FlashCard.App/View/StackMenu.cs b/FlashCards.Review/FlashCard.App/View/StackMenu.cs new file mode 100644 index 00000000..79561cfe --- /dev/null +++ b/FlashCards.Review/FlashCard.App/View/StackMenu.cs @@ -0,0 +1,204 @@ +using System.Text.RegularExpressions; +using ConsoleTables; +using FlashCardLearning.Controller; +using FlashCardLearning.Model.entities; + +namespace FlashCardLearning.View +{ + internal class StackMenu + { + StackController stackController = new(); + FlashCardMenu flashCardMenu = new(); + MainMenu mainMenu = new(); + + internal void ManageStacks() + { + Console.Clear(); + Console.WriteLine("-----------Manage Stack Menu-----------"); + Console.WriteLine(); + Console.WriteLine("Enter 1 to Create a Stack"); + Console.WriteLine("Enter 2 to Edit a Stack"); + Console.WriteLine("Enter 3 to Delete a Stack"); + Console.WriteLine("Enter 4 to View Available Stacks"); + Console.WriteLine("Enter 5 to View Flash Cards Inside the Stack"); + Console.WriteLine("Enter 6 to Return to Main Menu"); + + var userInput = Console.ReadLine(); + + string[] allowedUserInput = { "1", "2", "3", "4", "5", "6" }; + + while (!allowedUserInput.Contains(userInput)) + { + Console.WriteLine("Please Enter a valid menu number"); + userInput = Console.ReadLine(); + } + bool fromMenu = true; + + while (true) + { + switch (userInput) + { + case "1": + CreateStack(); + break; + case "2": + EditStack(); + break; + case "3": + RemoveStack(); + break; + case "4": + ViewStack(fromMenu); + break; + case "5": + flashCardMenu.SelectStack(); + break; + case "6": + mainMenu.UserMainMenue(); + break; + } + } + } + + private void CreateStack() + { + Console.Clear(); + Console.WriteLine("Please Enter the Stack Name, To Return to Stack Menu Enter 0"); + + string stackName = Console.ReadLine(); + + while (string.IsNullOrEmpty(stackName) || stackName.Length < 2 || !Regex.IsMatch(stackName, @"^[a-zA-Z #\-/]+$")) + { + if (stackName == "0") + { + ManageStacks(); + return; + } + + Console.WriteLine("Please Enter a Proper Stack Name"); + stackName = Console.ReadLine(); + } + stackController.CreateStack(stackName); + } + + private void EditStack() + { + Console.Clear(); + + //display available stacks + ViewStack(false); + Console.WriteLine("Please Enter a valid Stack Id, To Return to Stack Menu Enter 0"); + int StackId = ValidateStackId(); + + while (!stackController.CheckStackAvailable(StackId)) + { + Console.WriteLine(); + Console.WriteLine("Stack Id was not available "); + Console.WriteLine(); + StackId = ValidateStackId(); + } + + //obtain stack name + Console.WriteLine(); + Console.WriteLine("Please Enter a Stack Name to Update, To Return to Stack Menu Enter 0"); + string stackName = Console.ReadLine(); + + while (string.IsNullOrEmpty(stackName) || stackName.Length < 2 || !Regex.IsMatch(stackName, @"^(?!\d+$)[a-zA-Z0-9 #\-/]+$")) + { + if (stackName == "0") + { + ManageStacks(); + return; + } + + Console.WriteLine("Please Enter a Proper Stack Name to Update"); + stackName = Console.ReadLine(); + + } + + stackController.EditStack(StackId, stackName); + } + + public int ValidateStackId() + { + + string userInput = Console.ReadLine(); + + int StackId = 0; + + bool isInteger = int.TryParse(userInput, out StackId); + + + while (StackId < 0 || !isInteger) + { + Console.WriteLine("Please Enter a valid Stack Id, To Return to Stack Menu Enter 0"); + userInput = Console.ReadLine(); + + isInteger = int.TryParse(userInput, out StackId); + } + + if (StackId == 0) + { + ManageStacks(); + return 0; + } + + return StackId; + } + + public void ViewStack(bool fromMenu) + { + + Console.WriteLine("Below are the available stacks"); + + List stackList = stackController.ViewStack(); + + var stackTable = new ConsoleTable("Id", "Stack Name"); + + foreach (Stacks stack in stackList) + { + stackTable.AddRow(stack.Id, stack.StackName); + } + + stackTable.Write(); + + Console.WriteLine(); + + //obtain ID + if (fromMenu) + { + Console.WriteLine("To Return to Stack Menu Enter 0"); + string unserInput = Console.ReadLine(); + + if (unserInput == "0") + { + ManageStacks(); + return; + } + } + } + + private void RemoveStack() + { + Console.Clear(); + //display available stacks + ViewStack(false); + + //obtain ID + Console.WriteLine("Please note that by deleting a stack the related flash cards will also get deleted!!!"); + Console.WriteLine(); + Console.WriteLine("Please Enter a valid Stack Id, To Return to Stack Menu Enter 0"); + int StackId = ValidateStackId(); + + + while (!stackController.CheckStackAvailable(StackId)) + { + StackId = ValidateStackId(); + } + + stackController.RemoveStack(StackId); + + } + + } +} diff --git a/FlashCards.Review/FlashCard.App/View/StudyMenu.cs b/FlashCards.Review/FlashCard.App/View/StudyMenu.cs new file mode 100644 index 00000000..7fc2edba --- /dev/null +++ b/FlashCards.Review/FlashCard.App/View/StudyMenu.cs @@ -0,0 +1,331 @@ +using ConsoleTables; +using FlashCardLearning.Controller; +using FlashCardLearning.Model.entities; +using FlashCardLearning.Helper; + +namespace FlashCardLearning.View +{ + internal class StudyMenu + { + MainMenu mainMenu = new(); + StackMenu stackMenu = new(); + FlashCardMenu flashCardMenu = new(); + + FlashCardController flashCardController = new(); + StackController stackController = new(); + StudyController studyController = new(); + + Utilities utilities = new(); + + int StackId; + int totalPoints; + int totalReviewdPoints; + DateTime sessionStartTime; + DateTime sessionEndTime; + int durationPerSession; + string FlashCardslist = ""; + + internal void StudySession() + { + Console.Clear(); + Console.WriteLine("-----------Learning Menu-----------"); + Console.WriteLine(); + Console.WriteLine("Enter 1 to Open Avaliable Stacks"); + Console.WriteLine("Enter 2 to Open Learning Session History"); + Console.WriteLine("Enter 0 to Return To Main Menue"); + + string userInput = Console.ReadLine(); + + string[] allowedUserInput = { "1", "2", "0" }; + + while (!allowedUserInput.Contains(userInput)) + { + Console.WriteLine("Please Enter a valid menu number"); + userInput = Console.ReadLine(); + } + + while (true) + { + switch (userInput) + { + case "1": + SelectStack(); + break; + case "2": + ViewSessionLog(); + break; + case "0": + mainMenu.UserMainMenue(); + break; + } + } + } + + private void ViewSessionLog() + { + Console.WriteLine("------------Session Log-----------"); + Console.WriteLine(); + + Console.WriteLine("Please enter the Start Date(yyyy-mm-dd), Enter 0 to Return to Main Menu "); + string startDate = Console.ReadLine(); + Console.WriteLine(); + + if (startDate == "0") + { + StudySession(); + return; + } + + string pattern = @"^\d{4}-\d{2}-\d{2}$"; + while (!System.Text.RegularExpressions.Regex.IsMatch(startDate, pattern) || + !DateTime.TryParseExact(startDate, "yyyy-mm-dd", + System.Globalization.CultureInfo.InvariantCulture, + System.Globalization.DateTimeStyles.None, + out DateTime validDate)) + { + if (startDate == "0") + { + StudySession(); + return; + } + Console.WriteLine("Please enter the Start Date(yyyy-mm-dd) in proper format"); + startDate = Console.ReadLine(); + } + + Console.WriteLine("Please enter the End Date(yyyy-mm-dd), Enter 0 to Return to Main Menu "); + string endDate = Console.ReadLine(); + Console.WriteLine(); + + if (endDate == "0") + { + StudySession(); + return; + } + + while (!System.Text.RegularExpressions.Regex.IsMatch(endDate, pattern) || + !DateTime.TryParseExact(startDate, "yyyy-mm-dd", + System.Globalization.CultureInfo.InvariantCulture, + System.Globalization.DateTimeStyles.None, + out DateTime validDate)) + { + if (endDate == "0") + { + StudySession(); + return; + } + Console.WriteLine("Please enter the End Date(yyyy-mm-dd) in proper format"); + endDate = Console.ReadLine(); + } + + + List historyList = studyController.ViewSessionLog(startDate, endDate); + + var stackTable = new ConsoleTable("Id", "Stack Name", "Points", "Session Date"); + + int rowCount = 1; + + foreach (StudySessionHistory history in historyList) + { + stackTable.AddRow(rowCount, history.StackName, history.Points, history.SessionDate); + rowCount += 1; + } + stackTable.Write(); + + Console.WriteLine(); + + Console.WriteLine("Enter 0 to return to Previous menu"); + string userInput = Console.ReadLine(); + + if (userInput == "0") + { + StudySession(); + return; + } + } + + internal void ViewReports() + { + + Console.WriteLine("Please Enter a year in YYYY format to generate report, enter 0 to return to Previous menu"); + Console.WriteLine(); + + string year = Console.ReadLine(); + + int YearInput = 0; + + while (string.IsNullOrEmpty(year) || year.Length != 4 || !int.TryParse(year, out YearInput)) + { + if (year == "0") + { + StudySession(); + return; + } + + Console.WriteLine("Please Enter year in YYYY format"); + year = Console.ReadLine(); + } + + if (YearInput == 0) mainMenu.UserMainMenue(); + + List studySessions = studyController.ViewReports(YearInput); + + var ReportTable = new ConsoleTable( + "Stack Name", + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ); + + // Add rows for each stack + foreach (StackReport studySession in studySessions) + { + ReportTable.AddRow( + studySession.StackName, + studySession.January, + studySession.February, + studySession.March, + studySession.April, + studySession.May, + studySession.June, + studySession.July, + studySession.August, + studySession.September, + studySession.October, + studySession.November, + studySession.December + ); + } + + ReportTable.Write(); + + Console.WriteLine(); + Console.WriteLine("Enter 0 to return to Previous menu"); + Console.WriteLine(); + + string exit = Console.ReadLine(); + + if (exit == "0") mainMenu.UserMainMenue(); + } + + private void SelectStack() + { + Console.Clear(); + + stackMenu.ViewStack(false); + + Console.WriteLine("Please Enter the Stack Id to View the Flash Cards and Manage It , enter 0 to return to Previous menu"); + Console.WriteLine(); + + StackId = stackMenu.ValidateStackId(); + + if (StackId != 0) ViewFlashCards(StackId); + else mainMenu.UserMainMenue(); + } + private void ViewFlashCards(int StackId) + { + Console.WriteLine("Below are the Available Flash Cards"); + Console.WriteLine(); + + List flashCards = flashCardController.ViewFlashCards(StackId); + + var flashCardTable = new ConsoleTable("Id", "Question"); + + foreach (FlashCards flashCard in flashCards) + { + flashCardTable.AddRow(flashCard.Id, flashCard.Question); + } + + flashCardTable.Write(); + + AnswerFlashCard(flashCards); + } + + private void AnswerFlashCard(List FlashCards) + { + sessionStartTime = DateTime.Now; + + Console.WriteLine("Please enter the id of the flash card you choose to answer. enter 0 to return to Previous menu"); + + int flashCardId = utilities.ValidateFlashCardId(); + + if (flashCardId == 0) + { + Console.Clear(); + + Console.WriteLine(); + + sessionEndTime = DateTime.Now; + + GetDurationPerSession(); + + studyController.TrackSession(FlashCardslist, StackId, durationPerSession, totalPoints); + + SelectStack(); + + totalPoints = 0; + + } + + Console.WriteLine("Please enter the answer"); + + string answer = Console.ReadLine(); + string correctAnswer = ""; + + foreach (FlashCards flashCard in FlashCards) + { + + if (flashCard.Id == flashCardId) + { + totalReviewdPoints += 20; + correctAnswer = flashCard.Answer; + } + } + + if (answer == correctAnswer) + { + Console.Clear(); + + Console.WriteLine("The answer you entered was correct. 20 points added !!"); + Console.WriteLine(); + + totalPoints += 20; + + FlashCardslist += $"{flashCardId},"; + + Console.WriteLine($"You Scored {totalPoints} out of {totalReviewdPoints} points"); + Console.WriteLine(); + + ViewFlashCards(StackId); + + } + else + { + Console.Clear(); + + Console.WriteLine("The answer you entered was Incorrect!!. Below is the correct answer"); + Console.WriteLine(); + + Console.WriteLine($"Answer : {correctAnswer}"); + Console.WriteLine(); + + ViewFlashCards(StackId); + } + } + + private void GetDurationPerSession() + { + TimeSpan duration = sessionEndTime.Subtract(sessionStartTime); + + durationPerSession = duration.Minutes; + } + } +} diff --git a/FlashCards.Review/FlashCard.App/app.config b/FlashCards.Review/FlashCard.App/app.config new file mode 100644 index 00000000..8b2cd113 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/app.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs new file mode 100644 index 00000000..feda5e9f --- /dev/null +++ b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfo.cs b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfo.cs new file mode 100644 index 00000000..59e722e4 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("FlashCardLearning")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5722872b2849576185deefa25119e2b82d2c36fc")] +[assembly: System.Reflection.AssemblyProductAttribute("FlashCardLearning")] +[assembly: System.Reflection.AssemblyTitleAttribute("FlashCardLearning")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfoInputs.cache b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfoInputs.cache new file mode 100644 index 00000000..06fd5ec1 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +8ad4d1dd23743e4e797f49216c6b700013597c154e08bd0dcb28ead70cb0bdd4 diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GeneratedMSBuildEditorConfig.editorconfig b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 00000000..17d88f61 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,15 @@ +is_global = true +build_property.TargetFramework = net9.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = FlashCardLearning +build_property.ProjectDir = D:\projects\CONSOLE APPS\FlashCards\CodeReviews.Console.Flashcards\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.EffectiveAnalysisLevelStyle = 9.0 +build_property.EnableCodeStyleSeverity = diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GlobalUsings.g.cs b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GlobalUsings.g.cs new file mode 100644 index 00000000..8578f3d0 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.assets.cache b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..550537715845268de4d40129a2760b90e4d4d3e3 GIT binary patch literal 32298 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 Q>_2hc1ziS|cnaSC07NLHY5)KL literal 0 HcmV?d00001 diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.BuildWithSkipAnalyzers b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.BuildWithSkipAnalyzers new file mode 100644 index 00000000..e69de29b diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.FileListAbsolute.txt b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.FileListAbsolute.txt new file mode 100644 index 00000000..d9e412ca --- /dev/null +++ b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.FileListAbsolute.txt @@ -0,0 +1,77 @@ +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.exe +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.dll.config +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.deps.json +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.runtimeconfig.json +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.pdb +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Azure.Core.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Azure.Identity.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\ConsoleTables.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Bcl.AsyncInterfaces.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Bcl.Cryptography.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Data.SqlClient.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Caching.Abstractions.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Caching.Memory.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Configuration.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Configuration.Abstractions.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Configuration.Binder.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Configuration.FileExtensions.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Configuration.Json.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.FileProviders.Abstractions.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.FileProviders.Physical.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.FileSystemGlobbing.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Logging.Abstractions.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Options.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Primitives.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Identity.Client.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Identity.Client.Extensions.Msal.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.Abstractions.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.JsonWebTokens.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.Logging.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.Protocols.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.Tokens.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.SqlServer.Server.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.ClientModel.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Configuration.ConfigurationManager.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Diagnostics.EventLog.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.IdentityModel.Tokens.Jwt.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Memory.Data.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Security.Cryptography.Pkcs.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Security.Cryptography.ProtectedData.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Text.Json.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Wcwidth.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\cs\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\de\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\es\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\fr\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\it\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\ja\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\ko\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\pl\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\pt-BR\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\ru\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\tr\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\zh-Hans\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\zh-Hant\Microsoft.Data.SqlClient.resources.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\unix\lib\net9.0\Microsoft.Data.SqlClient.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win\lib\net9.0\Microsoft.Data.SqlClient.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win-arm64\native\Microsoft.Data.SqlClient.SNI.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win-x64\native\Microsoft.Data.SqlClient.SNI.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win-x86\native\Microsoft.Data.SqlClient.SNI.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win\lib\net9.0\System.Diagnostics.EventLog.Messages.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win\lib\net9.0\System.Diagnostics.EventLog.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win\lib\net9.0\System.Security.Cryptography.Pkcs.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.csproj.AssemblyReference.cache +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.GeneratedMSBuildEditorConfig.editorconfig +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.AssemblyInfoInputs.cache +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.AssemblyInfo.cs +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.csproj.CoreCompileInputs.cache +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.sourcelink.json +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCar.F7F01D4A.Up2Date +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\refint\FlashCardLearning.dll +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.pdb +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.genruntimeconfig.cache +D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\ref\FlashCardLearning.dll diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/apphost.exe b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/apphost.exe new file mode 100644 index 0000000000000000000000000000000000000000..97ebd92d3b3631a8b2f2bfbcf146aa9c7c64f07b GIT binary patch literal 145408 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

>XbUx5a&SB~z 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 literal 0 HcmV?d00001 diff --git a/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.dgspec.json b/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.dgspec.json new file mode 100644 index 00000000..9237d6a3 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.dgspec.json @@ -0,0 +1,99 @@ +{ + "format": 1, + "restore": { + "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj": {} + }, + "projects": { + "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj", + "projectName": "FlashCardLearning", + "projectPath": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj", + "packagesPath": "C:\\Users\\hp\\.nuget\\packages\\", + "outputPath": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\hp\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.200" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "dependencies": { + "ConsoleTables": { + "target": "Package", + "version": "[2.7.0, )" + }, + "Microsoft.Data.SqlClient": { + "target": "Package", + "version": "[6.1.1, )" + }, + "Microsoft.Extensions.Configuration": { + "target": "Package", + "version": "[9.0.8, )" + }, + "Microsoft.Extensions.Configuration.Binder": { + "target": "Package", + "version": "[9.0.8, )" + }, + "Microsoft.Extensions.Configuration.Json": { + "target": "Package", + "version": "[9.0.8, )" + }, + "System.Configuration.ConfigurationManager": { + "target": "Package", + "version": "[9.0.8, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.200/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.props b/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.props new file mode 100644 index 00000000..f553bc5e --- /dev/null +++ b/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.props @@ -0,0 +1,16 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\hp\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages + PackageReference + 6.13.0 + + + + + + \ No newline at end of file diff --git a/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.targets b/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.targets new file mode 100644 index 00000000..1b45ca6e --- /dev/null +++ b/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.targets @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/FlashCards.Review/FlashCard.App/obj/project.assets.json b/FlashCards.Review/FlashCard.App/obj/project.assets.json new file mode 100644 index 00000000..5edd8c5f --- /dev/null +++ b/FlashCards.Review/FlashCard.App/obj/project.assets.json @@ -0,0 +1,2130 @@ +{ + "version": 3, + "targets": { + "net9.0": { + "Azure.Core/1.47.1": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "System.ClientModel": "1.5.1", + "System.Memory.Data": "8.0.1" + }, + "compile": { + "lib/net8.0/Azure.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Azure.Core.dll": { + "related": ".xml" + } + } + }, + "Azure.Identity/1.14.2": { + "type": "package", + "dependencies": { + "Azure.Core": "1.46.1", + "Microsoft.Identity.Client": "4.73.1", + "Microsoft.Identity.Client.Extensions.Msal": "4.73.1", + "System.Memory": "4.5.5" + }, + "compile": { + "lib/net8.0/Azure.Identity.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Azure.Identity.dll": { + "related": ".xml" + } + } + }, + "ConsoleTables/2.7.0": { + "type": "package", + "dependencies": { + "Wcwidth": "1.0.0" + }, + "compile": { + "lib/netstandard2.1/ConsoleTables.dll": { + "related": ".pdb" + } + }, + "runtime": { + "lib/netstandard2.1/ConsoleTables.dll": { + "related": ".pdb" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Bcl.Cryptography/9.0.4": { + "type": "package", + "compile": { + "lib/net9.0/Microsoft.Bcl.Cryptography.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Bcl.Cryptography.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Data.SqlClient/6.1.1": { + "type": "package", + "dependencies": { + "Azure.Core": "1.47.1", + "Azure.Identity": "1.14.2", + "Microsoft.Bcl.Cryptography": "9.0.4", + "Microsoft.Data.SqlClient.SNI.runtime": "6.0.2", + "Microsoft.Extensions.Caching.Memory": "9.0.4", + "Microsoft.IdentityModel.JsonWebTokens": "7.7.1", + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.7.1", + "Microsoft.SqlServer.Server": "1.0.0", + "System.Configuration.ConfigurationManager": "9.0.4", + "System.Security.Cryptography.Pkcs": "9.0.4", + "System.Text.Json": "9.0.5" + }, + "compile": { + "ref/net9.0/Microsoft.Data.SqlClient.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Data.SqlClient.dll": { + "related": ".xml" + } + }, + "resource": { + "lib/net9.0/cs/Microsoft.Data.SqlClient.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.Data.SqlClient.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.Data.SqlClient.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.Data.SqlClient.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.Data.SqlClient.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.Data.SqlClient.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.Data.SqlClient.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.Data.SqlClient.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.Data.SqlClient.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll": { + "locale": "zh-Hant" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { + "type": "package", + "runtimeTargets": { + "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll": { + "assetType": "native", + "rid": "win-arm64" + }, + "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll": { + "assetType": "native", + "rid": "win-x64" + }, + "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll": { + "assetType": "native", + "rid": "win-x86" + } + } + }, + "Microsoft.Extensions.Caching.Abstractions/9.0.4": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "9.0.4" + }, + "compile": { + "lib/net9.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.Memory/9.0.4": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "9.0.4", + "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4", + "Microsoft.Extensions.Logging.Abstractions": "9.0.4", + "Microsoft.Extensions.Options": "9.0.4", + "Microsoft.Extensions.Primitives": "9.0.4" + }, + "compile": { + "lib/net9.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration/9.0.8": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "9.0.8", + "Microsoft.Extensions.Primitives": "9.0.8" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.Configuration.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Configuration.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Abstractions/9.0.8": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "9.0.8" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Binder/9.0.8": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "9.0.8" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets": {} + } + }, + "Microsoft.Extensions.Configuration.FileExtensions/9.0.8": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "9.0.8", + "Microsoft.Extensions.Configuration.Abstractions": "9.0.8", + "Microsoft.Extensions.FileProviders.Abstractions": "9.0.8", + "Microsoft.Extensions.FileProviders.Physical": "9.0.8", + "Microsoft.Extensions.Primitives": "9.0.8" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.Configuration.FileExtensions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Configuration.FileExtensions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Configuration.Json/9.0.8": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration": "9.0.8", + "Microsoft.Extensions.Configuration.Abstractions": "9.0.8", + "Microsoft.Extensions.Configuration.FileExtensions": "9.0.8", + "Microsoft.Extensions.FileProviders.Abstractions": "9.0.8" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.Configuration.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Configuration.Json.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4": { + "type": "package", + "compile": { + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.FileProviders.Abstractions/9.0.8": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "9.0.8" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.FileProviders.Physical/9.0.8": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.FileProviders.Abstractions": "9.0.8", + "Microsoft.Extensions.FileSystemGlobbing": "9.0.8", + "Microsoft.Extensions.Primitives": "9.0.8" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.FileProviders.Physical.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.FileProviders.Physical.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.FileSystemGlobbing/9.0.8": { + "type": "package", + "compile": { + "lib/net9.0/Microsoft.Extensions.FileSystemGlobbing.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.FileSystemGlobbing.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/9.0.4": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4" + }, + "compile": { + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Options/9.0.4": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4", + "Microsoft.Extensions.Primitives": "9.0.4" + }, + "compile": { + "lib/net9.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Primitives/9.0.8": { + "type": "package", + "compile": { + "lib/net9.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Identity.Client/4.73.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "6.35.0", + "System.Diagnostics.DiagnosticSource": "6.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.Identity.Client.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Identity.Client.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { + "type": "package", + "dependencies": { + "Microsoft.Identity.Client": "4.73.1", + "System.Security.Cryptography.ProtectedData": "4.5.0" + }, + "compile": { + "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Abstractions/7.7.1": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/7.7.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "7.7.1" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Logging/7.7.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "7.7.1" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Protocols/7.7.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "7.7.1" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Protocols": "7.7.1", + "System.IdentityModel.Tokens.Jwt": "7.7.1" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Tokens/7.7.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.7.1" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + } + }, + "Microsoft.SqlServer.Server/1.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.SqlServer.Server.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.SqlServer.Server.dll": { + "related": ".pdb;.xml" + } + } + }, + "System.ClientModel/1.5.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "8.0.3", + "System.Memory.Data": "8.0.1" + }, + "compile": { + "lib/net8.0/System.ClientModel.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.ClientModel.dll": { + "related": ".xml" + } + } + }, + "System.Configuration.ConfigurationManager/9.0.8": { + "type": "package", + "dependencies": { + "System.Diagnostics.EventLog": "9.0.8", + "System.Security.Cryptography.ProtectedData": "9.0.8" + }, + "compile": { + "lib/net9.0/System.Configuration.ConfigurationManager.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/System.Configuration.ConfigurationManager.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Diagnostics.DiagnosticSource/6.0.1": { + "type": "package", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + }, + "compile": { + "lib/net6.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Diagnostics.EventLog/9.0.8": { + "type": "package", + "compile": { + "lib/net9.0/System.Diagnostics.EventLog.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/System.Diagnostics.EventLog.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + }, + "runtimeTargets": { + "runtimes/win/lib/net9.0/System.Diagnostics.EventLog.Messages.dll": { + "assetType": "runtime", + "rid": "win" + }, + "runtimes/win/lib/net9.0/System.Diagnostics.EventLog.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.IdentityModel.Tokens.Jwt/7.7.1": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "7.7.1", + "Microsoft.IdentityModel.Tokens": "7.7.1" + }, + "compile": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + } + }, + "System.Memory/4.5.5": { + "type": "package", + "compile": { + "ref/netcoreapp2.1/_._": {} + }, + "runtime": { + "lib/netcoreapp2.1/_._": {} + } + }, + "System.Memory.Data/8.0.1": { + "type": "package", + "compile": { + "lib/net8.0/System.Memory.Data.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Memory.Data.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + } + }, + "System.Security.Cryptography.Pkcs/9.0.4": { + "type": "package", + "compile": { + "lib/net9.0/System.Security.Cryptography.Pkcs.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/System.Security.Cryptography.Pkcs.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + }, + "runtimeTargets": { + "runtimes/win/lib/net9.0/System.Security.Cryptography.Pkcs.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Cryptography.ProtectedData/9.0.8": { + "type": "package", + "compile": { + "lib/net9.0/System.Security.Cryptography.ProtectedData.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/System.Security.Cryptography.ProtectedData.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Text.Json/9.0.5": { + "type": "package", + "compile": { + "lib/net9.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/System.Text.Json.targets": {} + } + }, + "Wcwidth/1.0.0": { + "type": "package", + "compile": { + "lib/net6.0/Wcwidth.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Wcwidth.dll": { + "related": ".xml" + } + } + } + } + }, + "libraries": { + "Azure.Core/1.47.1": { + "sha512": "oPcncSsDHuxB8SC522z47xbp2+ttkcKv2YZ90KXhRKN0YQd2+7l1UURT9EBzUNEXtkLZUOAB5xbByMTrYRh3yA==", + "type": "package", + "path": "azure.core/1.47.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "CHANGELOG.md", + "README.md", + "azure.core.1.47.1.nupkg.sha512", + "azure.core.nuspec", + "azureicon.png", + "lib/net462/Azure.Core.dll", + "lib/net462/Azure.Core.xml", + "lib/net472/Azure.Core.dll", + "lib/net472/Azure.Core.xml", + "lib/net8.0/Azure.Core.dll", + "lib/net8.0/Azure.Core.xml", + "lib/netstandard2.0/Azure.Core.dll", + "lib/netstandard2.0/Azure.Core.xml" + ] + }, + "Azure.Identity/1.14.2": { + "sha512": "YhNMwOTwT+I2wIcJKSdP0ADyB2aK+JaYWZxO8LSRDm5w77LFr0ykR9xmt2ZV5T1gaI7xU6iNFIh/yW1dAlpddQ==", + "type": "package", + "path": "azure.identity/1.14.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "CHANGELOG.md", + "README.md", + "azure.identity.1.14.2.nupkg.sha512", + "azure.identity.nuspec", + "azureicon.png", + "lib/net8.0/Azure.Identity.dll", + "lib/net8.0/Azure.Identity.xml", + "lib/netstandard2.0/Azure.Identity.dll", + "lib/netstandard2.0/Azure.Identity.xml" + ] + }, + "ConsoleTables/2.7.0": { + "sha512": "6l6Si/7lMaXYHiIERdqdEMIiTjvCF29fObjAmTahsTpjSaMBUv1TMm7qmrOHL32Le3ipFqhph5sm8WOJjZG9Og==", + "type": "package", + "path": "consoletables/2.7.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Readme.md", + "consoletables.2.7.0.nupkg.sha512", + "consoletables.nuspec", + "icon.png", + "lib/netstandard2.1/ConsoleTables.dll", + "lib/netstandard2.1/ConsoleTables.pdb" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/8.0.0": { + "sha512": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "type": "package", + "path": "microsoft.bcl.asyncinterfaces/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Bcl.AsyncInterfaces.targets", + "buildTransitive/net462/_._", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", + "microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512", + "microsoft.bcl.asyncinterfaces.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Bcl.Cryptography/9.0.4": { + "sha512": "YgZYAWzyNuPVtPq6WNm0bqOWNjYaWgl5mBWTGZyNoXitYBUYSp6iUB9AwK0V1mo793qRJUXz2t6UZrWITZSvuQ==", + "type": "package", + "path": "microsoft.bcl.cryptography/9.0.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Bcl.Cryptography.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Bcl.Cryptography.targets", + "lib/net462/Microsoft.Bcl.Cryptography.dll", + "lib/net462/Microsoft.Bcl.Cryptography.xml", + "lib/net8.0/Microsoft.Bcl.Cryptography.dll", + "lib/net8.0/Microsoft.Bcl.Cryptography.xml", + "lib/net9.0/Microsoft.Bcl.Cryptography.dll", + "lib/net9.0/Microsoft.Bcl.Cryptography.xml", + "lib/netstandard2.0/Microsoft.Bcl.Cryptography.dll", + "lib/netstandard2.0/Microsoft.Bcl.Cryptography.xml", + "microsoft.bcl.cryptography.9.0.4.nupkg.sha512", + "microsoft.bcl.cryptography.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Data.SqlClient/6.1.1": { + "sha512": "syGQmIUPAYYHAHyTD8FCkTNThpQWvoA7crnIQRMfp8dyB5A2cWU3fQexlRTFkVmV7S0TjVmthi0LJEFVjHo8AQ==", + "type": "package", + "path": "microsoft.data.sqlclient/6.1.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "dotnet.png", + "lib/net462/Microsoft.Data.SqlClient.dll", + "lib/net462/Microsoft.Data.SqlClient.xml", + "lib/net462/cs/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/de/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/es/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/fr/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/it/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/ja/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/ko/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/pl/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/pt-BR/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/ru/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/tr/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/zh-Hans/Microsoft.Data.SqlClient.resources.dll", + "lib/net462/zh-Hant/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/Microsoft.Data.SqlClient.dll", + "lib/net8.0/Microsoft.Data.SqlClient.xml", + "lib/net8.0/cs/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/de/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/es/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/fr/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/it/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/ja/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/ko/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/pl/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/pt-BR/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/ru/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/tr/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll", + "lib/net8.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/Microsoft.Data.SqlClient.dll", + "lib/net9.0/Microsoft.Data.SqlClient.xml", + "lib/net9.0/cs/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/de/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/es/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/fr/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/it/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/ja/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/ko/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/pl/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/pt-BR/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/ru/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/tr/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll", + "lib/net9.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll", + "lib/netstandard2.0/Microsoft.Data.SqlClient.dll", + "lib/netstandard2.0/Microsoft.Data.SqlClient.xml", + "microsoft.data.sqlclient.6.1.1.nupkg.sha512", + "microsoft.data.sqlclient.nuspec", + "ref/net462/Microsoft.Data.SqlClient.dll", + "ref/net462/Microsoft.Data.SqlClient.xml", + "ref/net8.0/Microsoft.Data.SqlClient.dll", + "ref/net8.0/Microsoft.Data.SqlClient.xml", + "ref/net9.0/Microsoft.Data.SqlClient.dll", + "ref/net9.0/Microsoft.Data.SqlClient.xml", + "ref/netstandard2.0/Microsoft.Data.SqlClient.dll", + "ref/netstandard2.0/Microsoft.Data.SqlClient.xml", + "runtimes/unix/lib/net8.0/Microsoft.Data.SqlClient.dll", + "runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll", + "runtimes/win/lib/net462/Microsoft.Data.SqlClient.dll", + "runtimes/win/lib/net8.0/Microsoft.Data.SqlClient.dll", + "runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll" + ] + }, + "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { + "sha512": "f+pRODTWX7Y67jXO3T5S2dIPZ9qMJNySjlZT/TKmWVNWe19N8jcWmHaqHnnchaq3gxEKv1SWVY5EFzOD06l41w==", + "type": "package", + "path": "microsoft.data.sqlclient.sni.runtime/6.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.txt", + "dotnet.png", + "microsoft.data.sqlclient.sni.runtime.6.0.2.nupkg.sha512", + "microsoft.data.sqlclient.sni.runtime.nuspec", + "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll", + "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll", + "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll" + ] + }, + "Microsoft.Extensions.Caching.Abstractions/9.0.4": { + "sha512": "imcZ5BGhBw5mNsWLepBbqqumWaFe0GtvyCvne2/2wsDIBRa2+Lhx4cU/pKt/4BwOizzUEOls2k1eOJQXHGMalg==", + "type": "package", + "path": "microsoft.extensions.caching.abstractions/9.0.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", + "microsoft.extensions.caching.abstractions.9.0.4.nupkg.sha512", + "microsoft.extensions.caching.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.Memory/9.0.4": { + "sha512": "G5rEq1Qez5VJDTEyRsRUnewAspKjaY57VGsdZ8g8Ja6sXXzoiI3PpTd1t43HjHqNWD5A06MQveb2lscn+2CU+w==", + "type": "package", + "path": "microsoft.extensions.caching.memory/9.0.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", + "lib/net462/Microsoft.Extensions.Caching.Memory.dll", + "lib/net462/Microsoft.Extensions.Caching.Memory.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net9.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net9.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", + "microsoft.extensions.caching.memory.9.0.4.nupkg.sha512", + "microsoft.extensions.caching.memory.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration/9.0.8": { + "sha512": "6m+8Xgmf8UWL0p/oGqBM+0KbHE5/ePXbV1hKXgC59zEv0aa0DW5oiiyxDbK5kH5j4gIvyD5uWL0+HadKBJngvQ==", + "type": "package", + "path": "microsoft.extensions.configuration/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.targets", + "lib/net462/Microsoft.Extensions.Configuration.dll", + "lib/net462/Microsoft.Extensions.Configuration.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.xml", + "lib/net9.0/Microsoft.Extensions.Configuration.dll", + "lib/net9.0/Microsoft.Extensions.Configuration.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.xml", + "microsoft.extensions.configuration.9.0.8.nupkg.sha512", + "microsoft.extensions.configuration.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Abstractions/9.0.8": { + "sha512": "yNou2KM35RvzOh4vUFtl2l33rWPvOCoba+nzEDJ+BgD8aOL/jew4WPCibQvntRfOJ2pJU8ARygSMD+pdjvDHuA==", + "type": "package", + "path": "microsoft.extensions.configuration.abstractions/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "microsoft.extensions.configuration.abstractions.9.0.8.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Binder/9.0.8": { + "sha512": "0vK9DnYrYChdiH3yRZWkkp4x4LbrfkWEdBc5HOsQ8t/0CLOWKXKkkhOE8A1shlex0hGydbGrhObeypxz/QTm+w==", + "type": "package", + "path": "microsoft.extensions.configuration.binder/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll", + "analyzers/dotnet/cs/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/de/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/es/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/fr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/it/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ja/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ko/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/pl/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/pt-BR/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/ru/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/tr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/zh-Hans/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "analyzers/dotnet/cs/zh-Hant/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets", + "lib/net462/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net462/Microsoft.Extensions.Configuration.Binder.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Binder.xml", + "lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/net9.0/Microsoft.Extensions.Configuration.Binder.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.xml", + "microsoft.extensions.configuration.binder.9.0.8.nupkg.sha512", + "microsoft.extensions.configuration.binder.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.FileExtensions/9.0.8": { + "sha512": "2jgx58Jpk3oKT7KRn8x/cFf3QDTjQP+KUbyBnynAcB2iBx1Eq9EdNMCu0QEbYuaZOaQru/Kwdffary+hn58Wwg==", + "type": "package", + "path": "microsoft.extensions.configuration.fileextensions/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.FileExtensions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.FileExtensions.targets", + "lib/net462/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net462/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/net9.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/net9.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.xml", + "microsoft.extensions.configuration.fileextensions.9.0.8.nupkg.sha512", + "microsoft.extensions.configuration.fileextensions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Configuration.Json/9.0.8": { + "sha512": "vjxzcnL7ul322+kpvELisXaZl8/5MYs6JfI9DZLQWsao1nA/4FL48yPwDK986hbJTWc64JxOOaMym0SQ/dy32w==", + "type": "package", + "path": "microsoft.extensions.configuration.json/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Json.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Json.targets", + "lib/net462/Microsoft.Extensions.Configuration.Json.dll", + "lib/net462/Microsoft.Extensions.Configuration.Json.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/net9.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/net9.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.xml", + "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.dll", + "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.xml", + "microsoft.extensions.configuration.json.9.0.8.nupkg.sha512", + "microsoft.extensions.configuration.json.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4": { + "sha512": "UI0TQPVkS78bFdjkTodmkH0Fe8lXv9LnhGFKgKrsgUJ5a5FVdFRcgjIkBVLbGgdRhxWirxH/8IXUtEyYJx6GQg==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/9.0.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.9.0.4.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileProviders.Abstractions/9.0.8": { + "sha512": "4zZbQ4w+hCMm9J+z5NOj3giIPT2MhZxx05HX/MGuAmDBbjOuXlYIIRN+t4V6OLxy5nXZIcXO+dQMB/OWubuDkw==", + "type": "package", + "path": "microsoft.extensions.fileproviders.abstractions/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileProviders.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Abstractions.targets", + "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "microsoft.extensions.fileproviders.abstractions.9.0.8.nupkg.sha512", + "microsoft.extensions.fileproviders.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileProviders.Physical/9.0.8": { + "sha512": "FlOe2i7UUIfY0l0ChaIYtlXjdWWutR4DMRKZaGD6z4G1uVTteFkbBfxUIoi1uGmrZQxXe/yv/cfwiT0tK2xyXA==", + "type": "package", + "path": "microsoft.extensions.fileproviders.physical/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileProviders.Physical.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Physical.targets", + "lib/net462/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net462/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/net9.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/net9.0/Microsoft.Extensions.FileProviders.Physical.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.xml", + "microsoft.extensions.fileproviders.physical.9.0.8.nupkg.sha512", + "microsoft.extensions.fileproviders.physical.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.FileSystemGlobbing/9.0.8": { + "sha512": "96Ub5LmwYfIGVoXkbe4kjs+ivK6fLBTwKJAOMfUNV0R+AkZRItlgROFqXEWMUlXBTPM1/kKu26Ueu5As6RDzJA==", + "type": "package", + "path": "microsoft.extensions.filesystemglobbing/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileSystemGlobbing.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileSystemGlobbing.targets", + "lib/net462/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net462/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/net9.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/net9.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.xml", + "microsoft.extensions.filesystemglobbing.9.0.8.nupkg.sha512", + "microsoft.extensions.filesystemglobbing.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/9.0.4": { + "sha512": "0MXlimU4Dud6t+iNi5NEz3dO2w1HXdhoOLaYFuLPCjAsvlPQGwOT6V2KZRMLEhCAm/stSZt1AUv0XmDdkjvtbw==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/9.0.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.9.0.4.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/9.0.4": { + "sha512": "fiFI2+58kicqVZyt/6obqoFwHiab7LC4FkQ3mmiBJ28Yy4fAvy2+v9MRnSvvlOO8chTOjKsdafFl/K9veCPo5g==", + "type": "package", + "path": "microsoft.extensions.options/9.0.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net8.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/net9.0/Microsoft.Extensions.Options.dll", + "lib/net9.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.9.0.4.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/9.0.8": { + "sha512": "tizSIOEsIgSNSSh+hKeUVPK7xmTIjR8s+mJWOu1KXV3htvNQiPMFRMO17OdI1y/4ZApdBVk49u/08QGC9yvLug==", + "type": "package", + "path": "microsoft.extensions.primitives/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/net9.0/Microsoft.Extensions.Primitives.dll", + "lib/net9.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.9.0.8.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Identity.Client/4.73.1": { + "sha512": "NnDLS8QwYqO5ZZecL2oioi1LUqjh5Ewk4bMLzbgiXJbQmZhDLtKwLxL3DpGMlQAJ2G4KgEnvGPKa+OOgffeJbw==", + "type": "package", + "path": "microsoft.identity.client/4.73.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/Microsoft.Identity.Client.dll", + "lib/net462/Microsoft.Identity.Client.xml", + "lib/net472/Microsoft.Identity.Client.dll", + "lib/net472/Microsoft.Identity.Client.xml", + "lib/net8.0-android34.0/Microsoft.Identity.Client.aar", + "lib/net8.0-android34.0/Microsoft.Identity.Client.dll", + "lib/net8.0-android34.0/Microsoft.Identity.Client.xml", + "lib/net8.0-ios18.0/Microsoft.Identity.Client.dll", + "lib/net8.0-ios18.0/Microsoft.Identity.Client.xml", + "lib/net8.0/Microsoft.Identity.Client.dll", + "lib/net8.0/Microsoft.Identity.Client.xml", + "lib/netstandard2.0/Microsoft.Identity.Client.dll", + "lib/netstandard2.0/Microsoft.Identity.Client.xml", + "microsoft.identity.client.4.73.1.nupkg.sha512", + "microsoft.identity.client.nuspec" + ] + }, + "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { + "sha512": "xDztAiV2F0wI0W8FLKv5cbaBefyLD6JVaAsvgSN7bjWNCzGYzHbcOEIP5s4TJXUpQzMfUyBsFl1mC6Zmgpz0PQ==", + "type": "package", + "path": "microsoft.identity.client.extensions.msal/4.73.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.dll", + "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.xml", + "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll", + "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.xml", + "microsoft.identity.client.extensions.msal.4.73.1.nupkg.sha512", + "microsoft.identity.client.extensions.msal.nuspec" + ] + }, + "Microsoft.IdentityModel.Abstractions/7.7.1": { + "sha512": "S7sHg6gLg7oFqNGLwN1qSbJDI+QcRRj8SuJ1jHyCmKSipnF6ZQL+tFV2NzVfGj/xmGT9TykQdQiBN+p5Idl4TA==", + "type": "package", + "path": "microsoft.identitymodel.abstractions/7.7.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Abstractions.dll", + "lib/net461/Microsoft.IdentityModel.Abstractions.xml", + "lib/net462/Microsoft.IdentityModel.Abstractions.dll", + "lib/net462/Microsoft.IdentityModel.Abstractions.xml", + "lib/net472/Microsoft.IdentityModel.Abstractions.dll", + "lib/net472/Microsoft.IdentityModel.Abstractions.xml", + "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/net6.0/Microsoft.IdentityModel.Abstractions.xml", + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/net8.0/Microsoft.IdentityModel.Abstractions.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml", + "microsoft.identitymodel.abstractions.7.7.1.nupkg.sha512", + "microsoft.identitymodel.abstractions.nuspec" + ] + }, + "Microsoft.IdentityModel.JsonWebTokens/7.7.1": { + "sha512": "3Izi75UCUssvo8LPx3OVnEeZay58qaFicrtSnbtUt7q8qQi0gy46gh4V8VUTkMVMKXV6VMyjBVmeNNgeCUJuIw==", + "type": "package", + "path": "microsoft.identitymodel.jsonwebtokens/7.7.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "microsoft.identitymodel.jsonwebtokens.7.7.1.nupkg.sha512", + "microsoft.identitymodel.jsonwebtokens.nuspec" + ] + }, + "Microsoft.IdentityModel.Logging/7.7.1": { + "sha512": "BZNgSq/o8gsKExdYoBKPR65fdsxW0cTF8PsdqB8y011AGUJJW300S/ZIsEUD0+sOmGc003Gwv3FYbjrVjvsLNQ==", + "type": "package", + "path": "microsoft.identitymodel.logging/7.7.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Logging.dll", + "lib/net461/Microsoft.IdentityModel.Logging.xml", + "lib/net462/Microsoft.IdentityModel.Logging.dll", + "lib/net462/Microsoft.IdentityModel.Logging.xml", + "lib/net472/Microsoft.IdentityModel.Logging.dll", + "lib/net472/Microsoft.IdentityModel.Logging.xml", + "lib/net6.0/Microsoft.IdentityModel.Logging.dll", + "lib/net6.0/Microsoft.IdentityModel.Logging.xml", + "lib/net8.0/Microsoft.IdentityModel.Logging.dll", + "lib/net8.0/Microsoft.IdentityModel.Logging.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml", + "microsoft.identitymodel.logging.7.7.1.nupkg.sha512", + "microsoft.identitymodel.logging.nuspec" + ] + }, + "Microsoft.IdentityModel.Protocols/7.7.1": { + "sha512": "h+fHHBGokepmCX+QZXJk4Ij8OApCb2n2ktoDkNX5CXteXsOxTHMNgjPGpAwdJMFvAL7TtGarUnk3o97NmBq2QQ==", + "type": "package", + "path": "microsoft.identitymodel.protocols/7.7.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Protocols.dll", + "lib/net461/Microsoft.IdentityModel.Protocols.xml", + "lib/net462/Microsoft.IdentityModel.Protocols.dll", + "lib/net462/Microsoft.IdentityModel.Protocols.xml", + "lib/net472/Microsoft.IdentityModel.Protocols.dll", + "lib/net472/Microsoft.IdentityModel.Protocols.xml", + "lib/net6.0/Microsoft.IdentityModel.Protocols.dll", + "lib/net6.0/Microsoft.IdentityModel.Protocols.xml", + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll", + "lib/net8.0/Microsoft.IdentityModel.Protocols.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.xml", + "microsoft.identitymodel.protocols.7.7.1.nupkg.sha512", + "microsoft.identitymodel.protocols.nuspec" + ] + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { + "sha512": "yT2Hdj8LpPbcT9C9KlLVxXl09C8zjFaVSaApdOwuecMuoV4s6Sof/mnTDz/+F/lILPIBvrWugR9CC7iRVZgbfQ==", + "type": "package", + "path": "microsoft.identitymodel.protocols.openidconnect/7.7.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net461/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/net462/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net462/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/net472/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net472/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/net6.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net6.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "microsoft.identitymodel.protocols.openidconnect.7.7.1.nupkg.sha512", + "microsoft.identitymodel.protocols.openidconnect.nuspec" + ] + }, + "Microsoft.IdentityModel.Tokens/7.7.1": { + "sha512": "fQ0VVCba75lknUHGldi3iTKAYUQqbzp1Un8+d9cm9nON0Gs8NAkXddNg8iaUB0qi/ybtAmNWizTR4avdkCJ9pQ==", + "type": "package", + "path": "microsoft.identitymodel.tokens/7.7.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Tokens.dll", + "lib/net461/Microsoft.IdentityModel.Tokens.xml", + "lib/net462/Microsoft.IdentityModel.Tokens.dll", + "lib/net462/Microsoft.IdentityModel.Tokens.xml", + "lib/net472/Microsoft.IdentityModel.Tokens.dll", + "lib/net472/Microsoft.IdentityModel.Tokens.xml", + "lib/net6.0/Microsoft.IdentityModel.Tokens.dll", + "lib/net6.0/Microsoft.IdentityModel.Tokens.xml", + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll", + "lib/net8.0/Microsoft.IdentityModel.Tokens.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml", + "microsoft.identitymodel.tokens.7.7.1.nupkg.sha512", + "microsoft.identitymodel.tokens.nuspec" + ] + }, + "Microsoft.SqlServer.Server/1.0.0": { + "sha512": "N4KeF3cpcm1PUHym1RmakkzfkEv3GRMyofVv40uXsQhCQeglr2OHNcUk2WOG51AKpGO8ynGpo9M/kFXSzghwug==", + "type": "package", + "path": "microsoft.sqlserver.server/1.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "dotnet.png", + "lib/net46/Microsoft.SqlServer.Server.dll", + "lib/net46/Microsoft.SqlServer.Server.pdb", + "lib/net46/Microsoft.SqlServer.Server.xml", + "lib/netstandard2.0/Microsoft.SqlServer.Server.dll", + "lib/netstandard2.0/Microsoft.SqlServer.Server.pdb", + "lib/netstandard2.0/Microsoft.SqlServer.Server.xml", + "microsoft.sqlserver.server.1.0.0.nupkg.sha512", + "microsoft.sqlserver.server.nuspec" + ] + }, + "System.ClientModel/1.5.1": { + "sha512": "k2jKSO0X45IqhVOT9iQB4xralNN9foRQsRvXBTyRpAVxyzCJlG895T9qYrQWbcJ6OQXxOouJQ37x5nZH5XKK+A==", + "type": "package", + "path": "system.clientmodel/1.5.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "CHANGELOG.md", + "DotNetPackageIcon.png", + "README.md", + "analyzers/dotnet/cs/System.ClientModel.SourceGeneration.dll", + "lib/net8.0/System.ClientModel.dll", + "lib/net8.0/System.ClientModel.xml", + "lib/netstandard2.0/System.ClientModel.dll", + "lib/netstandard2.0/System.ClientModel.xml", + "system.clientmodel.1.5.1.nupkg.sha512", + "system.clientmodel.nuspec" + ] + }, + "System.Configuration.ConfigurationManager/9.0.8": { + "sha512": "BR70HYY5jeOa/jBrd/wyydpuqhFyla2ybQRL/UPBIiSvctVqi18iQoM44Gx41jy7t6wuAdKuTnie6io4j8aq3w==", + "type": "package", + "path": "system.configuration.configurationmanager/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Configuration.ConfigurationManager.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Configuration.ConfigurationManager.targets", + "lib/net462/System.Configuration.ConfigurationManager.dll", + "lib/net462/System.Configuration.ConfigurationManager.xml", + "lib/net8.0/System.Configuration.ConfigurationManager.dll", + "lib/net8.0/System.Configuration.ConfigurationManager.xml", + "lib/net9.0/System.Configuration.ConfigurationManager.dll", + "lib/net9.0/System.Configuration.ConfigurationManager.xml", + "lib/netstandard2.0/System.Configuration.ConfigurationManager.dll", + "lib/netstandard2.0/System.Configuration.ConfigurationManager.xml", + "system.configuration.configurationmanager.9.0.8.nupkg.sha512", + "system.configuration.configurationmanager.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Diagnostics.DiagnosticSource/6.0.1": { + "sha512": "KiLYDu2k2J82Q9BJpWiuQqCkFjRBWVq4jDzKKWawVi9KWzyD0XG3cmfX0vqTQlL14Wi9EufJrbL0+KCLTbqWiQ==", + "type": "package", + "path": "system.diagnostics.diagnosticsource/6.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Diagnostics.DiagnosticSource.dll", + "lib/net461/System.Diagnostics.DiagnosticSource.xml", + "lib/net5.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net5.0/System.Diagnostics.DiagnosticSource.xml", + "lib/net6.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net6.0/System.Diagnostics.DiagnosticSource.xml", + "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll", + "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml", + "system.diagnostics.diagnosticsource.6.0.1.nupkg.sha512", + "system.diagnostics.diagnosticsource.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Diagnostics.EventLog/9.0.8": { + "sha512": "gebRF3JLLJ76jz1CQpvwezNapZUjFq20JQsaGHzBH0DzlkHBLpdhwkOei9usiOkIGMwU/L0ALWpNe1JE+5/itw==", + "type": "package", + "path": "system.diagnostics.eventlog/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Diagnostics.EventLog.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Diagnostics.EventLog.targets", + "lib/net462/System.Diagnostics.EventLog.dll", + "lib/net462/System.Diagnostics.EventLog.xml", + "lib/net8.0/System.Diagnostics.EventLog.dll", + "lib/net8.0/System.Diagnostics.EventLog.xml", + "lib/net9.0/System.Diagnostics.EventLog.dll", + "lib/net9.0/System.Diagnostics.EventLog.xml", + "lib/netstandard2.0/System.Diagnostics.EventLog.dll", + "lib/netstandard2.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net9.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net9.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net9.0/System.Diagnostics.EventLog.xml", + "system.diagnostics.eventlog.9.0.8.nupkg.sha512", + "system.diagnostics.eventlog.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.IdentityModel.Tokens.Jwt/7.7.1": { + "sha512": "rQkO1YbAjLwnDJSMpRhRtrc6XwIcEOcUvoEcge+evurpzSZM3UNK+MZfD3sKyTlYsvknZ6eJjSBfnmXqwOsT9Q==", + "type": "package", + "path": "system.identitymodel.tokens.jwt/7.7.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/System.IdentityModel.Tokens.Jwt.dll", + "lib/net461/System.IdentityModel.Tokens.Jwt.xml", + "lib/net462/System.IdentityModel.Tokens.Jwt.dll", + "lib/net462/System.IdentityModel.Tokens.Jwt.xml", + "lib/net472/System.IdentityModel.Tokens.Jwt.dll", + "lib/net472/System.IdentityModel.Tokens.Jwt.xml", + "lib/net6.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/net6.0/System.IdentityModel.Tokens.Jwt.xml", + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/net8.0/System.IdentityModel.Tokens.Jwt.xml", + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml", + "system.identitymodel.tokens.jwt.7.7.1.nupkg.sha512", + "system.identitymodel.tokens.jwt.nuspec" + ] + }, + "System.Memory/4.5.5": { + "sha512": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", + "type": "package", + "path": "system.memory/4.5.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/System.Memory.dll", + "lib/net461/System.Memory.xml", + "lib/netcoreapp2.1/_._", + "lib/netstandard1.1/System.Memory.dll", + "lib/netstandard1.1/System.Memory.xml", + "lib/netstandard2.0/System.Memory.dll", + "lib/netstandard2.0/System.Memory.xml", + "ref/netcoreapp2.1/_._", + "system.memory.4.5.5.nupkg.sha512", + "system.memory.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Memory.Data/8.0.1": { + "sha512": "BVYuec3jV23EMRDeR7Dr1/qhx7369dZzJ9IWy2xylvb4YfXsrUxspWc4UWYid/tj4zZK58uGZqn2WQiaDMhmAg==", + "type": "package", + "path": "system.memory.data/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Memory.Data.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Memory.Data.targets", + "lib/net462/System.Memory.Data.dll", + "lib/net462/System.Memory.Data.xml", + "lib/net6.0/System.Memory.Data.dll", + "lib/net6.0/System.Memory.Data.xml", + "lib/net7.0/System.Memory.Data.dll", + "lib/net7.0/System.Memory.Data.xml", + "lib/net8.0/System.Memory.Data.dll", + "lib/net8.0/System.Memory.Data.xml", + "lib/netstandard2.0/System.Memory.Data.dll", + "lib/netstandard2.0/System.Memory.Data.xml", + "system.memory.data.8.0.1.nupkg.sha512", + "system.memory.data.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "sha512": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", + "type": "package", + "path": "system.runtime.compilerservices.unsafe/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Runtime.CompilerServices.Unsafe.dll", + "lib/net461/System.Runtime.CompilerServices.Unsafe.xml", + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll", + "lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml", + "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll", + "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.xml", + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll", + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml", + "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", + "system.runtime.compilerservices.unsafe.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Security.Cryptography.Pkcs/9.0.4": { + "sha512": "cUFTcMlz/Qw9s90b2wnWSCvHdjv51Bau9FQqhsr4TlwSe1OX+7SoXUqphis5G74MLOvMOCghxPPlEqOdCrVVGA==", + "type": "package", + "path": "system.security.cryptography.pkcs/9.0.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Security.Cryptography.Pkcs.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Security.Cryptography.Pkcs.targets", + "lib/net462/System.Security.Cryptography.Pkcs.dll", + "lib/net462/System.Security.Cryptography.Pkcs.xml", + "lib/net8.0/System.Security.Cryptography.Pkcs.dll", + "lib/net8.0/System.Security.Cryptography.Pkcs.xml", + "lib/net9.0/System.Security.Cryptography.Pkcs.dll", + "lib/net9.0/System.Security.Cryptography.Pkcs.xml", + "lib/netstandard2.0/System.Security.Cryptography.Pkcs.dll", + "lib/netstandard2.0/System.Security.Cryptography.Pkcs.xml", + "lib/netstandard2.1/System.Security.Cryptography.Pkcs.dll", + "lib/netstandard2.1/System.Security.Cryptography.Pkcs.xml", + "runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll", + "runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.xml", + "runtimes/win/lib/net9.0/System.Security.Cryptography.Pkcs.dll", + "runtimes/win/lib/net9.0/System.Security.Cryptography.Pkcs.xml", + "system.security.cryptography.pkcs.9.0.4.nupkg.sha512", + "system.security.cryptography.pkcs.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Security.Cryptography.ProtectedData/9.0.8": { + "sha512": "w7+KCnqmtDboV8dxTLxlUltasP7AgzNFdTLq1D/ey50ykgXW+CJBIQkzYZjgPzmjKB+/PGGUKYrH7TSbwrDtRw==", + "type": "package", + "path": "system.security.cryptography.protecteddata/9.0.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Security.Cryptography.ProtectedData.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Security.Cryptography.ProtectedData.targets", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net462/System.Security.Cryptography.ProtectedData.dll", + "lib/net462/System.Security.Cryptography.ProtectedData.xml", + "lib/net8.0/System.Security.Cryptography.ProtectedData.dll", + "lib/net8.0/System.Security.Cryptography.ProtectedData.xml", + "lib/net9.0/System.Security.Cryptography.ProtectedData.dll", + "lib/net9.0/System.Security.Cryptography.ProtectedData.xml", + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll", + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.xml", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "system.security.cryptography.protecteddata.9.0.8.nupkg.sha512", + "system.security.cryptography.protecteddata.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Json/9.0.5": { + "sha512": "rnP61ZfloTgPQPe7ecr36loNiGX3g1PocxlKHdY/FUpDSsExKkTxpMAlB4X35wNEPr1X7mkYZuQvW3Lhxmu7KA==", + "type": "package", + "path": "system.text.json/9.0.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "buildTransitive/net461/System.Text.Json.targets", + "buildTransitive/net462/System.Text.Json.targets", + "buildTransitive/net8.0/System.Text.Json.targets", + "buildTransitive/netcoreapp2.0/System.Text.Json.targets", + "buildTransitive/netstandard2.0/System.Text.Json.targets", + "lib/net462/System.Text.Json.dll", + "lib/net462/System.Text.Json.xml", + "lib/net8.0/System.Text.Json.dll", + "lib/net8.0/System.Text.Json.xml", + "lib/net9.0/System.Text.Json.dll", + "lib/net9.0/System.Text.Json.xml", + "lib/netstandard2.0/System.Text.Json.dll", + "lib/netstandard2.0/System.Text.Json.xml", + "system.text.json.9.0.5.nupkg.sha512", + "system.text.json.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Wcwidth/1.0.0": { + "sha512": "aekut5BeF4c1Jr2qab3aXcttcgPEfPb2ok2L8911EIzn3RnDBYnUWgx/1OVlqrSXCdwAkBpNgYWXb6b5t4cBng==", + "type": "package", + "path": "wcwidth/1.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net6.0/Wcwidth.dll", + "lib/net6.0/Wcwidth.xml", + "lib/netstandard2.0/Wcwidth.dll", + "lib/netstandard2.0/Wcwidth.xml", + "wcwidth.1.0.0.nupkg.sha512", + "wcwidth.nuspec" + ] + } + }, + "projectFileDependencyGroups": { + "net9.0": [ + "ConsoleTables >= 2.7.0", + "Microsoft.Data.SqlClient >= 6.1.1", + "Microsoft.Extensions.Configuration >= 9.0.8", + "Microsoft.Extensions.Configuration.Binder >= 9.0.8", + "Microsoft.Extensions.Configuration.Json >= 9.0.8", + "System.Configuration.ConfigurationManager >= 9.0.8" + ] + }, + "packageFolders": { + "C:\\Users\\hp\\.nuget\\packages\\": {}, + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj", + "projectName": "FlashCardLearning", + "projectPath": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj", + "packagesPath": "C:\\Users\\hp\\.nuget\\packages\\", + "outputPath": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\hp\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.200" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "dependencies": { + "ConsoleTables": { + "target": "Package", + "version": "[2.7.0, )" + }, + "Microsoft.Data.SqlClient": { + "target": "Package", + "version": "[6.1.1, )" + }, + "Microsoft.Extensions.Configuration": { + "target": "Package", + "version": "[9.0.8, )" + }, + "Microsoft.Extensions.Configuration.Binder": { + "target": "Package", + "version": "[9.0.8, )" + }, + "Microsoft.Extensions.Configuration.Json": { + "target": "Package", + "version": "[9.0.8, )" + }, + "System.Configuration.ConfigurationManager": { + "target": "Package", + "version": "[9.0.8, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.200/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/FlashCards.Review/FlashCard.App/obj/project.nuget.cache b/FlashCards.Review/FlashCard.App/obj/project.nuget.cache new file mode 100644 index 00000000..d167dcd4 --- /dev/null +++ b/FlashCards.Review/FlashCard.App/obj/project.nuget.cache @@ -0,0 +1,51 @@ +{ + "version": 2, + "dgSpecHash": "iai0FHys0aE=", + "success": true, + "projectFilePath": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj", + "expectedPackageFiles": [ + "C:\\Users\\hp\\.nuget\\packages\\azure.core\\1.47.1\\azure.core.1.47.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\azure.identity\\1.14.2\\azure.identity.1.14.2.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\consoletables\\2.7.0\\consoletables.2.7.0.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\8.0.0\\microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.bcl.cryptography\\9.0.4\\microsoft.bcl.cryptography.9.0.4.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.data.sqlclient\\6.1.1\\microsoft.data.sqlclient.6.1.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.data.sqlclient.sni.runtime\\6.0.2\\microsoft.data.sqlclient.sni.runtime.6.0.2.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\9.0.4\\microsoft.extensions.caching.abstractions.9.0.4.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.caching.memory\\9.0.4\\microsoft.extensions.caching.memory.9.0.4.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.configuration\\9.0.8\\microsoft.extensions.configuration.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\9.0.8\\microsoft.extensions.configuration.abstractions.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.configuration.binder\\9.0.8\\microsoft.extensions.configuration.binder.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\9.0.8\\microsoft.extensions.configuration.fileextensions.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.configuration.json\\9.0.8\\microsoft.extensions.configuration.json.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\9.0.4\\microsoft.extensions.dependencyinjection.abstractions.9.0.4.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\9.0.8\\microsoft.extensions.fileproviders.abstractions.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\9.0.8\\microsoft.extensions.fileproviders.physical.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\9.0.8\\microsoft.extensions.filesystemglobbing.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\9.0.4\\microsoft.extensions.logging.abstractions.9.0.4.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.options\\9.0.4\\microsoft.extensions.options.9.0.4.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.primitives\\9.0.8\\microsoft.extensions.primitives.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.identity.client\\4.73.1\\microsoft.identity.client.4.73.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.identity.client.extensions.msal\\4.73.1\\microsoft.identity.client.extensions.msal.4.73.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.abstractions\\7.7.1\\microsoft.identitymodel.abstractions.7.7.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\7.7.1\\microsoft.identitymodel.jsonwebtokens.7.7.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.logging\\7.7.1\\microsoft.identitymodel.logging.7.7.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.protocols\\7.7.1\\microsoft.identitymodel.protocols.7.7.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.protocols.openidconnect\\7.7.1\\microsoft.identitymodel.protocols.openidconnect.7.7.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.tokens\\7.7.1\\microsoft.identitymodel.tokens.7.7.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\microsoft.sqlserver.server\\1.0.0\\microsoft.sqlserver.server.1.0.0.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\system.clientmodel\\1.5.1\\system.clientmodel.1.5.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\system.configuration.configurationmanager\\9.0.8\\system.configuration.configurationmanager.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\system.diagnostics.diagnosticsource\\6.0.1\\system.diagnostics.diagnosticsource.6.0.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\system.diagnostics.eventlog\\9.0.8\\system.diagnostics.eventlog.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\system.identitymodel.tokens.jwt\\7.7.1\\system.identitymodel.tokens.jwt.7.7.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\system.memory\\4.5.5\\system.memory.4.5.5.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\system.memory.data\\8.0.1\\system.memory.data.8.0.1.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\system.security.cryptography.pkcs\\9.0.4\\system.security.cryptography.pkcs.9.0.4.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\system.security.cryptography.protecteddata\\9.0.8\\system.security.cryptography.protecteddata.9.0.8.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\system.text.json\\9.0.5\\system.text.json.9.0.5.nupkg.sha512", + "C:\\Users\\hp\\.nuget\\packages\\wcwidth\\1.0.0\\wcwidth.1.0.0.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file From 1f43c5739148fff98eb0ac275ca8bf6184729e59 Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Tue, 30 Sep 2025 07:22:16 +0530 Subject: [PATCH 09/13] Modified folder strucuture without obj --- .gitignore | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 82908131..440c5f52 100644 --- a/.gitignore +++ b/.gitignore @@ -483,7 +483,5 @@ $RECYCLE.BIN/ .idea - #temp files - FlashCards.Review/FlashCard.App/bin/ - FlashCards.Review/FlashCard.App/obj/ - FlashCards.Review/FlashCard.App/DataBaseScripts/ \ No newline at end of file +#temp files +FlashCards.Review/FlashCard.App/obj/ \ No newline at end of file From 660fb60863cd98ed65aad4451441bf9a7d7103e3 Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Tue, 30 Sep 2025 07:23:26 +0530 Subject: [PATCH 10/13] Modified folder strucuture without obj --- ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 - .../net9.0/FlashCardLearning.AssemblyInfo.cs | 23 - ...FlashCardLearning.AssemblyInfoInputs.cache | 1 - ....GeneratedMSBuildEditorConfig.editorconfig | 15 - .../FlashCardLearning.GlobalUsings.g.cs | 8 - .../net9.0/FlashCardLearning.assets.cache | Bin 32298 -> 0 bytes ...ardLearning.csproj.AssemblyReference.cache | Bin 21595 -> 0 bytes ...CardLearning.csproj.BuildWithSkipAnalyzers | 0 ...shCardLearning.csproj.FileListAbsolute.txt | 77 - .../obj/Debug/net9.0/apphost.exe | Bin 145408 -> 0 bytes ...FlashCardLearning.csproj.nuget.dgspec.json | 99 - .../FlashCardLearning.csproj.nuget.g.props | 16 - .../FlashCardLearning.csproj.nuget.g.targets | 9 - .../FlashCard.App/obj/project.assets.json | 2130 ----------------- .../FlashCard.App/obj/project.nuget.cache | 51 - 15 files changed, 2433 deletions(-) delete mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs delete mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfo.cs delete mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfoInputs.cache delete mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GeneratedMSBuildEditorConfig.editorconfig delete mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GlobalUsings.g.cs delete mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.assets.cache delete mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.AssemblyReference.cache delete mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.BuildWithSkipAnalyzers delete mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.FileListAbsolute.txt delete mode 100644 FlashCards.Review/FlashCard.App/obj/Debug/net9.0/apphost.exe delete mode 100644 FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.dgspec.json delete mode 100644 FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.props delete mode 100644 FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.targets delete mode 100644 FlashCards.Review/FlashCard.App/obj/project.assets.json delete mode 100644 FlashCards.Review/FlashCard.App/obj/project.nuget.cache diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs deleted file mode 100644 index feda5e9f..00000000 --- a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfo.cs b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfo.cs deleted file mode 100644 index 59e722e4..00000000 --- a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfo.cs +++ /dev/null @@ -1,23 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("FlashCardLearning")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5722872b2849576185deefa25119e2b82d2c36fc")] -[assembly: System.Reflection.AssemblyProductAttribute("FlashCardLearning")] -[assembly: System.Reflection.AssemblyTitleAttribute("FlashCardLearning")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfoInputs.cache b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfoInputs.cache deleted file mode 100644 index 06fd5ec1..00000000 --- a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -8ad4d1dd23743e4e797f49216c6b700013597c154e08bd0dcb28ead70cb0bdd4 diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GeneratedMSBuildEditorConfig.editorconfig b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GeneratedMSBuildEditorConfig.editorconfig deleted file mode 100644 index 17d88f61..00000000 --- a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GeneratedMSBuildEditorConfig.editorconfig +++ /dev/null @@ -1,15 +0,0 @@ -is_global = true -build_property.TargetFramework = net9.0 -build_property.TargetPlatformMinVersion = -build_property.UsingMicrosoftNETSdkWeb = -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = FlashCardLearning -build_property.ProjectDir = D:\projects\CONSOLE APPS\FlashCards\CodeReviews.Console.Flashcards\ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = -build_property.EffectiveAnalysisLevelStyle = 9.0 -build_property.EnableCodeStyleSeverity = diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GlobalUsings.g.cs b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GlobalUsings.g.cs deleted file mode 100644 index 8578f3d0..00000000 --- a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.GlobalUsings.g.cs +++ /dev/null @@ -1,8 +0,0 @@ -// -global using global::System; -global using global::System.Collections.Generic; -global using global::System.IO; -global using global::System.Linq; -global using global::System.Net.Http; -global using global::System.Threading; -global using global::System.Threading.Tasks; diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.assets.cache b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.assets.cache deleted file mode 100644 index 550537715845268de4d40129a2760b90e4d4d3e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32298 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 Q>_2hc1ziS|cnaSC07NLHY5)KL diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.BuildWithSkipAnalyzers b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.BuildWithSkipAnalyzers deleted file mode 100644 index e69de29b..00000000 diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.FileListAbsolute.txt b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.FileListAbsolute.txt deleted file mode 100644 index d9e412ca..00000000 --- a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/FlashCardLearning.csproj.FileListAbsolute.txt +++ /dev/null @@ -1,77 +0,0 @@ -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.exe -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.dll.config -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.deps.json -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.runtimeconfig.json -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\FlashCardLearning.pdb -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Azure.Core.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Azure.Identity.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\ConsoleTables.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Bcl.AsyncInterfaces.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Bcl.Cryptography.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Data.SqlClient.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Caching.Abstractions.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Caching.Memory.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Configuration.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Configuration.Abstractions.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Configuration.Binder.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Configuration.FileExtensions.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Configuration.Json.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.FileProviders.Abstractions.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.FileProviders.Physical.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.FileSystemGlobbing.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Logging.Abstractions.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Options.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Extensions.Primitives.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Identity.Client.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.Identity.Client.Extensions.Msal.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.Abstractions.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.JsonWebTokens.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.Logging.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.Protocols.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.IdentityModel.Tokens.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Microsoft.SqlServer.Server.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.ClientModel.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Configuration.ConfigurationManager.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Diagnostics.EventLog.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.IdentityModel.Tokens.Jwt.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Memory.Data.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Security.Cryptography.Pkcs.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Security.Cryptography.ProtectedData.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\System.Text.Json.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\Wcwidth.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\cs\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\de\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\es\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\fr\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\it\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\ja\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\ko\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\pl\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\pt-BR\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\ru\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\tr\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\zh-Hans\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\zh-Hant\Microsoft.Data.SqlClient.resources.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\unix\lib\net9.0\Microsoft.Data.SqlClient.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win\lib\net9.0\Microsoft.Data.SqlClient.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win-arm64\native\Microsoft.Data.SqlClient.SNI.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win-x64\native\Microsoft.Data.SqlClient.SNI.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win-x86\native\Microsoft.Data.SqlClient.SNI.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win\lib\net9.0\System.Diagnostics.EventLog.Messages.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win\lib\net9.0\System.Diagnostics.EventLog.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\bin\Debug\net9.0\runtimes\win\lib\net9.0\System.Security.Cryptography.Pkcs.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.csproj.AssemblyReference.cache -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.GeneratedMSBuildEditorConfig.editorconfig -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.AssemblyInfoInputs.cache -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.AssemblyInfo.cs -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.csproj.CoreCompileInputs.cache -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.sourcelink.json -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCar.F7F01D4A.Up2Date -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\refint\FlashCardLearning.dll -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.pdb -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\FlashCardLearning.genruntimeconfig.cache -D:\projects\CONSOLE APPS\FlashCards\FlashCardLearning\obj\Debug\net9.0\ref\FlashCardLearning.dll diff --git a/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/apphost.exe b/FlashCards.Review/FlashCard.App/obj/Debug/net9.0/apphost.exe deleted file mode 100644 index 97ebd92d3b3631a8b2f2bfbcf146aa9c7c64f07b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145408 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

>XbUx5a&SB~z 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 diff --git a/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.dgspec.json b/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.dgspec.json deleted file mode 100644 index 9237d6a3..00000000 --- a/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.dgspec.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "format": 1, - "restore": { - "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj": {} - }, - "projects": { - "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj", - "projectName": "FlashCardLearning", - "projectPath": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj", - "packagesPath": "C:\\Users\\hp\\.nuget\\packages\\", - "outputPath": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\obj\\", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configFilePaths": [ - "C:\\Users\\hp\\AppData\\Roaming\\NuGet\\NuGet.Config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" - ], - "originalTargetFrameworks": [ - "net9.0" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net9.0": { - "targetAlias": "net9.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - }, - "SdkAnalysisLevel": "9.0.200" - }, - "frameworks": { - "net9.0": { - "targetAlias": "net9.0", - "dependencies": { - "ConsoleTables": { - "target": "Package", - "version": "[2.7.0, )" - }, - "Microsoft.Data.SqlClient": { - "target": "Package", - "version": "[6.1.1, )" - }, - "Microsoft.Extensions.Configuration": { - "target": "Package", - "version": "[9.0.8, )" - }, - "Microsoft.Extensions.Configuration.Binder": { - "target": "Package", - "version": "[9.0.8, )" - }, - "Microsoft.Extensions.Configuration.Json": { - "target": "Package", - "version": "[9.0.8, )" - }, - "System.Configuration.ConfigurationManager": { - "target": "Package", - "version": "[9.0.8, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.200/PortableRuntimeIdentifierGraph.json" - } - } - } - } -} \ No newline at end of file diff --git a/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.props b/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.props deleted file mode 100644 index f553bc5e..00000000 --- a/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.props +++ /dev/null @@ -1,16 +0,0 @@ - - - - True - NuGet - $(MSBuildThisFileDirectory)project.assets.json - $(UserProfile)\.nuget\packages\ - C:\Users\hp\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages - PackageReference - 6.13.0 - - - - - - \ No newline at end of file diff --git a/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.targets b/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.targets deleted file mode 100644 index 1b45ca6e..00000000 --- a/FlashCards.Review/FlashCard.App/obj/FlashCardLearning.csproj.nuget.g.targets +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/FlashCards.Review/FlashCard.App/obj/project.assets.json b/FlashCards.Review/FlashCard.App/obj/project.assets.json deleted file mode 100644 index 5edd8c5f..00000000 --- a/FlashCards.Review/FlashCard.App/obj/project.assets.json +++ /dev/null @@ -1,2130 +0,0 @@ -{ - "version": 3, - "targets": { - "net9.0": { - "Azure.Core/1.47.1": { - "type": "package", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "System.ClientModel": "1.5.1", - "System.Memory.Data": "8.0.1" - }, - "compile": { - "lib/net8.0/Azure.Core.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Azure.Core.dll": { - "related": ".xml" - } - } - }, - "Azure.Identity/1.14.2": { - "type": "package", - "dependencies": { - "Azure.Core": "1.46.1", - "Microsoft.Identity.Client": "4.73.1", - "Microsoft.Identity.Client.Extensions.Msal": "4.73.1", - "System.Memory": "4.5.5" - }, - "compile": { - "lib/net8.0/Azure.Identity.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Azure.Identity.dll": { - "related": ".xml" - } - } - }, - "ConsoleTables/2.7.0": { - "type": "package", - "dependencies": { - "Wcwidth": "1.0.0" - }, - "compile": { - "lib/netstandard2.1/ConsoleTables.dll": { - "related": ".pdb" - } - }, - "runtime": { - "lib/netstandard2.1/ConsoleTables.dll": { - "related": ".pdb" - } - } - }, - "Microsoft.Bcl.AsyncInterfaces/8.0.0": { - "type": "package", - "compile": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Bcl.Cryptography/9.0.4": { - "type": "package", - "compile": { - "lib/net9.0/Microsoft.Bcl.Cryptography.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Bcl.Cryptography.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Data.SqlClient/6.1.1": { - "type": "package", - "dependencies": { - "Azure.Core": "1.47.1", - "Azure.Identity": "1.14.2", - "Microsoft.Bcl.Cryptography": "9.0.4", - "Microsoft.Data.SqlClient.SNI.runtime": "6.0.2", - "Microsoft.Extensions.Caching.Memory": "9.0.4", - "Microsoft.IdentityModel.JsonWebTokens": "7.7.1", - "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.7.1", - "Microsoft.SqlServer.Server": "1.0.0", - "System.Configuration.ConfigurationManager": "9.0.4", - "System.Security.Cryptography.Pkcs": "9.0.4", - "System.Text.Json": "9.0.5" - }, - "compile": { - "ref/net9.0/Microsoft.Data.SqlClient.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Data.SqlClient.dll": { - "related": ".xml" - } - }, - "resource": { - "lib/net9.0/cs/Microsoft.Data.SqlClient.resources.dll": { - "locale": "cs" - }, - "lib/net9.0/de/Microsoft.Data.SqlClient.resources.dll": { - "locale": "de" - }, - "lib/net9.0/es/Microsoft.Data.SqlClient.resources.dll": { - "locale": "es" - }, - "lib/net9.0/fr/Microsoft.Data.SqlClient.resources.dll": { - "locale": "fr" - }, - "lib/net9.0/it/Microsoft.Data.SqlClient.resources.dll": { - "locale": "it" - }, - "lib/net9.0/ja/Microsoft.Data.SqlClient.resources.dll": { - "locale": "ja" - }, - "lib/net9.0/ko/Microsoft.Data.SqlClient.resources.dll": { - "locale": "ko" - }, - "lib/net9.0/pl/Microsoft.Data.SqlClient.resources.dll": { - "locale": "pl" - }, - "lib/net9.0/pt-BR/Microsoft.Data.SqlClient.resources.dll": { - "locale": "pt-BR" - }, - "lib/net9.0/ru/Microsoft.Data.SqlClient.resources.dll": { - "locale": "ru" - }, - "lib/net9.0/tr/Microsoft.Data.SqlClient.resources.dll": { - "locale": "tr" - }, - "lib/net9.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll": { - "locale": "zh-Hans" - }, - "lib/net9.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll": { - "locale": "zh-Hant" - } - }, - "runtimeTargets": { - "runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll": { - "assetType": "runtime", - "rid": "unix" - }, - "runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { - "type": "package", - "runtimeTargets": { - "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll": { - "assetType": "native", - "rid": "win-arm64" - }, - "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll": { - "assetType": "native", - "rid": "win-x64" - }, - "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll": { - "assetType": "native", - "rid": "win-x86" - } - } - }, - "Microsoft.Extensions.Caching.Abstractions/9.0.4": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Primitives": "9.0.4" - }, - "compile": { - "lib/net9.0/_._": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Caching.Memory/9.0.4": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "9.0.4", - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4", - "Microsoft.Extensions.Logging.Abstractions": "9.0.4", - "Microsoft.Extensions.Options": "9.0.4", - "Microsoft.Extensions.Primitives": "9.0.4" - }, - "compile": { - "lib/net9.0/_._": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.Caching.Memory.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Configuration/9.0.8": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "9.0.8", - "Microsoft.Extensions.Primitives": "9.0.8" - }, - "compile": { - "lib/net9.0/Microsoft.Extensions.Configuration.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.Configuration.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Configuration.Abstractions/9.0.8": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Primitives": "9.0.8" - }, - "compile": { - "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Configuration.Binder/9.0.8": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "9.0.8" - }, - "compile": { - "lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets": {} - } - }, - "Microsoft.Extensions.Configuration.FileExtensions/9.0.8": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Configuration": "9.0.8", - "Microsoft.Extensions.Configuration.Abstractions": "9.0.8", - "Microsoft.Extensions.FileProviders.Abstractions": "9.0.8", - "Microsoft.Extensions.FileProviders.Physical": "9.0.8", - "Microsoft.Extensions.Primitives": "9.0.8" - }, - "compile": { - "lib/net9.0/Microsoft.Extensions.Configuration.FileExtensions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.Configuration.FileExtensions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Configuration.Json/9.0.8": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Configuration": "9.0.8", - "Microsoft.Extensions.Configuration.Abstractions": "9.0.8", - "Microsoft.Extensions.Configuration.FileExtensions": "9.0.8", - "Microsoft.Extensions.FileProviders.Abstractions": "9.0.8" - }, - "compile": { - "lib/net9.0/Microsoft.Extensions.Configuration.Json.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.Configuration.Json.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4": { - "type": "package", - "compile": { - "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.FileProviders.Abstractions/9.0.8": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Primitives": "9.0.8" - }, - "compile": { - "lib/net9.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.FileProviders.Physical/9.0.8": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "9.0.8", - "Microsoft.Extensions.FileSystemGlobbing": "9.0.8", - "Microsoft.Extensions.Primitives": "9.0.8" - }, - "compile": { - "lib/net9.0/Microsoft.Extensions.FileProviders.Physical.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.FileProviders.Physical.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.FileSystemGlobbing/9.0.8": { - "type": "package", - "compile": { - "lib/net9.0/Microsoft.Extensions.FileSystemGlobbing.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.FileSystemGlobbing.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Logging.Abstractions/9.0.4": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4" - }, - "compile": { - "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {} - } - }, - "Microsoft.Extensions.Options/9.0.4": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4", - "Microsoft.Extensions.Primitives": "9.0.4" - }, - "compile": { - "lib/net9.0/_._": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.Options.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {} - } - }, - "Microsoft.Extensions.Primitives/9.0.8": { - "type": "package", - "compile": { - "lib/net9.0/Microsoft.Extensions.Primitives.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.Extensions.Primitives.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Identity.Client/4.73.1": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.Abstractions": "6.35.0", - "System.Diagnostics.DiagnosticSource": "6.0.1" - }, - "compile": { - "lib/net8.0/Microsoft.Identity.Client.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Identity.Client.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { - "type": "package", - "dependencies": { - "Microsoft.Identity.Client": "4.73.1", - "System.Security.Cryptography.ProtectedData": "4.5.0" - }, - "compile": { - "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.dll": { - "related": ".xml" - } - } - }, - "Microsoft.IdentityModel.Abstractions/7.7.1": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.IdentityModel.JsonWebTokens/7.7.1": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.7.1" - }, - "compile": { - "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { - "related": ".xml" - } - } - }, - "Microsoft.IdentityModel.Logging/7.7.1": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.7.1" - }, - "compile": { - "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { - "related": ".xml" - } - } - }, - "Microsoft.IdentityModel.Protocols/7.7.1": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.7.1" - }, - "compile": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { - "related": ".xml" - } - } - }, - "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.Protocols": "7.7.1", - "System.IdentityModel.Tokens.Jwt": "7.7.1" - }, - "compile": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { - "related": ".xml" - } - } - }, - "Microsoft.IdentityModel.Tokens/7.7.1": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.Logging": "7.7.1" - }, - "compile": { - "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { - "related": ".xml" - } - } - }, - "Microsoft.SqlServer.Server/1.0.0": { - "type": "package", - "compile": { - "lib/netstandard2.0/Microsoft.SqlServer.Server.dll": { - "related": ".pdb;.xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.SqlServer.Server.dll": { - "related": ".pdb;.xml" - } - } - }, - "System.ClientModel/1.5.1": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "8.0.3", - "System.Memory.Data": "8.0.1" - }, - "compile": { - "lib/net8.0/System.ClientModel.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.ClientModel.dll": { - "related": ".xml" - } - } - }, - "System.Configuration.ConfigurationManager/9.0.8": { - "type": "package", - "dependencies": { - "System.Diagnostics.EventLog": "9.0.8", - "System.Security.Cryptography.ProtectedData": "9.0.8" - }, - "compile": { - "lib/net9.0/System.Configuration.ConfigurationManager.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/System.Configuration.ConfigurationManager.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.Diagnostics.DiagnosticSource/6.0.1": { - "type": "package", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - }, - "compile": { - "lib/net6.0/System.Diagnostics.DiagnosticSource.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net6.0/System.Diagnostics.DiagnosticSource.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/netcoreapp3.1/_._": {} - } - }, - "System.Diagnostics.EventLog/9.0.8": { - "type": "package", - "compile": { - "lib/net9.0/System.Diagnostics.EventLog.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/System.Diagnostics.EventLog.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - }, - "runtimeTargets": { - "runtimes/win/lib/net9.0/System.Diagnostics.EventLog.Messages.dll": { - "assetType": "runtime", - "rid": "win" - }, - "runtimes/win/lib/net9.0/System.Diagnostics.EventLog.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.IdentityModel.Tokens.Jwt/7.7.1": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "7.7.1", - "Microsoft.IdentityModel.Tokens": "7.7.1" - }, - "compile": { - "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { - "related": ".xml" - } - } - }, - "System.Memory/4.5.5": { - "type": "package", - "compile": { - "ref/netcoreapp2.1/_._": {} - }, - "runtime": { - "lib/netcoreapp2.1/_._": {} - } - }, - "System.Memory.Data/8.0.1": { - "type": "package", - "compile": { - "lib/net8.0/System.Memory.Data.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Memory.Data.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "System.Runtime.CompilerServices.Unsafe/6.0.0": { - "type": "package", - "compile": { - "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/netcoreapp3.1/_._": {} - } - }, - "System.Security.Cryptography.Pkcs/9.0.4": { - "type": "package", - "compile": { - "lib/net9.0/System.Security.Cryptography.Pkcs.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/System.Security.Cryptography.Pkcs.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - }, - "runtimeTargets": { - "runtimes/win/lib/net9.0/System.Security.Cryptography.Pkcs.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.Security.Cryptography.ProtectedData/9.0.8": { - "type": "package", - "compile": { - "lib/net9.0/System.Security.Cryptography.ProtectedData.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/System.Security.Cryptography.ProtectedData.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.Text.Json/9.0.5": { - "type": "package", - "compile": { - "lib/net9.0/System.Text.Json.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/System.Text.Json.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/System.Text.Json.targets": {} - } - }, - "Wcwidth/1.0.0": { - "type": "package", - "compile": { - "lib/net6.0/Wcwidth.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net6.0/Wcwidth.dll": { - "related": ".xml" - } - } - } - } - }, - "libraries": { - "Azure.Core/1.47.1": { - "sha512": "oPcncSsDHuxB8SC522z47xbp2+ttkcKv2YZ90KXhRKN0YQd2+7l1UURT9EBzUNEXtkLZUOAB5xbByMTrYRh3yA==", - "type": "package", - "path": "azure.core/1.47.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "CHANGELOG.md", - "README.md", - "azure.core.1.47.1.nupkg.sha512", - "azure.core.nuspec", - "azureicon.png", - "lib/net462/Azure.Core.dll", - "lib/net462/Azure.Core.xml", - "lib/net472/Azure.Core.dll", - "lib/net472/Azure.Core.xml", - "lib/net8.0/Azure.Core.dll", - "lib/net8.0/Azure.Core.xml", - "lib/netstandard2.0/Azure.Core.dll", - "lib/netstandard2.0/Azure.Core.xml" - ] - }, - "Azure.Identity/1.14.2": { - "sha512": "YhNMwOTwT+I2wIcJKSdP0ADyB2aK+JaYWZxO8LSRDm5w77LFr0ykR9xmt2ZV5T1gaI7xU6iNFIh/yW1dAlpddQ==", - "type": "package", - "path": "azure.identity/1.14.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "CHANGELOG.md", - "README.md", - "azure.identity.1.14.2.nupkg.sha512", - "azure.identity.nuspec", - "azureicon.png", - "lib/net8.0/Azure.Identity.dll", - "lib/net8.0/Azure.Identity.xml", - "lib/netstandard2.0/Azure.Identity.dll", - "lib/netstandard2.0/Azure.Identity.xml" - ] - }, - "ConsoleTables/2.7.0": { - "sha512": "6l6Si/7lMaXYHiIERdqdEMIiTjvCF29fObjAmTahsTpjSaMBUv1TMm7qmrOHL32Le3ipFqhph5sm8WOJjZG9Og==", - "type": "package", - "path": "consoletables/2.7.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Readme.md", - "consoletables.2.7.0.nupkg.sha512", - "consoletables.nuspec", - "icon.png", - "lib/netstandard2.1/ConsoleTables.dll", - "lib/netstandard2.1/ConsoleTables.pdb" - ] - }, - "Microsoft.Bcl.AsyncInterfaces/8.0.0": { - "sha512": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", - "type": "package", - "path": "microsoft.bcl.asyncinterfaces/8.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Bcl.AsyncInterfaces.targets", - "buildTransitive/net462/_._", - "lib/net462/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/net462/Microsoft.Bcl.AsyncInterfaces.xml", - "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", - "microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512", - "microsoft.bcl.asyncinterfaces.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Bcl.Cryptography/9.0.4": { - "sha512": "YgZYAWzyNuPVtPq6WNm0bqOWNjYaWgl5mBWTGZyNoXitYBUYSp6iUB9AwK0V1mo793qRJUXz2t6UZrWITZSvuQ==", - "type": "package", - "path": "microsoft.bcl.cryptography/9.0.4", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Bcl.Cryptography.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Bcl.Cryptography.targets", - "lib/net462/Microsoft.Bcl.Cryptography.dll", - "lib/net462/Microsoft.Bcl.Cryptography.xml", - "lib/net8.0/Microsoft.Bcl.Cryptography.dll", - "lib/net8.0/Microsoft.Bcl.Cryptography.xml", - "lib/net9.0/Microsoft.Bcl.Cryptography.dll", - "lib/net9.0/Microsoft.Bcl.Cryptography.xml", - "lib/netstandard2.0/Microsoft.Bcl.Cryptography.dll", - "lib/netstandard2.0/Microsoft.Bcl.Cryptography.xml", - "microsoft.bcl.cryptography.9.0.4.nupkg.sha512", - "microsoft.bcl.cryptography.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Data.SqlClient/6.1.1": { - "sha512": "syGQmIUPAYYHAHyTD8FCkTNThpQWvoA7crnIQRMfp8dyB5A2cWU3fQexlRTFkVmV7S0TjVmthi0LJEFVjHo8AQ==", - "type": "package", - "path": "microsoft.data.sqlclient/6.1.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "dotnet.png", - "lib/net462/Microsoft.Data.SqlClient.dll", - "lib/net462/Microsoft.Data.SqlClient.xml", - "lib/net462/cs/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/de/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/es/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/fr/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/it/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/ja/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/ko/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/pl/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/pt-BR/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/ru/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/tr/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/zh-Hans/Microsoft.Data.SqlClient.resources.dll", - "lib/net462/zh-Hant/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/Microsoft.Data.SqlClient.dll", - "lib/net8.0/Microsoft.Data.SqlClient.xml", - "lib/net8.0/cs/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/de/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/es/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/fr/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/it/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/ja/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/ko/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/pl/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/pt-BR/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/ru/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/tr/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll", - "lib/net8.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/Microsoft.Data.SqlClient.dll", - "lib/net9.0/Microsoft.Data.SqlClient.xml", - "lib/net9.0/cs/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/de/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/es/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/fr/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/it/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/ja/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/ko/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/pl/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/pt-BR/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/ru/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/tr/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/zh-Hans/Microsoft.Data.SqlClient.resources.dll", - "lib/net9.0/zh-Hant/Microsoft.Data.SqlClient.resources.dll", - "lib/netstandard2.0/Microsoft.Data.SqlClient.dll", - "lib/netstandard2.0/Microsoft.Data.SqlClient.xml", - "microsoft.data.sqlclient.6.1.1.nupkg.sha512", - "microsoft.data.sqlclient.nuspec", - "ref/net462/Microsoft.Data.SqlClient.dll", - "ref/net462/Microsoft.Data.SqlClient.xml", - "ref/net8.0/Microsoft.Data.SqlClient.dll", - "ref/net8.0/Microsoft.Data.SqlClient.xml", - "ref/net9.0/Microsoft.Data.SqlClient.dll", - "ref/net9.0/Microsoft.Data.SqlClient.xml", - "ref/netstandard2.0/Microsoft.Data.SqlClient.dll", - "ref/netstandard2.0/Microsoft.Data.SqlClient.xml", - "runtimes/unix/lib/net8.0/Microsoft.Data.SqlClient.dll", - "runtimes/unix/lib/net9.0/Microsoft.Data.SqlClient.dll", - "runtimes/win/lib/net462/Microsoft.Data.SqlClient.dll", - "runtimes/win/lib/net8.0/Microsoft.Data.SqlClient.dll", - "runtimes/win/lib/net9.0/Microsoft.Data.SqlClient.dll" - ] - }, - "Microsoft.Data.SqlClient.SNI.runtime/6.0.2": { - "sha512": "f+pRODTWX7Y67jXO3T5S2dIPZ9qMJNySjlZT/TKmWVNWe19N8jcWmHaqHnnchaq3gxEKv1SWVY5EFzOD06l41w==", - "type": "package", - "path": "microsoft.data.sqlclient.sni.runtime/6.0.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "LICENSE.txt", - "dotnet.png", - "microsoft.data.sqlclient.sni.runtime.6.0.2.nupkg.sha512", - "microsoft.data.sqlclient.sni.runtime.nuspec", - "runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll", - "runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll", - "runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll" - ] - }, - "Microsoft.Extensions.Caching.Abstractions/9.0.4": { - "sha512": "imcZ5BGhBw5mNsWLepBbqqumWaFe0GtvyCvne2/2wsDIBRa2+Lhx4cU/pKt/4BwOizzUEOls2k1eOJQXHGMalg==", - "type": "package", - "path": "microsoft.extensions.caching.abstractions/9.0.4", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", - "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", - "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", - "microsoft.extensions.caching.abstractions.9.0.4.nupkg.sha512", - "microsoft.extensions.caching.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Caching.Memory/9.0.4": { - "sha512": "G5rEq1Qez5VJDTEyRsRUnewAspKjaY57VGsdZ8g8Ja6sXXzoiI3PpTd1t43HjHqNWD5A06MQveb2lscn+2CU+w==", - "type": "package", - "path": "microsoft.extensions.caching.memory/9.0.4", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", - "lib/net462/Microsoft.Extensions.Caching.Memory.dll", - "lib/net462/Microsoft.Extensions.Caching.Memory.xml", - "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", - "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", - "lib/net9.0/Microsoft.Extensions.Caching.Memory.dll", - "lib/net9.0/Microsoft.Extensions.Caching.Memory.xml", - "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", - "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", - "microsoft.extensions.caching.memory.9.0.4.nupkg.sha512", - "microsoft.extensions.caching.memory.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Configuration/9.0.8": { - "sha512": "6m+8Xgmf8UWL0p/oGqBM+0KbHE5/ePXbV1hKXgC59zEv0aa0DW5oiiyxDbK5kH5j4gIvyD5uWL0+HadKBJngvQ==", - "type": "package", - "path": "microsoft.extensions.configuration/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Configuration.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.targets", - "lib/net462/Microsoft.Extensions.Configuration.dll", - "lib/net462/Microsoft.Extensions.Configuration.xml", - "lib/net8.0/Microsoft.Extensions.Configuration.dll", - "lib/net8.0/Microsoft.Extensions.Configuration.xml", - "lib/net9.0/Microsoft.Extensions.Configuration.dll", - "lib/net9.0/Microsoft.Extensions.Configuration.xml", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.xml", - "microsoft.extensions.configuration.9.0.8.nupkg.sha512", - "microsoft.extensions.configuration.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Configuration.Abstractions/9.0.8": { - "sha512": "yNou2KM35RvzOh4vUFtl2l33rWPvOCoba+nzEDJ+BgD8aOL/jew4WPCibQvntRfOJ2pJU8ARygSMD+pdjvDHuA==", - "type": "package", - "path": "microsoft.extensions.configuration.abstractions/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", - "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", - "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", - "microsoft.extensions.configuration.abstractions.9.0.8.nupkg.sha512", - "microsoft.extensions.configuration.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Configuration.Binder/9.0.8": { - "sha512": "0vK9DnYrYChdiH3yRZWkkp4x4LbrfkWEdBc5HOsQ8t/0CLOWKXKkkhOE8A1shlex0hGydbGrhObeypxz/QTm+w==", - "type": "package", - "path": "microsoft.extensions.configuration.binder/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll", - "analyzers/dotnet/cs/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/de/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/es/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/fr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/it/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/ja/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/ko/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/pl/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/pt-BR/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/ru/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/tr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/zh-Hans/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "analyzers/dotnet/cs/zh-Hant/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll", - "buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets", - "lib/net462/Microsoft.Extensions.Configuration.Binder.dll", - "lib/net462/Microsoft.Extensions.Configuration.Binder.xml", - "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll", - "lib/net8.0/Microsoft.Extensions.Configuration.Binder.xml", - "lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll", - "lib/net9.0/Microsoft.Extensions.Configuration.Binder.xml", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.xml", - "microsoft.extensions.configuration.binder.9.0.8.nupkg.sha512", - "microsoft.extensions.configuration.binder.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Configuration.FileExtensions/9.0.8": { - "sha512": "2jgx58Jpk3oKT7KRn8x/cFf3QDTjQP+KUbyBnynAcB2iBx1Eq9EdNMCu0QEbYuaZOaQru/Kwdffary+hn58Wwg==", - "type": "package", - "path": "microsoft.extensions.configuration.fileextensions/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Configuration.FileExtensions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.FileExtensions.targets", - "lib/net462/Microsoft.Extensions.Configuration.FileExtensions.dll", - "lib/net462/Microsoft.Extensions.Configuration.FileExtensions.xml", - "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll", - "lib/net8.0/Microsoft.Extensions.Configuration.FileExtensions.xml", - "lib/net9.0/Microsoft.Extensions.Configuration.FileExtensions.dll", - "lib/net9.0/Microsoft.Extensions.Configuration.FileExtensions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.xml", - "microsoft.extensions.configuration.fileextensions.9.0.8.nupkg.sha512", - "microsoft.extensions.configuration.fileextensions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Configuration.Json/9.0.8": { - "sha512": "vjxzcnL7ul322+kpvELisXaZl8/5MYs6JfI9DZLQWsao1nA/4FL48yPwDK986hbJTWc64JxOOaMym0SQ/dy32w==", - "type": "package", - "path": "microsoft.extensions.configuration.json/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Configuration.Json.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Json.targets", - "lib/net462/Microsoft.Extensions.Configuration.Json.dll", - "lib/net462/Microsoft.Extensions.Configuration.Json.xml", - "lib/net8.0/Microsoft.Extensions.Configuration.Json.dll", - "lib/net8.0/Microsoft.Extensions.Configuration.Json.xml", - "lib/net9.0/Microsoft.Extensions.Configuration.Json.dll", - "lib/net9.0/Microsoft.Extensions.Configuration.Json.xml", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.dll", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Json.xml", - "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.dll", - "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.xml", - "microsoft.extensions.configuration.json.9.0.8.nupkg.sha512", - "microsoft.extensions.configuration.json.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4": { - "sha512": "UI0TQPVkS78bFdjkTodmkH0Fe8lXv9LnhGFKgKrsgUJ5a5FVdFRcgjIkBVLbGgdRhxWirxH/8IXUtEyYJx6GQg==", - "type": "package", - "path": "microsoft.extensions.dependencyinjection.abstractions/9.0.4", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", - "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "microsoft.extensions.dependencyinjection.abstractions.9.0.4.nupkg.sha512", - "microsoft.extensions.dependencyinjection.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.FileProviders.Abstractions/9.0.8": { - "sha512": "4zZbQ4w+hCMm9J+z5NOj3giIPT2MhZxx05HX/MGuAmDBbjOuXlYIIRN+t4V6OLxy5nXZIcXO+dQMB/OWubuDkw==", - "type": "package", - "path": "microsoft.extensions.fileproviders.abstractions/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.FileProviders.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Abstractions.targets", - "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.dll", - "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.FileProviders.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.FileProviders.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.xml", - "microsoft.extensions.fileproviders.abstractions.9.0.8.nupkg.sha512", - "microsoft.extensions.fileproviders.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.FileProviders.Physical/9.0.8": { - "sha512": "FlOe2i7UUIfY0l0ChaIYtlXjdWWutR4DMRKZaGD6z4G1uVTteFkbBfxUIoi1uGmrZQxXe/yv/cfwiT0tK2xyXA==", - "type": "package", - "path": "microsoft.extensions.fileproviders.physical/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.FileProviders.Physical.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Physical.targets", - "lib/net462/Microsoft.Extensions.FileProviders.Physical.dll", - "lib/net462/Microsoft.Extensions.FileProviders.Physical.xml", - "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.dll", - "lib/net8.0/Microsoft.Extensions.FileProviders.Physical.xml", - "lib/net9.0/Microsoft.Extensions.FileProviders.Physical.dll", - "lib/net9.0/Microsoft.Extensions.FileProviders.Physical.xml", - "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll", - "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.xml", - "microsoft.extensions.fileproviders.physical.9.0.8.nupkg.sha512", - "microsoft.extensions.fileproviders.physical.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.FileSystemGlobbing/9.0.8": { - "sha512": "96Ub5LmwYfIGVoXkbe4kjs+ivK6fLBTwKJAOMfUNV0R+AkZRItlgROFqXEWMUlXBTPM1/kKu26Ueu5As6RDzJA==", - "type": "package", - "path": "microsoft.extensions.filesystemglobbing/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.FileSystemGlobbing.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileSystemGlobbing.targets", - "lib/net462/Microsoft.Extensions.FileSystemGlobbing.dll", - "lib/net462/Microsoft.Extensions.FileSystemGlobbing.xml", - "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll", - "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.xml", - "lib/net9.0/Microsoft.Extensions.FileSystemGlobbing.dll", - "lib/net9.0/Microsoft.Extensions.FileSystemGlobbing.xml", - "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll", - "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.xml", - "microsoft.extensions.filesystemglobbing.9.0.8.nupkg.sha512", - "microsoft.extensions.filesystemglobbing.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Logging.Abstractions/9.0.4": { - "sha512": "0MXlimU4Dud6t+iNi5NEz3dO2w1HXdhoOLaYFuLPCjAsvlPQGwOT6V2KZRMLEhCAm/stSZt1AUv0XmDdkjvtbw==", - "type": "package", - "path": "microsoft.extensions.logging.abstractions/9.0.4", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", - "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", - "microsoft.extensions.logging.abstractions.9.0.4.nupkg.sha512", - "microsoft.extensions.logging.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Options/9.0.4": { - "sha512": "fiFI2+58kicqVZyt/6obqoFwHiab7LC4FkQ3mmiBJ28Yy4fAvy2+v9MRnSvvlOO8chTOjKsdafFl/K9veCPo5g==", - "type": "package", - "path": "microsoft.extensions.options/9.0.4", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", - "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "buildTransitive/net461/Microsoft.Extensions.Options.targets", - "buildTransitive/net462/Microsoft.Extensions.Options.targets", - "buildTransitive/net8.0/Microsoft.Extensions.Options.targets", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", - "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", - "lib/net462/Microsoft.Extensions.Options.dll", - "lib/net462/Microsoft.Extensions.Options.xml", - "lib/net8.0/Microsoft.Extensions.Options.dll", - "lib/net8.0/Microsoft.Extensions.Options.xml", - "lib/net9.0/Microsoft.Extensions.Options.dll", - "lib/net9.0/Microsoft.Extensions.Options.xml", - "lib/netstandard2.0/Microsoft.Extensions.Options.dll", - "lib/netstandard2.0/Microsoft.Extensions.Options.xml", - "lib/netstandard2.1/Microsoft.Extensions.Options.dll", - "lib/netstandard2.1/Microsoft.Extensions.Options.xml", - "microsoft.extensions.options.9.0.4.nupkg.sha512", - "microsoft.extensions.options.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Primitives/9.0.8": { - "sha512": "tizSIOEsIgSNSSh+hKeUVPK7xmTIjR8s+mJWOu1KXV3htvNQiPMFRMO17OdI1y/4ZApdBVk49u/08QGC9yvLug==", - "type": "package", - "path": "microsoft.extensions.primitives/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", - "lib/net462/Microsoft.Extensions.Primitives.dll", - "lib/net462/Microsoft.Extensions.Primitives.xml", - "lib/net8.0/Microsoft.Extensions.Primitives.dll", - "lib/net8.0/Microsoft.Extensions.Primitives.xml", - "lib/net9.0/Microsoft.Extensions.Primitives.dll", - "lib/net9.0/Microsoft.Extensions.Primitives.xml", - "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", - "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", - "microsoft.extensions.primitives.9.0.8.nupkg.sha512", - "microsoft.extensions.primitives.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Identity.Client/4.73.1": { - "sha512": "NnDLS8QwYqO5ZZecL2oioi1LUqjh5Ewk4bMLzbgiXJbQmZhDLtKwLxL3DpGMlQAJ2G4KgEnvGPKa+OOgffeJbw==", - "type": "package", - "path": "microsoft.identity.client/4.73.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/net462/Microsoft.Identity.Client.dll", - "lib/net462/Microsoft.Identity.Client.xml", - "lib/net472/Microsoft.Identity.Client.dll", - "lib/net472/Microsoft.Identity.Client.xml", - "lib/net8.0-android34.0/Microsoft.Identity.Client.aar", - "lib/net8.0-android34.0/Microsoft.Identity.Client.dll", - "lib/net8.0-android34.0/Microsoft.Identity.Client.xml", - "lib/net8.0-ios18.0/Microsoft.Identity.Client.dll", - "lib/net8.0-ios18.0/Microsoft.Identity.Client.xml", - "lib/net8.0/Microsoft.Identity.Client.dll", - "lib/net8.0/Microsoft.Identity.Client.xml", - "lib/netstandard2.0/Microsoft.Identity.Client.dll", - "lib/netstandard2.0/Microsoft.Identity.Client.xml", - "microsoft.identity.client.4.73.1.nupkg.sha512", - "microsoft.identity.client.nuspec" - ] - }, - "Microsoft.Identity.Client.Extensions.Msal/4.73.1": { - "sha512": "xDztAiV2F0wI0W8FLKv5cbaBefyLD6JVaAsvgSN7bjWNCzGYzHbcOEIP5s4TJXUpQzMfUyBsFl1mC6Zmgpz0PQ==", - "type": "package", - "path": "microsoft.identity.client.extensions.msal/4.73.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.dll", - "lib/net8.0/Microsoft.Identity.Client.Extensions.Msal.xml", - "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll", - "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.xml", - "microsoft.identity.client.extensions.msal.4.73.1.nupkg.sha512", - "microsoft.identity.client.extensions.msal.nuspec" - ] - }, - "Microsoft.IdentityModel.Abstractions/7.7.1": { - "sha512": "S7sHg6gLg7oFqNGLwN1qSbJDI+QcRRj8SuJ1jHyCmKSipnF6ZQL+tFV2NzVfGj/xmGT9TykQdQiBN+p5Idl4TA==", - "type": "package", - "path": "microsoft.identitymodel.abstractions/7.7.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net461/Microsoft.IdentityModel.Abstractions.dll", - "lib/net461/Microsoft.IdentityModel.Abstractions.xml", - "lib/net462/Microsoft.IdentityModel.Abstractions.dll", - "lib/net462/Microsoft.IdentityModel.Abstractions.xml", - "lib/net472/Microsoft.IdentityModel.Abstractions.dll", - "lib/net472/Microsoft.IdentityModel.Abstractions.xml", - "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll", - "lib/net6.0/Microsoft.IdentityModel.Abstractions.xml", - "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll", - "lib/net8.0/Microsoft.IdentityModel.Abstractions.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml", - "microsoft.identitymodel.abstractions.7.7.1.nupkg.sha512", - "microsoft.identitymodel.abstractions.nuspec" - ] - }, - "Microsoft.IdentityModel.JsonWebTokens/7.7.1": { - "sha512": "3Izi75UCUssvo8LPx3OVnEeZay58qaFicrtSnbtUt7q8qQi0gy46gh4V8VUTkMVMKXV6VMyjBVmeNNgeCUJuIw==", - "type": "package", - "path": "microsoft.identitymodel.jsonwebtokens/7.7.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net461/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/net461/Microsoft.IdentityModel.JsonWebTokens.xml", - "lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml", - "lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml", - "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml", - "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml", - "microsoft.identitymodel.jsonwebtokens.7.7.1.nupkg.sha512", - "microsoft.identitymodel.jsonwebtokens.nuspec" - ] - }, - "Microsoft.IdentityModel.Logging/7.7.1": { - "sha512": "BZNgSq/o8gsKExdYoBKPR65fdsxW0cTF8PsdqB8y011AGUJJW300S/ZIsEUD0+sOmGc003Gwv3FYbjrVjvsLNQ==", - "type": "package", - "path": "microsoft.identitymodel.logging/7.7.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net461/Microsoft.IdentityModel.Logging.dll", - "lib/net461/Microsoft.IdentityModel.Logging.xml", - "lib/net462/Microsoft.IdentityModel.Logging.dll", - "lib/net462/Microsoft.IdentityModel.Logging.xml", - "lib/net472/Microsoft.IdentityModel.Logging.dll", - "lib/net472/Microsoft.IdentityModel.Logging.xml", - "lib/net6.0/Microsoft.IdentityModel.Logging.dll", - "lib/net6.0/Microsoft.IdentityModel.Logging.xml", - "lib/net8.0/Microsoft.IdentityModel.Logging.dll", - "lib/net8.0/Microsoft.IdentityModel.Logging.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml", - "microsoft.identitymodel.logging.7.7.1.nupkg.sha512", - "microsoft.identitymodel.logging.nuspec" - ] - }, - "Microsoft.IdentityModel.Protocols/7.7.1": { - "sha512": "h+fHHBGokepmCX+QZXJk4Ij8OApCb2n2ktoDkNX5CXteXsOxTHMNgjPGpAwdJMFvAL7TtGarUnk3o97NmBq2QQ==", - "type": "package", - "path": "microsoft.identitymodel.protocols/7.7.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net461/Microsoft.IdentityModel.Protocols.dll", - "lib/net461/Microsoft.IdentityModel.Protocols.xml", - "lib/net462/Microsoft.IdentityModel.Protocols.dll", - "lib/net462/Microsoft.IdentityModel.Protocols.xml", - "lib/net472/Microsoft.IdentityModel.Protocols.dll", - "lib/net472/Microsoft.IdentityModel.Protocols.xml", - "lib/net6.0/Microsoft.IdentityModel.Protocols.dll", - "lib/net6.0/Microsoft.IdentityModel.Protocols.xml", - "lib/net8.0/Microsoft.IdentityModel.Protocols.dll", - "lib/net8.0/Microsoft.IdentityModel.Protocols.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.xml", - "microsoft.identitymodel.protocols.7.7.1.nupkg.sha512", - "microsoft.identitymodel.protocols.nuspec" - ] - }, - "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.7.1": { - "sha512": "yT2Hdj8LpPbcT9C9KlLVxXl09C8zjFaVSaApdOwuecMuoV4s6Sof/mnTDz/+F/lILPIBvrWugR9CC7iRVZgbfQ==", - "type": "package", - "path": "microsoft.identitymodel.protocols.openidconnect/7.7.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net461/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/net461/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "lib/net462/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/net462/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "lib/net472/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/net472/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "lib/net6.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/net6.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "microsoft.identitymodel.protocols.openidconnect.7.7.1.nupkg.sha512", - "microsoft.identitymodel.protocols.openidconnect.nuspec" - ] - }, - "Microsoft.IdentityModel.Tokens/7.7.1": { - "sha512": "fQ0VVCba75lknUHGldi3iTKAYUQqbzp1Un8+d9cm9nON0Gs8NAkXddNg8iaUB0qi/ybtAmNWizTR4avdkCJ9pQ==", - "type": "package", - "path": "microsoft.identitymodel.tokens/7.7.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net461/Microsoft.IdentityModel.Tokens.dll", - "lib/net461/Microsoft.IdentityModel.Tokens.xml", - "lib/net462/Microsoft.IdentityModel.Tokens.dll", - "lib/net462/Microsoft.IdentityModel.Tokens.xml", - "lib/net472/Microsoft.IdentityModel.Tokens.dll", - "lib/net472/Microsoft.IdentityModel.Tokens.xml", - "lib/net6.0/Microsoft.IdentityModel.Tokens.dll", - "lib/net6.0/Microsoft.IdentityModel.Tokens.xml", - "lib/net8.0/Microsoft.IdentityModel.Tokens.dll", - "lib/net8.0/Microsoft.IdentityModel.Tokens.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml", - "microsoft.identitymodel.tokens.7.7.1.nupkg.sha512", - "microsoft.identitymodel.tokens.nuspec" - ] - }, - "Microsoft.SqlServer.Server/1.0.0": { - "sha512": "N4KeF3cpcm1PUHym1RmakkzfkEv3GRMyofVv40uXsQhCQeglr2OHNcUk2WOG51AKpGO8ynGpo9M/kFXSzghwug==", - "type": "package", - "path": "microsoft.sqlserver.server/1.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "dotnet.png", - "lib/net46/Microsoft.SqlServer.Server.dll", - "lib/net46/Microsoft.SqlServer.Server.pdb", - "lib/net46/Microsoft.SqlServer.Server.xml", - "lib/netstandard2.0/Microsoft.SqlServer.Server.dll", - "lib/netstandard2.0/Microsoft.SqlServer.Server.pdb", - "lib/netstandard2.0/Microsoft.SqlServer.Server.xml", - "microsoft.sqlserver.server.1.0.0.nupkg.sha512", - "microsoft.sqlserver.server.nuspec" - ] - }, - "System.ClientModel/1.5.1": { - "sha512": "k2jKSO0X45IqhVOT9iQB4xralNN9foRQsRvXBTyRpAVxyzCJlG895T9qYrQWbcJ6OQXxOouJQ37x5nZH5XKK+A==", - "type": "package", - "path": "system.clientmodel/1.5.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "CHANGELOG.md", - "DotNetPackageIcon.png", - "README.md", - "analyzers/dotnet/cs/System.ClientModel.SourceGeneration.dll", - "lib/net8.0/System.ClientModel.dll", - "lib/net8.0/System.ClientModel.xml", - "lib/netstandard2.0/System.ClientModel.dll", - "lib/netstandard2.0/System.ClientModel.xml", - "system.clientmodel.1.5.1.nupkg.sha512", - "system.clientmodel.nuspec" - ] - }, - "System.Configuration.ConfigurationManager/9.0.8": { - "sha512": "BR70HYY5jeOa/jBrd/wyydpuqhFyla2ybQRL/UPBIiSvctVqi18iQoM44Gx41jy7t6wuAdKuTnie6io4j8aq3w==", - "type": "package", - "path": "system.configuration.configurationmanager/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Configuration.ConfigurationManager.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Configuration.ConfigurationManager.targets", - "lib/net462/System.Configuration.ConfigurationManager.dll", - "lib/net462/System.Configuration.ConfigurationManager.xml", - "lib/net8.0/System.Configuration.ConfigurationManager.dll", - "lib/net8.0/System.Configuration.ConfigurationManager.xml", - "lib/net9.0/System.Configuration.ConfigurationManager.dll", - "lib/net9.0/System.Configuration.ConfigurationManager.xml", - "lib/netstandard2.0/System.Configuration.ConfigurationManager.dll", - "lib/netstandard2.0/System.Configuration.ConfigurationManager.xml", - "system.configuration.configurationmanager.9.0.8.nupkg.sha512", - "system.configuration.configurationmanager.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Diagnostics.DiagnosticSource/6.0.1": { - "sha512": "KiLYDu2k2J82Q9BJpWiuQqCkFjRBWVq4jDzKKWawVi9KWzyD0XG3cmfX0vqTQlL14Wi9EufJrbL0+KCLTbqWiQ==", - "type": "package", - "path": "system.diagnostics.diagnosticsource/6.0.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets", - "buildTransitive/netcoreapp3.1/_._", - "lib/net461/System.Diagnostics.DiagnosticSource.dll", - "lib/net461/System.Diagnostics.DiagnosticSource.xml", - "lib/net5.0/System.Diagnostics.DiagnosticSource.dll", - "lib/net5.0/System.Diagnostics.DiagnosticSource.xml", - "lib/net6.0/System.Diagnostics.DiagnosticSource.dll", - "lib/net6.0/System.Diagnostics.DiagnosticSource.xml", - "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll", - "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml", - "system.diagnostics.diagnosticsource.6.0.1.nupkg.sha512", - "system.diagnostics.diagnosticsource.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Diagnostics.EventLog/9.0.8": { - "sha512": "gebRF3JLLJ76jz1CQpvwezNapZUjFq20JQsaGHzBH0DzlkHBLpdhwkOei9usiOkIGMwU/L0ALWpNe1JE+5/itw==", - "type": "package", - "path": "system.diagnostics.eventlog/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Diagnostics.EventLog.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Diagnostics.EventLog.targets", - "lib/net462/System.Diagnostics.EventLog.dll", - "lib/net462/System.Diagnostics.EventLog.xml", - "lib/net8.0/System.Diagnostics.EventLog.dll", - "lib/net8.0/System.Diagnostics.EventLog.xml", - "lib/net9.0/System.Diagnostics.EventLog.dll", - "lib/net9.0/System.Diagnostics.EventLog.xml", - "lib/netstandard2.0/System.Diagnostics.EventLog.dll", - "lib/netstandard2.0/System.Diagnostics.EventLog.xml", - "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll", - "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll", - "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.xml", - "runtimes/win/lib/net9.0/System.Diagnostics.EventLog.Messages.dll", - "runtimes/win/lib/net9.0/System.Diagnostics.EventLog.dll", - "runtimes/win/lib/net9.0/System.Diagnostics.EventLog.xml", - "system.diagnostics.eventlog.9.0.8.nupkg.sha512", - "system.diagnostics.eventlog.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.IdentityModel.Tokens.Jwt/7.7.1": { - "sha512": "rQkO1YbAjLwnDJSMpRhRtrc6XwIcEOcUvoEcge+evurpzSZM3UNK+MZfD3sKyTlYsvknZ6eJjSBfnmXqwOsT9Q==", - "type": "package", - "path": "system.identitymodel.tokens.jwt/7.7.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net461/System.IdentityModel.Tokens.Jwt.dll", - "lib/net461/System.IdentityModel.Tokens.Jwt.xml", - "lib/net462/System.IdentityModel.Tokens.Jwt.dll", - "lib/net462/System.IdentityModel.Tokens.Jwt.xml", - "lib/net472/System.IdentityModel.Tokens.Jwt.dll", - "lib/net472/System.IdentityModel.Tokens.Jwt.xml", - "lib/net6.0/System.IdentityModel.Tokens.Jwt.dll", - "lib/net6.0/System.IdentityModel.Tokens.Jwt.xml", - "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll", - "lib/net8.0/System.IdentityModel.Tokens.Jwt.xml", - "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll", - "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml", - "system.identitymodel.tokens.jwt.7.7.1.nupkg.sha512", - "system.identitymodel.tokens.jwt.nuspec" - ] - }, - "System.Memory/4.5.5": { - "sha512": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", - "type": "package", - "path": "system.memory/4.5.5", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "lib/net461/System.Memory.dll", - "lib/net461/System.Memory.xml", - "lib/netcoreapp2.1/_._", - "lib/netstandard1.1/System.Memory.dll", - "lib/netstandard1.1/System.Memory.xml", - "lib/netstandard2.0/System.Memory.dll", - "lib/netstandard2.0/System.Memory.xml", - "ref/netcoreapp2.1/_._", - "system.memory.4.5.5.nupkg.sha512", - "system.memory.nuspec", - "useSharedDesignerContext.txt", - "version.txt" - ] - }, - "System.Memory.Data/8.0.1": { - "sha512": "BVYuec3jV23EMRDeR7Dr1/qhx7369dZzJ9IWy2xylvb4YfXsrUxspWc4UWYid/tj4zZK58uGZqn2WQiaDMhmAg==", - "type": "package", - "path": "system.memory.data/8.0.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Memory.Data.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/System.Memory.Data.targets", - "lib/net462/System.Memory.Data.dll", - "lib/net462/System.Memory.Data.xml", - "lib/net6.0/System.Memory.Data.dll", - "lib/net6.0/System.Memory.Data.xml", - "lib/net7.0/System.Memory.Data.dll", - "lib/net7.0/System.Memory.Data.xml", - "lib/net8.0/System.Memory.Data.dll", - "lib/net8.0/System.Memory.Data.xml", - "lib/netstandard2.0/System.Memory.Data.dll", - "lib/netstandard2.0/System.Memory.Data.xml", - "system.memory.data.8.0.1.nupkg.sha512", - "system.memory.data.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Runtime.CompilerServices.Unsafe/6.0.0": { - "sha512": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", - "type": "package", - "path": "system.runtime.compilerservices.unsafe/6.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets", - "buildTransitive/netcoreapp3.1/_._", - "lib/net461/System.Runtime.CompilerServices.Unsafe.dll", - "lib/net461/System.Runtime.CompilerServices.Unsafe.xml", - "lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll", - "lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml", - "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll", - "lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.xml", - "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll", - "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml", - "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", - "system.runtime.compilerservices.unsafe.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Security.Cryptography.Pkcs/9.0.4": { - "sha512": "cUFTcMlz/Qw9s90b2wnWSCvHdjv51Bau9FQqhsr4TlwSe1OX+7SoXUqphis5G74MLOvMOCghxPPlEqOdCrVVGA==", - "type": "package", - "path": "system.security.cryptography.pkcs/9.0.4", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Security.Cryptography.Pkcs.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Security.Cryptography.Pkcs.targets", - "lib/net462/System.Security.Cryptography.Pkcs.dll", - "lib/net462/System.Security.Cryptography.Pkcs.xml", - "lib/net8.0/System.Security.Cryptography.Pkcs.dll", - "lib/net8.0/System.Security.Cryptography.Pkcs.xml", - "lib/net9.0/System.Security.Cryptography.Pkcs.dll", - "lib/net9.0/System.Security.Cryptography.Pkcs.xml", - "lib/netstandard2.0/System.Security.Cryptography.Pkcs.dll", - "lib/netstandard2.0/System.Security.Cryptography.Pkcs.xml", - "lib/netstandard2.1/System.Security.Cryptography.Pkcs.dll", - "lib/netstandard2.1/System.Security.Cryptography.Pkcs.xml", - "runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll", - "runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.xml", - "runtimes/win/lib/net9.0/System.Security.Cryptography.Pkcs.dll", - "runtimes/win/lib/net9.0/System.Security.Cryptography.Pkcs.xml", - "system.security.cryptography.pkcs.9.0.4.nupkg.sha512", - "system.security.cryptography.pkcs.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Security.Cryptography.ProtectedData/9.0.8": { - "sha512": "w7+KCnqmtDboV8dxTLxlUltasP7AgzNFdTLq1D/ey50ykgXW+CJBIQkzYZjgPzmjKB+/PGGUKYrH7TSbwrDtRw==", - "type": "package", - "path": "system.security.cryptography.protecteddata/9.0.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Security.Cryptography.ProtectedData.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Security.Cryptography.ProtectedData.targets", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net462/System.Security.Cryptography.ProtectedData.dll", - "lib/net462/System.Security.Cryptography.ProtectedData.xml", - "lib/net8.0/System.Security.Cryptography.ProtectedData.dll", - "lib/net8.0/System.Security.Cryptography.ProtectedData.xml", - "lib/net9.0/System.Security.Cryptography.ProtectedData.dll", - "lib/net9.0/System.Security.Cryptography.ProtectedData.xml", - "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll", - "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.xml", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "system.security.cryptography.protecteddata.9.0.8.nupkg.sha512", - "system.security.cryptography.protecteddata.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Text.Json/9.0.5": { - "sha512": "rnP61ZfloTgPQPe7ecr36loNiGX3g1PocxlKHdY/FUpDSsExKkTxpMAlB4X35wNEPr1X7mkYZuQvW3Lhxmu7KA==", - "type": "package", - "path": "system.text.json/9.0.5", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll", - "analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll", - "analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll", - "analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", - "buildTransitive/net461/System.Text.Json.targets", - "buildTransitive/net462/System.Text.Json.targets", - "buildTransitive/net8.0/System.Text.Json.targets", - "buildTransitive/netcoreapp2.0/System.Text.Json.targets", - "buildTransitive/netstandard2.0/System.Text.Json.targets", - "lib/net462/System.Text.Json.dll", - "lib/net462/System.Text.Json.xml", - "lib/net8.0/System.Text.Json.dll", - "lib/net8.0/System.Text.Json.xml", - "lib/net9.0/System.Text.Json.dll", - "lib/net9.0/System.Text.Json.xml", - "lib/netstandard2.0/System.Text.Json.dll", - "lib/netstandard2.0/System.Text.Json.xml", - "system.text.json.9.0.5.nupkg.sha512", - "system.text.json.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Wcwidth/1.0.0": { - "sha512": "aekut5BeF4c1Jr2qab3aXcttcgPEfPb2ok2L8911EIzn3RnDBYnUWgx/1OVlqrSXCdwAkBpNgYWXb6b5t4cBng==", - "type": "package", - "path": "wcwidth/1.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net6.0/Wcwidth.dll", - "lib/net6.0/Wcwidth.xml", - "lib/netstandard2.0/Wcwidth.dll", - "lib/netstandard2.0/Wcwidth.xml", - "wcwidth.1.0.0.nupkg.sha512", - "wcwidth.nuspec" - ] - } - }, - "projectFileDependencyGroups": { - "net9.0": [ - "ConsoleTables >= 2.7.0", - "Microsoft.Data.SqlClient >= 6.1.1", - "Microsoft.Extensions.Configuration >= 9.0.8", - "Microsoft.Extensions.Configuration.Binder >= 9.0.8", - "Microsoft.Extensions.Configuration.Json >= 9.0.8", - "System.Configuration.ConfigurationManager >= 9.0.8" - ] - }, - "packageFolders": { - "C:\\Users\\hp\\.nuget\\packages\\": {}, - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj", - "projectName": "FlashCardLearning", - "projectPath": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj", - "packagesPath": "C:\\Users\\hp\\.nuget\\packages\\", - "outputPath": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\obj\\", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configFilePaths": [ - "C:\\Users\\hp\\AppData\\Roaming\\NuGet\\NuGet.Config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" - ], - "originalTargetFrameworks": [ - "net9.0" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net9.0": { - "targetAlias": "net9.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - }, - "SdkAnalysisLevel": "9.0.200" - }, - "frameworks": { - "net9.0": { - "targetAlias": "net9.0", - "dependencies": { - "ConsoleTables": { - "target": "Package", - "version": "[2.7.0, )" - }, - "Microsoft.Data.SqlClient": { - "target": "Package", - "version": "[6.1.1, )" - }, - "Microsoft.Extensions.Configuration": { - "target": "Package", - "version": "[9.0.8, )" - }, - "Microsoft.Extensions.Configuration.Binder": { - "target": "Package", - "version": "[9.0.8, )" - }, - "Microsoft.Extensions.Configuration.Json": { - "target": "Package", - "version": "[9.0.8, )" - }, - "System.Configuration.ConfigurationManager": { - "target": "Package", - "version": "[9.0.8, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.200/PortableRuntimeIdentifierGraph.json" - } - } - } -} \ No newline at end of file diff --git a/FlashCards.Review/FlashCard.App/obj/project.nuget.cache b/FlashCards.Review/FlashCard.App/obj/project.nuget.cache deleted file mode 100644 index d167dcd4..00000000 --- a/FlashCards.Review/FlashCard.App/obj/project.nuget.cache +++ /dev/null @@ -1,51 +0,0 @@ -{ - "version": 2, - "dgSpecHash": "iai0FHys0aE=", - "success": true, - "projectFilePath": "D:\\projects\\CONSOLE APPS\\FlashCards\\CodeReviews.Console.Flashcards\\FlashCardLearning.csproj", - "expectedPackageFiles": [ - "C:\\Users\\hp\\.nuget\\packages\\azure.core\\1.47.1\\azure.core.1.47.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\azure.identity\\1.14.2\\azure.identity.1.14.2.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\consoletables\\2.7.0\\consoletables.2.7.0.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\8.0.0\\microsoft.bcl.asyncinterfaces.8.0.0.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.bcl.cryptography\\9.0.4\\microsoft.bcl.cryptography.9.0.4.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.data.sqlclient\\6.1.1\\microsoft.data.sqlclient.6.1.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.data.sqlclient.sni.runtime\\6.0.2\\microsoft.data.sqlclient.sni.runtime.6.0.2.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\9.0.4\\microsoft.extensions.caching.abstractions.9.0.4.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.caching.memory\\9.0.4\\microsoft.extensions.caching.memory.9.0.4.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.configuration\\9.0.8\\microsoft.extensions.configuration.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\9.0.8\\microsoft.extensions.configuration.abstractions.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.configuration.binder\\9.0.8\\microsoft.extensions.configuration.binder.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\9.0.8\\microsoft.extensions.configuration.fileextensions.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.configuration.json\\9.0.8\\microsoft.extensions.configuration.json.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\9.0.4\\microsoft.extensions.dependencyinjection.abstractions.9.0.4.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\9.0.8\\microsoft.extensions.fileproviders.abstractions.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\9.0.8\\microsoft.extensions.fileproviders.physical.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\9.0.8\\microsoft.extensions.filesystemglobbing.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\9.0.4\\microsoft.extensions.logging.abstractions.9.0.4.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.options\\9.0.4\\microsoft.extensions.options.9.0.4.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.extensions.primitives\\9.0.8\\microsoft.extensions.primitives.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.identity.client\\4.73.1\\microsoft.identity.client.4.73.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.identity.client.extensions.msal\\4.73.1\\microsoft.identity.client.extensions.msal.4.73.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.abstractions\\7.7.1\\microsoft.identitymodel.abstractions.7.7.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\7.7.1\\microsoft.identitymodel.jsonwebtokens.7.7.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.logging\\7.7.1\\microsoft.identitymodel.logging.7.7.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.protocols\\7.7.1\\microsoft.identitymodel.protocols.7.7.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.protocols.openidconnect\\7.7.1\\microsoft.identitymodel.protocols.openidconnect.7.7.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.identitymodel.tokens\\7.7.1\\microsoft.identitymodel.tokens.7.7.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\microsoft.sqlserver.server\\1.0.0\\microsoft.sqlserver.server.1.0.0.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\system.clientmodel\\1.5.1\\system.clientmodel.1.5.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\system.configuration.configurationmanager\\9.0.8\\system.configuration.configurationmanager.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\system.diagnostics.diagnosticsource\\6.0.1\\system.diagnostics.diagnosticsource.6.0.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\system.diagnostics.eventlog\\9.0.8\\system.diagnostics.eventlog.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\system.identitymodel.tokens.jwt\\7.7.1\\system.identitymodel.tokens.jwt.7.7.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\system.memory\\4.5.5\\system.memory.4.5.5.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\system.memory.data\\8.0.1\\system.memory.data.8.0.1.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\system.security.cryptography.pkcs\\9.0.4\\system.security.cryptography.pkcs.9.0.4.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\system.security.cryptography.protecteddata\\9.0.8\\system.security.cryptography.protecteddata.9.0.8.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\system.text.json\\9.0.5\\system.text.json.9.0.5.nupkg.sha512", - "C:\\Users\\hp\\.nuget\\packages\\wcwidth\\1.0.0\\wcwidth.1.0.0.nupkg.sha512" - ], - "logs": [] -} \ No newline at end of file From 7ef0b5dbc7093b63280ca003f073f602cf7f2ad4 Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Tue, 30 Sep 2025 07:24:56 +0530 Subject: [PATCH 11/13] Removed Unnessary files --- .gitignore | 3 +- .../DataBaseScripts/FlashCardTables.sql | Bin 14418 -> 0 bytes .../FlashCard.App/DataBaseScripts/Tables.sql | 39 ------------------ .../DataBaseScripts/sesion log.txt | 5 --- 4 files changed, 2 insertions(+), 45 deletions(-) delete mode 100644 FlashCards.Review/FlashCard.App/DataBaseScripts/FlashCardTables.sql delete mode 100644 FlashCards.Review/FlashCard.App/DataBaseScripts/Tables.sql delete mode 100644 FlashCards.Review/FlashCard.App/DataBaseScripts/sesion log.txt diff --git a/.gitignore b/.gitignore index 440c5f52..d62c1639 100644 --- a/.gitignore +++ b/.gitignore @@ -484,4 +484,5 @@ $RECYCLE.BIN/ #temp files -FlashCards.Review/FlashCard.App/obj/ \ No newline at end of file +FlashCards.Review/FlashCard.App/obj/ +FlashCards.Review/FlashCard.App/DataBaseScripts/ \ No newline at end of file diff --git a/FlashCards.Review/FlashCard.App/DataBaseScripts/FlashCardTables.sql b/FlashCards.Review/FlashCard.App/DataBaseScripts/FlashCardTables.sql deleted file mode 100644 index 343f574fd961b11640ade385126206967d00157a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14418 zcmeI3Yfl?T6o%((EA>BE>W4U0N-)?4BJ~3`c8Wqw5=`4PiYyvPlQa;Db7}v4+xMB{ z@m{>^-L*+1z_Ql6J3DiB=3L%6XXfmG{~o#n*L5}b%=O%!+t%GrZsvy8D z;@|pK&qnT*-g)FM^lYRjwBdIk8W--hI~S#z-h8C>L%(~v zYU;n?+A4|n?5^)E;~nV9w#IXyQ4MuI)HwHaN8kI2v4z@?RcBxAx}Gb$`tPddK<#@v zy5i7u+m1@%9@FmO*@UE{r@t zxb93S{pCK0e#1!VAC)Yiq*)dFfqqA+rwM3FZ1Z(d6D=t#2u zQ_{#9ZT^VRkCU-p9IN&5_}cmt?ilZ>>QS0a>yc!&>mGVtf2vv!Bqz=tNeml7hDdWq zW$6C2bg-R{e|FpbB3c7kQcd+9i6)kW{h&3!s`LjP`_i1AWQLZb8|V^OyP|U7wQ}FT zv7?#~MdeV>(4A!4U0ER`qHoydp=u5%y-(KN_FBHL-VIgX&U-p{R3F{9+I`=rcwI(t z-_y^ly|1^@^M^Wq^EG?EPeak|I&3Fc3v{#khu&g)Xi-uYhBZacF9VDAye3^pi?Opm z)YEtRf37~=Bs9w7!nDROjz=#wCm8w|=Lq06aS{at`l^P|g1 zJs9a{XgNQ+fa1r(-V2XTf!e9pvk!hwvso|B(QKT8(z*1~W`e9%am-Iz(h}9K5~|@b zFk2X|1_Yjkk(Ysi2a}oj=J{dCv40M{izCsQupsy(*`8CQgb%j#f0q7FJQfS_N;*C; z|C6Urgec`Akl>L)p92rJDuue{EA!~_bf3BD2*k>hv4oYyttCz)U+3`>f0nn3&))Su zZC$Y-)cWq$c%FT)DCyQznU$>ha-v^6@w#snqRS9%HWV8TM1vT!sTlK~kCj&RzoFxn z-bL#uS{-Qo*!gY!t}Ykb6OJ_$YctNk)%d+3RuwK9|5~1lZLJ8j^jp2QT#WMvjf`u3 zO?ont-mt=f=0_Y(mJsI?m(JGFrgU^w8p%4yn*VQ!yBpHi>#L*2-SvrP5?P#$*C#$N zcUgT}5gIhFz3xtUbYq__(`7{KJZP*?2@A}yKHfCxHy|Oo8r^U1J zb>_VB0nTI5^KySn++UT2f_ zJod1|5qS%d_fTclic4bC`&n2+Tk64Gh!x48ycCG?ZuX2| zGH6Y_XJoLEIwIUEbA@eLz1dg1$?D}@rTa0Tg`yRB3tQ3+{>xja?S&Ra@7LL1F!@BQ z07xXQ1Cf-Ia-3IM#I0t@O=)7WZ)e^GHovrFVt-~rJiOU*npZmO-j)n!dBf88V|}ws z%mbQirlbSz1{*6Ukqu?Ou(rcGk9i*WgUn;L5>ad~=KDZnX)(xTD;JK6Mh!fJEVuNhSL5SLLa zJSW30KCjrlJy|Pd8`LFduOW$8z8)pW1>{=uXjEhywt7LkrEMUSXf?+q5j-(sOGB=P zv_4$5$8svNoTkUHEpIvOB(TngM^@f{Hh(eX65e$GnU(CM?J!4EV)D!1(^>ZzX0r*i zd`m5=`Nk&e9w zd;A z^!Id6-YuC`b#V{93f~^owHgIZSw{S9Jc}cAx&EcCI?7pJq=)%Cz}0)0mc%0c%Fq0& z-ml&y_dNaOQS|jjN8fOC{r3@ZiStDUnQ#Ny%C^snL+*S*^+4Y?WYOh2i13Ar<<*)t zbk&;t#gLiJtT>v~4Bx`otil%_Jsq6;>XYTSCBLRhza^SwjYh~2E~i^rBjIa^I9C?u mMRm#L>wGQtv68s-CtwEgt diff --git a/FlashCards.Review/FlashCard.App/DataBaseScripts/Tables.sql b/FlashCards.Review/FlashCard.App/DataBaseScripts/Tables.sql deleted file mode 100644 index 9ce0a79d..00000000 --- a/FlashCards.Review/FlashCard.App/DataBaseScripts/Tables.sql +++ /dev/null @@ -1,39 +0,0 @@ - - --- Switch to the database -USE FLASH_CARD_LEARNING_DB; -GO - --- ======================== --- Table: Stacks --- ======================== -CREATE TABLE Stacks ( - id INT IDENTITY(1,1) PRIMARY KEY, - stack_name NVARCHAR(100) NOT NULL, - created_date DATETIME NOT NULL DEFAULT GETDATE() -); - --- ======================== --- Table: FlashCards --- ======================== -CREATE TABLE FlashCards ( - id INT IDENTITY(1,1) PRIMARY KEY, - question NVARCHAR(300) NOT NULL, - answer NVARCHAR(300) NOT NULL, - stack_id INT NOT NULL, - created_date DATETIME NOT NULL DEFAULT GETDATE(), - CONSTRAINT FK_FlashCards_Stacks FOREIGN KEY (stack_id) REFERENCES Stacks(id) -); - --- ======================== --- Table: LearningLog --- ======================== -CREATE TABLE LearningLog ( - id INT IDENTITY(1,1) PRIMARY KEY, - flash_cards_reviewed NVARCHAR(max) NOT NULL, - stack_id INT NOT NULL, - session_date DATETIME NOT NULL DEFAULT GETDATE(), - duration_minutes INT NOT NULL, -- store as minutes (e.g., 150 = 2.5 hours) - CONSTRAINT FK_LearningLog_Stacks FOREIGN KEY (stack_id) REFERENCES Stacks(id) -); - diff --git a/FlashCards.Review/FlashCard.App/DataBaseScripts/sesion log.txt b/FlashCards.Review/FlashCard.App/DataBaseScripts/sesion log.txt deleted file mode 100644 index 3f1b5ab0..00000000 --- a/FlashCards.Review/FlashCard.App/DataBaseScripts/sesion log.txt +++ /dev/null @@ -1,5 +0,0 @@ -select ROW_NUMBER() OVER (ORDER BY session_date ASC) AS RowNum, -stack_name,session_date,points from LearningLog l -INNER JOIN Stacks s ON s.id = l.stack_id -where ( (@Year IS NULL OR YEAR(l.session_date) = @Year) AND (@Month IS NULL OR MONTH(l.session_date) = @Month) - AND ( @Day IS NULL OR DAY(l.session_date) = @Day) AND (@Date IS NULL OR CAST(l.session_date AS DATE) = @Date) ) From a0f807317286d3a60e6dfced4398e8d4b35903f3 Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Tue, 30 Sep 2025 07:27:15 +0530 Subject: [PATCH 12/13] Removed Unnessary files --- FlashCards.Review/FlashCard.App/app.config | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 FlashCards.Review/FlashCard.App/app.config diff --git a/FlashCards.Review/FlashCard.App/app.config b/FlashCards.Review/FlashCard.App/app.config deleted file mode 100644 index 8b2cd113..00000000 --- a/FlashCards.Review/FlashCard.App/app.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From d78fa6679ebfc032bf4ed0b8cbbbab60d449eaa5 Mon Sep 17 00:00:00 2001 From: FreddyPositive Date: Tue, 30 Sep 2025 07:30:33 +0530 Subject: [PATCH 13/13] added sample config file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d62c1639..99e01f14 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ # Env files. .env +FlashCards.Review/FlashCard.App/app.config # User-specific files (MonoDevelop/Xamarin Studio)