This commit is contained in:
mmrbnjd
2024-04-02 17:14:18 +03:30
parent faa78adae6
commit dd4969f504
11 changed files with 315 additions and 402 deletions

View File

@@ -24,6 +24,7 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Common\DTOs\" />
<Folder Include="Features\" />
<Folder Include="Validations\" />
</ItemGroup>

View File

@@ -5,7 +5,8 @@ using System.Data;
using System.Globalization;
using System.Reflection;
using System.Security.Cryptography;
using Back.Common.ViewModels;
using Shared.DTOs;
namespace Back.Common
{

View File

@@ -20,8 +20,9 @@ namespace Back.Controllers
[HttpGet("DateTimeServer")]
public async Task<ActionResult<DateTime>> DateTimeServer()
=> Ok(DateTime.Now);
[HttpGet("LastBlog/{Count}")]
public async Task<ActionResult<List<BlogDto>>> LastBlog(int Count)
=> Ok(await _sBase.GetBlog(Count));
[HttpGet("LastBlog")]
public async Task<ActionResult<PagingDto<BlogDto>>> LastBlog(int PageIndex,int PageSize)
=> Ok(await _sBase.GetBlog(PageIndex,PageSize));
}
}

View File

@@ -24,7 +24,7 @@ builder.Services.AddCors(options =>
options.AddPolicy(origins,
policy =>
{
policy.WithOrigins("https://localhost:7224")
policy.WithOrigins("https://localhost:7224", "http://localhost:5107")
.AllowAnyHeader()
.AllowAnyMethod();
});

View File

@@ -1,4 +1,5 @@
using Back.Data.Contracts;
using Back.Common;
using Back.Data.Contracts;
using Back.Data.Models;
using Microsoft.EntityFrameworkCore;
using Shared.DTOs;
@@ -25,17 +26,18 @@ namespace Back.Services
PermissionID=x.PermissionID,
}).ToListAsync();
}
public async Task<List<BlogDto>> GetBlog(int count)
public async Task<PagingDto<BlogDto>> GetBlog(int PageIndex, int PageSize)
{
return await _repoBlog.Get(w=>w.Status).OrderByDescending(o=>o.ID).Take(count)
return await _repoBlog.Get(w=>w.Status).OrderByDescending(o=>o.ID)
.Select(s=>new BlogDto
{
Title = s.Title,
Date=s.Date,
ID=s.ID,
Photo=string.IsNullOrEmpty(s.Photo) ? "blog-grid-1.jpg" : s.Photo
})
.ToListAsync();
}).Paging(PageIndex, PageSize); ;
}
}
}

View File

@@ -1,4 +1,4 @@
namespace Back.Common.ViewModels
namespace Shared.DTOs
{
public class PagingDto<T>
{

View File

@@ -13,7 +13,7 @@
<div class="row">
@foreach (var item in items)
{
<ItemBlog Item="item" />
<ItemBloginHome Item="item" />
}
</div>
@@ -29,7 +29,8 @@
List<BlogDto> items = new List<BlogDto>();
protected override async Task OnInitializedAsync()
{
items = await _hc.GetFromJsonAsync<List<BlogDto>>("Base/LastBlog/3");
var request = await _hc.GetFromJsonAsync<PagingDto<BlogDto>>("Base/LastBlog?PageIndex=1&PageSize=3");
items = request.list;
await base.OnInitializedAsync();
}
}

View File

@@ -1,9 +1,9 @@
@using Shared.DTOs
@inject NavigationManager Navigation
<div class="col-xl-4 col-lg-6 col-md-6 mb-30">
<div class="tp-blog-item">
<div class="tp-blog-thumb fix">
<a href="blog-details.html"><img src="img/blog/@Item.Photo" alt=""></a>
<a href="@Navigation.ToAbsoluteUri($"/BlogDetails/{@Item.ID}")"><img src="img/blog/@Item.Photo" alt=""></a>
</div>
<div class="tp-blog-content">
<div class="tp-blog-meta d-flex align-items-center">
@@ -33,4 +33,5 @@
@code {
[Parameter]
public BlogDto? Item { get; set; }
}

View File

@@ -0,0 +1,193 @@
@using Shared.DTOs
@inject HttpClient _hc
@layout BlogLayout
@page "/BlogDetails/{ItemID:int}"
<PageTitle>دانشنامه</PageTitle>
<main>
<!-- breadcrumb-area-start -->
<div class="breadcrumb__area breadcrumb-ptb-4 p-relative blue-bg-2">
<div class="breadcrumb__shape-1">
<img src="img/breadcrumb/breadcrumb-shape-1.png" alt="">
</div>
<div class="breadcrumb__shape-2">
<img src="img/breadcrumb/breadcrumb-shape-2.png" alt="">
</div>
<div class="container">
<div class="row align-items-end">
<div class="col-xl-9 col-lg-9 col-md-9">
<div class="blog-details-banner z-index-2">
<div class="blog-details-title-box">
<span>منابع</span>
<h3 class="blog-details-banner-title">توسعه برنامه های محور کاربر حریم خصوصی</h3>
</div>
<div class="tp-blog-author-info-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/blog/blog-avata-2.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>مهدی ربیع نژاد</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
<div class="col-xl-3 col-lg-3 col-md-3">
<div class="blog-details-social-box z-index-3 text-md-end text-start">
<a href="#"><i class="fab fa-facebook-f"></i></a>
<a href="#"><i class="fab fa-twitter"></i></a>
<a href="#"><i class="fab fa-linkedin-in"></i></a>
<a href="#"><i class="fab fa-vimeo-v"></i></a>
</div>
</div>
</div>
</div>
</div>
<!-- breadcrumb-area-end -->
<!-- breadcrumb-banner-start -->
<div class="blog-details-img-area mb-80">
<div class="container">
<div class="row">
<div class="col-xl-12">
<div class="blog-details-big-img z-index-2">
<img src="img/blog/blog-details-1.jpg" alt="">
</div>
</div>
</div>
</div>
</div>
<!-- breadcrumb-banner-end -->
<!-- postbox area start -->
<div class="postbox__area pt-100 pb-100">
<div class="container">
<div class="row">
<div class="col-xxl-8 col-xl-8 col-lg-8">
<div class="postbox__details-wrapper pr-20">
<article>
<div class="postbox__details-title-box pb-30">
<h4 class="postbox__details-title">تاریخ طراحی وب</h4>
<p>
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان
گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و
برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی
می باشد، کتابهای
</p>
<p>
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان
گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که
</p>
</div>
<div class="postbox__details-qoute mb-30">
<blockquote class="d-flex align-items-start">
<div class="postbox__details-qoute-icon">
<svg width="37" height="27" viewBox="0 0 37 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M35.046 0.402002C32.4553 2.01 30.222 3.97534 28.346 6.298C26.5593 8.53133 25.3533 10.8093 24.728 13.132C25.3533 12.596 26.0233 12.194 26.738 11.926C27.542 11.5687 28.3013 11.39 29.016 11.39C31.16 11.39 32.9467 12.1493 34.376 13.668C35.8053 15.0973 36.52 16.884 36.52 19.028C36.52 21.172 35.7607 22.9587 34.242 24.388C32.8127 25.8173 31.026 26.532 28.882 26.532C26.6487 26.532 24.8173 25.7727 23.388 24.254C21.9587 22.7353 21.244 20.77 21.244 18.358C21.244 15.142 22.1373 11.7027 23.924 8.04C25.8 4.288 27.8993 1.608 30.222 0H35.046V0.402002ZM13.802 0.402002C11.2113 2.01 8.978 3.97534 7.102 6.298C5.31533 8.53133 4.10933 10.8093 3.484 13.132C4.10933 12.596 4.77933 12.194 5.494 11.926C6.298 11.5687 7.05733 11.39 7.772 11.39C9.916 11.39 11.7027 12.1493 13.132 13.668C14.5613 15.0973 15.276 16.884 15.276 19.028C15.276 21.172 14.5167 22.9587 12.998 24.388C11.5687 25.8173 9.782 26.532 7.638 26.532C5.40467 26.532 3.57333 25.7727 2.144 24.254C0.714667 22.7353 0 20.77 0 18.358C0 15.142 0.893333 11.7027 2.68 8.04C4.556 4.288 6.65533 1.608 8.978 0H13.802V0.402002Z" fill="#CDCECF"></path>
</svg>
</div>
<div class="postbox__details-qoute-text">
<p>“تیم در سافت تک فوق العاده اختصاصی ، دانش و مفید است.</p>
<span>سقراط</span>
</div>
</blockquote>
</div>
</article>
</div>
</div>
<div class="col-xxl-4 col-xl-4 col-lg-4">
<div class="sidebar__wrapper">
<div class="sidebar__widget mb-40">
<div class="sidebar__widge-title-box">
<h3 class="sidebar__widget-title">پست های اخیر</h3>
</div>
<div class="sidebar__widget-content">
<div class="sidebar__post rc__post">
<div class="rc__post mb-20 d-flex">
<div class="rc__post-thumb fix mr-20">
<a href="blog-details.html"><img src="img/blog/blog-list-avata-1.jpg" alt=""></a>
</div>
<div class="rc__post-content">
<h3 class="rc__post-title">
<a href="blog-details.html">
آیا ارتباط تیمی کندتر چیز بدی است؟
</a>
</h3><a href="blog-details.html">
<div class="rc__meta">
<span>4 بهمن. 1402</span>
</div>
</a>
</div><a href="blog-details.html">
</a>
</div><a href="blog-details.html">
</a><div class="rc__post mb-20 d-flex">
<a href="blog-details.html">
</a><div class="rc__post-thumb fix mr-20">
<a href="blog-details.html">
</a><a href="blog-details.html"><img src="img/blog/blog-list-avata-1.jpg" alt=""></a>
</div>
<div class="rc__post-content">
<h3 class="rc__post-title">
<a href="blog-details.html">
آیا ارتباط تیمی کندتر چیز بدی است؟
</a>
</h3><a href="blog-details.html">
<div class="rc__meta">
<span>4 بهمن. 1402</span>
</div>
</a>
</div><a href="blog-details.html">
</a>
</div><a href="blog-details.html">
</a><div class="rc__post d-flex">
<a href="blog-details.html">
</a><div class="rc__post-thumb fix mr-20">
<a href="blog-details.html">
</a><a href="blog-details.html"><img src="img/blog/blog-list-avata-1.jpg" alt=""></a>
</div>
<div class="rc__post-content">
<h3 class="rc__post-title">
<a href="blog-details.html">
آیا ارتباط تیمی کندتر چیز بدی است؟
</a>
</h3><a href="blog-details.html">
<div class="rc__meta">
<span>4 بهمن. 1402</span>
</div>
</a>
</div><a href="blog-details.html">
</a>
</div><a href="blog-details.html">
</a>
</div><a href="blog-details.html">
</a>
</div><a href="blog-details.html">
</a>
</div><a href="blog-details.html">
</a>
</div>
</div>
</div>
</div>
</div>
<!-- postbox area end -->
</main>
@code {
[Parameter]
public int? ItemID { get; set; }
}

View File

@@ -1,400 +1,111 @@
@layout BlogLayout
@using Shared.DTOs
@inject HttpClient _hc
@layout BlogLayout
@page "/ListBlog"
@inject NavigationManager Navigation
<PageTitle>دانشنامه</PageTitle>
<main>
<!-- breadcrumb-area-start -->
<div class="breadcrumb__area breadcrumb-height p-relative blue-bg-2">
<div class="breadcrumb__shape-1">
<img src="img/breadcrumb/breadcrumb-shape-1.png" alt="">
</div>
<div class="breadcrumb__shape-2">
<img src="img/breadcrumb/breadcrumb-shape-2.png" alt="">
</div>
<div class="container">
<div class="row">
<div class="col-xl-9 col-lg-7">
<div class="breadcrumb__content">
<h3 class="breadcrumb__title ">دانشـــــنامه</h3>
<div class="breadcrumb__list wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".4s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.4s; animation-name: tpfadeUp;">
<span class="child-one"><a href="#">خانه</a></span>
<span class="dvdr"><i class="fal fa-angle-left"></i></span>
<span>وبلاگ</span>
</div>
<!-- breadcrumb-area-start -->
<div class="breadcrumb__area breadcrumb-height p-relative blue-bg-2">
<div class="breadcrumb__shape-1">
<img src="img/breadcrumb/breadcrumb-shape-1.png" alt="">
</div>
<div class="breadcrumb__shape-2">
<img src="img/breadcrumb/breadcrumb-shape-2.png" alt="">
</div>
<div class="container">
<div class="row">
<div class="col-xl-9 col-lg-7">
<div class="breadcrumb__content">
<h3 class="breadcrumb__title ">دانشـــــنامه</h3>
<div class="breadcrumb__list wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".4s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.4s; animation-name: tpfadeUp;">
<span class="child-one"><a href="#">خانه</a></span>
<span class="dvdr"><i class="fal fa-angle-left"></i></span>
<span>وبلاگ</span>
</div>
</div>
<div class="col-xl-3 col-lg-5 col-lg-4 text-center text-md-end">
<div class="breadcrumb__img p-relative text-start z-index">
<img class="z-index-3" src="img/breadcrumb/breadcrumb-3.png" alt="">
<div class="breadcrumb__sub-img wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".4s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.4s; animation-name: tpfadeUp;">
<img src="img/breadcrumb/breadcrumb-sub-1.png" alt="">
</div>
</div>
</div>
<div class="col-xl-3 col-lg-5 col-lg-4 text-center text-md-end">
<div class="breadcrumb__img p-relative text-start z-index">
<img class="z-index-3" src="img/breadcrumb/breadcrumb-3.png" alt="">
<div class="breadcrumb__sub-img wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".4s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.4s; animation-name: tpfadeUp;">
<img src="img/breadcrumb/breadcrumb-sub-1.png" alt="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- breadcrumb-area-end -->
<!-- blog-grid-area-start -->
<div class="blog-grid-area pt-100 pb-100">
<div class="container">
<div class="row">
<div class="col-12">
<div class="blog-grid-arrow p-relative">
<div class="grid-next d-none d-sm-block" tabindex="0" role="button" aria-label="Next slide" aria-controls="swiper-wrapper-69e8d11b78c4bcea">
<button>
<i class="far fa-angle-left"></i>
<svg width="36" height="100" viewBox="0 0 36 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.99999 14C0 7.5 0.5 3.5 0 0L-0.000484467 99.5C-0.000415802 96.7234 1.00003 88 23 71.5C44.9999 55 32.5 37.1667 24 30.5C19.8333 27.1667 9.48375 19.8289 4.99999 14Z" fill="white"></path>
</svg>
</button>
</div>
<div class="grid-prev d-none d-sm-block" tabindex="0" role="button" aria-label="Previous slide" aria-controls="swiper-wrapper-69e8d11b78c4bcea">
<button>
<i class="far fa-angle-right"></i>
<svg width="36" height="100" viewBox="0 0 36 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30.3164 14C35.3164 7.5 34.8164 3.5 35.3164 0L35.3169 99.5C35.3168 96.7234 34.3164 88 12.3164 71.5C-9.68354 55 2.81642 37.1667 11.3164 30.5C15.4831 27.1667 25.8327 19.8289 30.3164 14Z" fill="white"></path>
</svg>
</button>
</div>
<div class="swiper-container blog-grid-slider-active swiper-container-fade swiper-container-initialized swiper-container-horizontal swiper-container-pointer-events swiper-container-rtl">
<div class="swiper-wrapper" id="swiper-wrapper-69e8d11b78c4bcea" aria-live="polite" style="transition-duration: 0ms;"><div class="swiper-slide swiper-slide-duplicate swiper-slide-active" data-swiper-slide-index="2" role="group" aria-label="1 / 5" style="width: 1140px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;">
<div class="blog-grid-slider blog-grid-slider-bg d-flex align-items-center blog-grid-slider-height" data-background="img/blog/inner-blog-3.png" style="background-image: url(&quot;img/blog/inner-blog-3.png&quot;);">
<div class="blog-grid-slider-wrapper">
<div class="blog-grid-slider-meta">
<span class="child-one">منابع</span>
<span class="child-two">آذر 20, 1402</span>
</div>
<div class="blog-grid-slider-title-box">
<h4 class="blog-grid-slider-title"><a href="blog-details.html">5 شرکتی که
بازاریابی برند <br> را درست انجام می دهند</a></h4>
<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده
از طراحان گرافیک است، چاپگرها و
</p>
</div>
<div class="tp-blog-author-info-box blog-grid-avata-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/blog/blog-avata-3.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>محمد محمدی</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-slide swiper-slide-next swiper-slide-duplicate-prev" data-swiper-slide-index="0" role="group" aria-label="2 / 5" style="width: 1140px; opacity: 0; transform: translate3d(1140px, 0px, 0px); transition-duration: 0ms;">
<div class="blog-grid-slider blog-grid-slider-bg d-flex align-items-center blog-grid-slider-height" data-background="img/blog/inner-blog-1.png" style="background-image: url(&quot;img/blog/inner-blog-1.png&quot;);">
<div class="blog-grid-slider-wrapper">
<div class="blog-grid-slider-meta">
<span class="child-one">منابع</span>
<span class="child-two">آذر 20, 1402</span>
</div>
<div class="blog-grid-slider-title-box">
<h4 class="blog-grid-slider-title"><a href="blog-details.html">5 شرکتی که
بازاریابی برند <br> را درست انجام می دهند</a></h4>
<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده
از طراحان گرافیک است، چاپگرها و
</p>
</div>
<div class="tp-blog-author-info-box blog-grid-avata-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/blog/blog-avata-3.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>محمد محمدی</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-slide" data-swiper-slide-index="1" role="group" aria-label="3 / 5" style="width: 1140px; opacity: 0; transform: translate3d(2280px, 0px, 0px); transition-duration: 0ms;">
<div class="blog-grid-slider blog-grid-slider-bg d-flex align-items-center blog-grid-slider-height" data-background="img/blog/inner-blog-2.png" style="background-image: url(&quot;img/blog/inner-blog-2.png&quot;);">
<div class="blog-grid-slider-wrapper">
<div class="blog-grid-slider-meta">
<span class="child-one">منابع</span>
<span class="child-two">آذر 20, 1402</span>
</div>
<div class="blog-grid-slider-title-box">
<h4 class="blog-grid-slider-title"><a href="blog-details.html">5 شرکتی که
بازاریابی برند <br> را درست انجام می دهند</a></h4>
<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده
از طراحان گرافیک است، چاپگرها و
</p>
</div>
<div class="tp-blog-author-info-box blog-grid-avata-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/blog/blog-avata-3.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>محمد محمدی</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-slide swiper-slide-duplicate-active" data-swiper-slide-index="2" role="group" aria-label="4 / 5" style="width: 1140px; opacity: 0; transform: translate3d(3420px, 0px, 0px); transition-duration: 0ms;">
<div class="blog-grid-slider blog-grid-slider-bg d-flex align-items-center blog-grid-slider-height" data-background="img/blog/inner-blog-3.png" style="background-image: url(&quot;img/blog/inner-blog-3.png&quot;);">
<div class="blog-grid-slider-wrapper">
<div class="blog-grid-slider-meta">
<span class="child-one">منابع</span>
<span class="child-two">آذر 20, 1402</span>
</div>
<div class="blog-grid-slider-title-box">
<h4 class="blog-grid-slider-title"><a href="blog-details.html">5 شرکتی که
بازاریابی برند <br> را درست انجام می دهند</a></h4>
<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده
از طراحان گرافیک است، چاپگرها و
</p>
</div>
<div class="tp-blog-author-info-box blog-grid-avata-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/blog/blog-avata-3.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>محمد محمدی</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div>
<div class="swiper-slide swiper-slide-duplicate swiper-slide-prev swiper-slide-duplicate-next" data-swiper-slide-index="0" role="group" aria-label="5 / 5" style="width: 1140px; opacity: 0; transform: translate3d(4560px, 0px, 0px); transition-duration: 0ms;">
<div class="blog-grid-slider blog-grid-slider-bg d-flex align-items-center blog-grid-slider-height" data-background="img/blog/inner-blog-1.png" style="background-image: url(&quot;img/blog/inner-blog-1.png&quot;);">
<div class="blog-grid-slider-wrapper">
<div class="blog-grid-slider-meta">
<span class="child-one">منابع</span>
<span class="child-two">آذر 20, 1402</span>
</div>
<div class="blog-grid-slider-title-box">
<h4 class="blog-grid-slider-title"><a href="blog-details.html">5 شرکتی که
بازاریابی برند <br> را درست انجام می دهند</a></h4>
<p>لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده
از طراحان گرافیک است، چاپگرها و
</p>
</div>
<div class="tp-blog-author-info-box blog-grid-avata-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/blog/blog-avata-3.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>محمد محمدی</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div></div>
<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span></div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- breadcrumb-area-end -->
<!-- blog-grid-area-start -->
<div class="blog-grid-area pt-100 pb-100">
<div class="container">
<div class="row">
<div class="col-12">
<div class="blog-grid-arrow p-relative">
</div>
</div>
</div>
<!-- blog-grid-area-end -->
<!--Portfolio Start-->
<div class="portfolio blog-grid-inner mb-80">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-8">
<div class="tp-about__section-box text-center mb-40">
<h3 class="tp-section-title">بیشتر بدانیم</h3>
</div>
</div>
</div>
<div class="row grid blog-grid-inner" style="position: relative; height: 1047.48px;">
<div class="col-xl-4 col-lg-6 col-md-6 mb-30 grid-item cat1 cat4 cat3 cat5" style="position: absolute; left: 0%; top: 0px;">
<div class="tp-blog-item">
<div class="tp-blog-thumb fix">
<a href="blog-details.html"><img src="img/blog/blog-grid-1.jpg" alt=""></a>
</div>
<div class="tp-blog-content">
<div class="tp-blog-meta d-flex align-items-center">
<div class="tp-blog-category category-color-1">
<span>بازاریابی</span>
</div>
<div class="tp-blog-date">
<span>فروردین 12, 1402</span>
</div>
</div>
<div class="tp-blog-title-box">
<a class="tp-blog-title-sm" href="blog-details.html">2023 سال حرفه ای در <br> نقد و
بررسی</a>
</div>
<div class="tp-blog-author-info-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/avata/avata-1.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>محمد محمدی</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 col-md-6 mb-30 grid-item cat4 cat3 cat2 cat1" style="position: absolute; left: 33.3333%; top: 0px;">
<div class="tp-blog-item">
<div class="tp-blog-thumb fix">
<a href="blog-details.html"><img src="img/blog/blog-grid-2.jpg" alt=""></a>
</div>
<div class="tp-blog-content">
<div class="tp-blog-meta d-flex align-items-center">
<div class="tp-blog-category category-color-1">
<span>منابع</span>
</div>
<div class="tp-blog-date">
<span>آذر 12, 1402</span>
</div>
</div>
<div class="tp-blog-title-box">
<a class="tp-blog-title-sm" href="blog-details.html">بهترین استفاده از بازخورد</a>
</div>
<div class="tp-blog-author-info-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/avata/avata-2.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>محمد محمدی</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 col-md-6 mb-30 grid-item cat3 cat4 cat5" style="position: absolute; left: 66.6667%; top: 0px;">
<div class="tp-blog-item">
<div class="tp-blog-thumb fix">
<a href="blog-details.html"><img src="img/blog/blog-grid-3.jpg" alt=""></a>
</div>
<div class="tp-blog-content">
<div class="tp-blog-meta d-flex align-items-center">
<div class="tp-blog-category category-color-1">
<span>نرم افزار مدیریت</span>
</div>
<div class="tp-blog-date">
<span>28 اردیبهشت, 1402</span>
</div>
</div>
<div class="tp-blog-title-box">
<a class="tp-blog-title-sm" href="blog-details.html">آموزش تایپ برای کودکان <br>
و مبتدیان</a>
</div>
<div class="tp-blog-author-info-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/avata/avata-3.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>محمد محمدی</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 col-md-6 mb-30 grid-item cat4 cat2 cat3 cat1" style="position: absolute; left: 0%; top: 508px;">
<div class="tp-blog-item">
<div class="tp-blog-thumb fix">
<a href="blog-details.html"><img src="img/blog/blog-grid-4.jpg" alt=""></a>
</div>
<div class="tp-blog-content">
<div class="tp-blog-meta d-flex align-items-center">
<div class="tp-blog-category category-color-1">
<span>کسب و کار</span>
</div>
<div class="tp-blog-date">
<span>28 فروردین, 1402</span>
</div>
</div>
<div class="tp-blog-title-box">
<a class="tp-blog-title-sm" href="blog-details.html">مدیریت پروژه در <br>
نوک انگشتان شما</a>
</div>
<div class="tp-blog-author-info-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/avata/avata-4.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>محمد محمدی</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 col-md-6 mb-30 grid-item cat1 cat2 cat3 cat5" style="position: absolute; left: 33.3333%; top: 508px;">
<div class="tp-blog-item">
<div class="tp-blog-thumb fix">
<a href="blog-details.html"><img src="img/blog/blog-grid-5.jpg" alt=""></a>
</div>
<div class="tp-blog-content">
<div class="tp-blog-meta d-flex align-items-center">
<div class="tp-blog-category category-color-1">
<span>توسعه</span>
</div>
<div class="tp-blog-date">
<span>28 آذر, 1402</span>
</div>
</div>
<div class="tp-blog-title-box">
<a class="tp-blog-title-sm" href="blog-details.html">طراحی فضای کودکان <br>
کائنات</a>
</div>
<div class="tp-blog-author-info-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/avata/avata-5.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>محمد محمدی</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-6 col-md-6 mb-30 grid-item cat4 cat1 cat5 cat2" style="position: absolute; left: 66.6667%; top: 508px;">
<div class="tp-blog-item">
<div class="tp-blog-thumb fix">
<a href="blog-details.html"><img src="img/blog/blog-grid-6.jpg" alt=""></a>
</div>
<div class="tp-blog-content">
<div class="tp-blog-meta d-flex align-items-center">
<div class="tp-blog-category category-color-1">
<span>طراحی</span>
</div>
<div class="tp-blog-date">
<span>28 فروردین, 1402</span>
</div>
</div>
<div class="tp-blog-title-box">
<a class="tp-blog-title-sm" href="blog-details.html">چگونه ربات‌های چت می‌توانند به شما
کمک کنند <br> فروش بیشتری را افزایش دهند</a>
</div>
<div class="tp-blog-author-info-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/avata/avata-6.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>محمد محمدی</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- blog-grid-area-end -->
<!--Portfolio Start-->
<div class="portfolio blog-grid-inner mb-80">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-8">
<div class="tp-about__section-box text-center mb-40">
<h3 class="tp-section-title">بیشتر بدانیم</h3>
</div>
</div>
</div>
<!--Portfolio End-->
<div class="row">
@for (int i = 0; i < request?.list.Count; i++)
{
<ItemBloginHome Item="request.list[i]" />
}
</div>
<nav aria-label="Page navigation">
<ul class="pagination justify-content-center">
@for (int page = 1; page <= request?.PageCount; page++)
{
if (page == PageIndex)
{
<li class="page-item disabled">
<a class="page-link" href="@Navigation.GetUriWithQueryParameter("PageIndex",page)">@(page)</a>
</li>
}
else
{
<li class="page-item">
<a class="page-link" href="@Navigation.GetUriWithQueryParameter("PageIndex",page)">@(page)</a>
</li>
}
}
</ul>
</nav>
</div>
</div>
<!--Portfolio End-->
</main>
</main>
@code {
[Parameter,SupplyParameterFromQuery]
public int? PageIndex { get; set; }
public Shared.DTOs.PagingDto<BlogDto>? request { get; set; }
protected override async Task OnParametersSetAsync()
{
if (PageIndex == null) PageIndex = 1;
request = await _hc.GetFromJsonAsync<PagingDto<BlogDto>>($"Base/LastBlog?PageIndex={PageIndex ?? 1}&PageSize=6");
await base.OnParametersSetAsync();
}
}

View File

@@ -7,7 +7,9 @@ var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://localhost:7075/api/") });
//builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://localhost:7075/api/") });
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("http://localhost:5271/api/") });
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("fa-Ir");