ganahrhr 4 роки тому
батько
коміт
a1ae5bf876

+ 4 - 4
Areas/Identity/Pages/Shared/_LoginPartial.cshtml

@@ -7,21 +7,21 @@
 @if (SignInManager.IsSignedIn(User))
 {
     <li class="nav-item">
-        <a  class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Manage/Index" title="Manage">Hello @User.Identity.Name!</a>
+        <a  class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Manage/Index" title="Manage">@User.Identity.Name</a>
     </li>
     <li class="nav-item">
         <form class="form-inline" asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="/" method="post">
-            <button  type="submit" class="nav-link btn btn-link text-dark">Logout</button>
+            <button  type="submit" class="nav-link btn btn-link text-dark">Выход</button>
         </form>
     </li>
 }
 else
 {
     <li class="nav-item">
-        <a class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Register">Register</a>
+        <a class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Register">Регистрация</a>
     </li>
     <li class="nav-item">
-        <a class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Login">Login</a>
+        <a class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Login">Вход</a>
     </li>
 }
 </ul>

+ 1 - 1
HyperCube.sln

@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 16
 VisualStudioVersion = 16.0.31105.61
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HyperCube", "HyperCube.csproj", "{BE200626-4A43-4CE8-BCE5-20B7251C581D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HyperCube", "HyperCube.csproj", "{BE200626-4A43-4CE8-BCE5-20B7251C581D}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution

+ 40 - 0
MySQLConnector.cs

@@ -1,4 +1,6 @@
 using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
 using MySql.Data.MySqlClient;
 
 namespace HyperCube
@@ -56,6 +58,44 @@ namespace HyperCube
             return lastID;
         }
 
+        public async Task<Dictionary<int, Models.ArticleModel>> SQLSelectArticles(string sql)
+        {
+            Dictionary<int, Models.ArticleModel> articleModels = new();
+            Models.ArticleModel articleModel;
+
+            bool connected = IsConnect();
+            if (connected)
+            {
+                SQLcom = new(sql, Connection);
+
+                MySqlDataReader rdr = SQLcom.ExecuteReader();
+
+                while (rdr.Read())
+                {
+                    Console.WriteLine("{0} {1} {2} {3} {4}", rdr.GetInt32(0), rdr.GetString(1),
+                            rdr.GetString(2), rdr.GetDateTime(3), rdr.GetString(4));
+
+                    articleModel = new();
+                    articleModel.Filename = rdr.GetString(1);
+                    articleModel.Name = rdr.GetString(2);
+                    articleModel.PublishDate = rdr.GetDateTime(3);
+                    articleModel.Authors = rdr.GetString(4);
+
+                    articleModels.Add(rdr.GetInt32(0), articleModel);
+                }
+
+                await Task.WhenAll();
+
+                Console.WriteLine("End reading DB");
+                
+                return articleModels;
+            }
+            else
+                Console.WriteLine("Not connected to DB.");
+
+            return null;
+        }
+
         public uint SQLGetID(string sql)
         {
             bool connected = IsConnect();

+ 3 - 1
Pages/DocsUpload.razor

@@ -1,5 +1,7 @@
 @page "/docsupload"
 @using System.IO;
+@attribute [Authorize]
+@*@attribute [Authorize(Roles = "admin")]*@
 
 <EditForm Model="@articleModel" OnValidSubmit="@HandleValidSubmit">
     <DataAnnotationsValidator />
@@ -65,7 +67,7 @@
         status = "Article data saved";
 
         bool confirmed = await JsRuntime.InvokeAsync<bool>("confirm", "Хотите загрузить еще статью?");
-        if(confirmed)
+        if (confirmed)
             NavigationManager.NavigateTo("docsupload", true);
         else
             NavigationManager.NavigateTo("");

+ 51 - 0
Pages/Verifying.razor

@@ -0,0 +1,51 @@
+@page "/verifying"
+@using Microsoft.AspNetCore.Components.Web;
+@attribute [Authorize]
+
+<h1>Верификация</h1>
+
+<table class="table">
+    <thead>
+        <tr>
+            <th>Файл</th>
+            <th>Название</th>
+            <th>Дата издания</th>
+            <th>Авторы</th>
+            <th>Проверка</th>
+        </tr>
+    </thead>
+    <tbody>
+        @foreach (var articleModel in articleModels)
+        {
+            <tr>
+                <td>@articleModel.Value.Filename</td>
+                <td>@articleModel.Value.Name</td>
+                <td>@articleModel.Value.PublishDate</td>
+                <td>@articleModel.Value.Authors</td>
+                <td><button @onclick="(() => VerifyArticle(articleModel.Key))">Верифицировать</button></td>
+            </tr>
+        }
+    </tbody>
+</table>
+
+
+@code {
+    private Dictionary<int, Models.ArticleModel> articleModels;
+
+    protected override async Task OnInitializedAsync()
+    {
+        MySQLConnector dbCon = MySQLConnector.Instance();
+
+        string stringSQL = $"SELECT id, filename, article_name, date_publish, authors FROM articles";
+        articleModels = await dbCon.SQLSelectArticles(stringSQL);
+
+        dbCon.Close();
+
+        //status = results;
+    }
+
+    private void VerifyArticle(int id)
+    {
+        Console.WriteLine($"Verifyed arcticle ID: {id}!");
+    }
+}

+ 4 - 4
Shared/LoginDisplay.razor

@@ -1,12 +1,12 @@
 <AuthorizeView>
     <Authorized>
-        <a href="Identity/Account/Manage">Hello, @context.User.Identity.Name!</a>
+        <a href="Identity/Account/Manage">@context.User.Identity.Name</a>
         <form method="post" action="Identity/Account/LogOut">
-            <button type="submit" class="nav-link btn btn-link">Log out</button>
+            <button type="submit" class="nav-link btn btn-link">Выход</button>
         </form>
     </Authorized>
     <NotAuthorized>
-        <a href="Identity/Account/Register">Register</a>
-        <a href="Identity/Account/Login">Log in</a>
+        <a href="Identity/Account/Register">Регистрация</a>
+        <a href="Identity/Account/Login">Вход</a>
     </NotAuthorized>
 </AuthorizeView>

+ 6 - 1
Shared/NavMenu.razor

@@ -18,10 +18,15 @@
             </NavLink>
         </li>
         <li class="nav-item px-3">
+            <NavLink class="nav-link" href="verifying">
+                <span class="oi oi-list-rich" aria-hidden="true"></span> Верификация
+            </NavLink>
+        </li>
+        @*<li class="nav-item px-3">
             <NavLink class="nav-link" href="fetchdata">
                 <span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
             </NavLink>
-        </li>
+        </li>*@
     </ul>
 </div>