Example #1
0
        public IActionResult AdminPanel(AdminPanelPages pageID, int?itemID, string path, IFormFile uploadedFile)
        {
            AccessLevelConfiguration accessLevelConfiguration = HttpContext.RequestServices.GetService <AccessLevelConfiguration>();

            HttpContext.Items["AccessLevelConfiguration"] = accessLevelConfiguration;
            User user = SecurityFunctions.CheckCookies(db, HttpContext);

            if (!SecurityFunctions.HasAccessTo(pageID, user, HttpContext))
            {
                return(RedirectToAction(nameof(AdminPanel)));
            }

            HttpContext.Items["User"]            = user;
            HttpContext.Items["LogLocalization"] = localization;

            switch (pageID)
            {
            case AdminPanelPages.AddProductImage:
                ImagesManagementFunctions.UploadProductImageToServer(db, uploadedFile, itemID, HttpContext, out bool successfullyUploadedImage);
                if (successfullyUploadedImage)
                {
                    return(StatusCode(200));
                }
                else
                {
                    return(StatusCode(415));
                }

            case AdminPanelPages.UploadFile:
                FileManagerManagementFunctions.UploadFileToServer(db, path, uploadedFile, HttpContext, out bool successfullyUploadedFile);
                if (successfullyUploadedFile)
                {
                    return(StatusCode(200));
                }
                else
                {
                    return(StatusCode(415));
                }

            default:
                return(RedirectToAction(nameof(AdminPanel)));
            }
        }
        public IActionResult AdminPanel(AdminPanelPages pageID, int?itemID, int?imageID, string path)
        {
            AccessLevelConfiguration accessLevelConfiguration = HttpContext.RequestServices.GetService <AccessLevelConfiguration>();

            HttpContext.Items["AccessLevelConfiguration"] = accessLevelConfiguration;
            User user = SecurityFunctions.CheckCookies(db, HttpContext);

            if (pageID == AdminPanelPages.Exit)
            {
                DatabaseInteraction.Exit(db, user, HttpContext, out int exitStatusCode);
                return(StatusCode(exitStatusCode));
            }
            if (!SecurityFunctions.HasAccessTo(pageID, user, HttpContext))
            {
                return(RedirectToAction(nameof(AdminPanel)));
            }

            HttpContext.Items["User"]            = user;
            HttpContext.Items["LogLocalization"] = localization;

            switch (pageID)
            {
            case AdminPanelPages.DeletePage:
                DatabaseInteraction.DeletePage(db, PageType.Usual, itemID, HttpContext, out bool pageDeleted);
                if (pageDeleted)
                {
                    return(StatusCode(200));
                }
                else
                {
                    return(StatusCode(404));
                }

            case AdminPanelPages.DeleteCategory:
                DatabaseInteraction.DeletePage(db, PageType.Category, itemID, HttpContext, out bool categoryDeleted);
                if (categoryDeleted)
                {
                    return(StatusCode(200));
                }
                else
                {
                    return(StatusCode(404));
                }

            case AdminPanelPages.DeleteProduct:
                DatabaseInteraction.DeleteProduct(db, itemID, HttpContext, out bool productDeleted);
                if (productDeleted)
                {
                    return(StatusCode(200));
                }
                else
                {
                    return(StatusCode(404));
                }

            case AdminPanelPages.DeleteProductImage:
                ImagesManagementFunctions.DeleteProductImage(db, itemID, imageID, HttpContext, out bool productImageDeleted);
                if (productImageDeleted)
                {
                    return(StatusCode(200));
                }
                else
                {
                    return(StatusCode(404));
                }

            case AdminPanelPages.DeleteRedirection:
                DatabaseInteraction.DeleteRedirection(db, itemID, HttpContext, out bool redirectionDeleted);
                if (redirectionDeleted)
                {
                    return(StatusCode(200));
                }
                else
                {
                    return(StatusCode(404));
                }

            case AdminPanelPages.DeleteTemplate:
                DatabaseInteraction.DeleteTemplate(db, itemID, HttpContext, out bool templateDeleted);
                if (templateDeleted)
                {
                    return(StatusCode(200));
                }
                else
                {
                    return(StatusCode(404));
                }

            case AdminPanelPages.DeleteChunk:
                DatabaseInteraction.DeleteChunk(db, itemID, HttpContext, out bool chunkDeleted);
                if (chunkDeleted)
                {
                    return(StatusCode(200));
                }
                else
                {
                    return(StatusCode(404));
                }

            case AdminPanelPages.DeleteFileOrFolder:
                FileManagerManagementFunctions.DeleteFileOrFolder(db, path, HttpContext, out string redirectPath);
                if (redirectPath == null)
                {
                    return(StatusCode(404));
                }
                else
                {
                    string redirectUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}{HttpContext.Request.Path}?pageID={(int)AdminPanelPages.FileManager}&path={redirectPath}";
                    HttpContext.Response.Headers.Add("location", redirectUrl);
                    return(StatusCode(200));
                }

            case AdminPanelPages.DeleteUser:
                DatabaseInteraction.DeleteUser(db, itemID, HttpContext, out int userDeletionStatusCode);
                return(StatusCode(userDeletionStatusCode));

            case AdminPanelPages.DeleteUserType:
                DatabaseInteraction.DeleteUserType(db, itemID, HttpContext, out bool userTypeDeleted);
                if (userTypeDeleted)
                {
                    return(StatusCode(200));
                }
                else
                {
                    return(StatusCode(404));
                }

            case AdminPanelPages.DeleteSynonymForString:
                DatabaseInteraction.DeleteSynonymForString(db, itemID, HttpContext, out bool synonymForStringDeleted);
                if (synonymForStringDeleted)
                {
                    return(StatusCode(200));
                }
                else
                {
                    return(StatusCode(404));
                }

            default:
                return(RedirectToAction(nameof(AdminPanel)));
            }
        }
        #pragma warning disable 1998
        public async override global::System.Threading.Tasks.Task ExecuteAsync()
        {
#line 2 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"

            User            user     = Context.Items["User"] as User;
            AdminPanelPages pageID   = (AdminPanelPages)Context.Items["pageID"];
            string          pageName = Context.Items["PageName"] as string;

            Dictionary <AdminPanelPages, string> pages = new Dictionary <AdminPanelPages, string>();
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.MainPage, user, Context))
            {
                pages.Add(AdminPanelPages.MainPage, localization.MainPage);
            }
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.Pages, user, Context))
            {
                pages.Add(AdminPanelPages.Pages, localization.Pages);
            }
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.Categories, user, Context))
            {
                pages.Add(AdminPanelPages.Categories, localization.CategoriesAndProducts);
            }
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.Redirections, user, Context))
            {
                pages.Add(AdminPanelPages.Redirections, localization.Redirections);
            }
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.Templates, user, Context))
            {
                pages.Add(AdminPanelPages.Templates, localization.Templates);
            }
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.Chunks, user, Context))
            {
                pages.Add(AdminPanelPages.Chunks, localization.Chunks);
            }
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.FileManager, user, Context))
            {
                pages.Add(AdminPanelPages.FileManager, localization.FileManager);
            }
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.Users, user, Context))
            {
                pages.Add(AdminPanelPages.Users, localization.Users);
            }
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.UserTypes, user, Context))
            {
                pages.Add(AdminPanelPages.UserTypes, localization.UserTypes);
            }
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.SynonymsForStrings, user, Context))
            {
                pages.Add(AdminPanelPages.SynonymsForStrings, localization.SynonymsForStrings);
            }
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.UserProfile, user, Context))
            {
                pages.Add(AdminPanelPages.UserProfile, localization.UserProfile);
            }
            if (SecurityFunctions.HasAccessTo(AdminPanelPages.Settings, user, Context))
            {
                pages.Add(AdminPanelPages.Settings, localization.Settings);
            }

#line default
#line hidden
            BeginContext(2358, 25, true);
            WriteLiteral("<!doctype html>\r\n<html>\r\n");
            EndContext();
            BeginContext(2383, 540, false);
            __tagHelperExecutionContext = __tagHelperScopeManager.Begin("head", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "858d12a1d7ade2ddbefe7ddba788e5c2d1333e656533", async() => {
                BeginContext(2389, 13, true);
                WriteLiteral("\r\n    <title>");
                EndContext();
                BeginContext(2403, 60, false);
#line 60 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                Write(Html.Raw(pageName == null ? string.Empty : $"{pageName} - "));

#line default
#line hidden
                EndContext();
                BeginContext(2464, 28, false);
#line 60 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                Write(Html.Raw(localization.Title));

#line default
#line hidden
                EndContext();
                BeginContext(2492, 215, true);
                WriteLiteral("</title>\r\n    <meta charset=\"utf-8\" />\r\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"/styles/admin_panel/common.css\" />\r\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"/styles/admin_panel/admin_panel.css\" />\r\n");
                EndContext();
#line 64 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                if (Context.Items["PageStyle"] != null)
                {
#line default
#line hidden
                    BeginContext(2760, 42, true);
                    WriteLiteral("    <link rel=\"stylesheet\" type=\"text/css\"");
                    EndContext();
                    BeginWriteAttribute("href", " href=\"", 2802, "\"", 2846, 1);
#line 66 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                    WriteAttributeValue("", 2809, Html.Raw(Context.Items["PageStyle"]), 2809, 37, false);

#line default
#line hidden
                    EndWriteAttribute();
                    BeginContext(2847, 5, true);
                    WriteLiteral(" />\r\n");
                    EndContext();
#line 67 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                }

#line default
#line hidden
                BeginContext(2859, 57, true);
                WriteLiteral("    <meta name=\"viewport\" content=\"width=device-width\">\r\n");
                EndContext();
            }
                                                                        );
            __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_HeadTagHelper = CreateTagHelper <global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.HeadTagHelper>();
            __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_HeadTagHelper);
            await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);

            if (!__tagHelperExecutionContext.Output.IsContentModified)
            {
                await __tagHelperExecutionContext.SetOutputContentAsync();
            }
            Write(__tagHelperExecutionContext.Output);
            __tagHelperExecutionContext = __tagHelperScopeManager.End();
            EndContext();
            BeginContext(2923, 2, true);
            WriteLiteral("\r\n");
            EndContext();
            BeginContext(2925, 1353, false);
            __tagHelperExecutionContext = __tagHelperScopeManager.Begin("body", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "858d12a1d7ade2ddbefe7ddba788e5c2d1333e659768", async() => {
                BeginContext(2931, 71, true);
                WriteLiteral("\r\n    <div class=\"common-container\">\r\n        <ul class=\"menu-block\">\r\n");
                EndContext();
#line 73 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                foreach (var p in pages)
                {
                    if (pageID == p.Key)
                    {
#line default
#line hidden
                        BeginContext(3113, 37, true);
                        WriteLiteral("            <li class=\"with-padding\">");
                        EndContext();
                        BeginContext(3151, 17, false);
#line 77 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                        Write(Html.Raw(p.Value));

#line default
#line hidden
                        EndContext();
                        BeginContext(3168, 7, true);
                        WriteLiteral("</li>\r\n");
                        EndContext();
#line 78 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                    }
                    else
                    {
#line default
#line hidden
                        BeginContext(3235, 18, true);
                        WriteLiteral("            <li><a");
                        EndContext();
                        BeginWriteAttribute("href", " href=\"", 3253, "\"", 3302, 3);
#line 81 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                        WriteAttributeValue("", 3260, Context.Request.Path, 3260, 21, false);

#line default
#line hidden
                        WriteAttributeValue("", 3281, "?pageID=", 3281, 8, true);
#line 81 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                        WriteAttributeValue("", 3289, (int)p.Key, 3289, 13, false);

#line default
#line hidden
                        EndWriteAttribute();
                        BeginContext(3303, 22, true);
                        WriteLiteral(" class=\"with-padding\">");
                        EndContext();
                        BeginContext(3326, 17, false);
#line 81 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                        Write(Html.Raw(p.Value));

#line default
#line hidden
                        EndContext();
                        BeginContext(3343, 11, true);
                        WriteLiteral("</a></li>\r\n");
                        EndContext();
#line 82 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                    }
                }

#line default
#line hidden
                BeginContext(3388, 106, true);
                WriteLiteral("            <li>\r\n                <form id=\"exit\">\r\n                    <input type=\"hidden\" name=\"pageID\"");
                EndContext();
                BeginWriteAttribute("value", " value=\"", 3494, "\"", 3530, 1);
#line 86 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                WriteAttributeValue("", 3502, (int)AdminPanelPages.Exit, 3502, 28, false);

#line default
#line hidden
                EndWriteAttribute();
                BeginContext(3531, 60, true);
                WriteLiteral(">\r\n                    <input type=\"submit\" id=\"exit-button\"");
                EndContext();
                BeginWriteAttribute("value", " value=\"", 3591, "\"", 3627, 1);
#line 87 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                WriteAttributeValue("", 3599, Html.Raw(localization.Exit), 3599, 28, false);

#line default
#line hidden
                EndWriteAttribute();
                BeginContext(3628, 596, true);
                WriteLiteral(@">
                </form>
                <script src=""/scripts/admin_panel/send_data.js""></script>
                <script>
                    function responseFromExitRequest(request) {
                        if (request.status == 200) {
                            location.reload();
                        }
                    }
                    document.getElementById('exit-button').addEventListener('click', createSendDataEventHandler('DELETE', 'exit', responseFromExitRequest));
                </script>
            </li>
        </ul>
        <content>
            ");
                EndContext();
                BeginContext(4225, 12, false);
#line 101 "C:\Users\79622\Desktop\Github\StoreCMS\StoreCMS\Views\AdminPanel\CommonPage.cshtml"
                Write(RenderBody());

#line default
#line hidden
                EndContext();
                BeginContext(4237, 34, true);
                WriteLiteral("\r\n        </content>\r\n    </div>\r\n");
                EndContext();
            }
                                                                        );
            __Microsoft_AspNetCore_Mvc_Razor_TagHelpers_BodyTagHelper = CreateTagHelper <global::Microsoft.AspNetCore.Mvc.Razor.TagHelpers.BodyTagHelper>();
            __tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_Razor_TagHelpers_BodyTagHelper);
            await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);

            if (!__tagHelperExecutionContext.Output.IsContentModified)
            {
                await __tagHelperExecutionContext.SetOutputContentAsync();
            }
            Write(__tagHelperExecutionContext.Output);
            __tagHelperExecutionContext = __tagHelperScopeManager.End();
            EndContext();
            BeginContext(4278, 9, true);
            WriteLiteral("\r\n</html>");
            EndContext();
        }