This commit is contained in:
mmrbnjd
2024-11-14 19:10:03 +03:30
parent 379f3df414
commit e5e36e34c0
514 changed files with 31439 additions and 0 deletions

View File

@@ -9,6 +9,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Back", "Back\Back.csproj",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shared", "Shared\Shared.csproj", "{07963EE9-ADA6-4A30-890B-6643BA332D3A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "View", "View", "{25C58D68-C8E7-4623-9159-1FC010E73EEA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "moadiran", "moadiran\moadiran.csproj", "{E209C152-76D5-469F-A969-B5BE5970CA7A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -27,10 +31,17 @@ Global
{07963EE9-ADA6-4A30-890B-6643BA332D3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{07963EE9-ADA6-4A30-890B-6643BA332D3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07963EE9-ADA6-4A30-890B-6643BA332D3A}.Release|Any CPU.Build.0 = Release|Any CPU
{E209C152-76D5-469F-A969-B5BE5970CA7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E209C152-76D5-469F-A969-B5BE5970CA7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E209C152-76D5-469F-A969-B5BE5970CA7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E209C152-76D5-469F-A969-B5BE5970CA7A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{E209C152-76D5-469F-A969-B5BE5970CA7A} = {25C58D68-C8E7-4623-9159-1FC010E73EEA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {7631EF02-9C92-4BD7-BE06-54BA375F457F}
EndGlobalSection

12
moadiran/App.razor Normal file
View File

@@ -0,0 +1,12 @@
<Router AppAssembly="@typeof(App).Assembly">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
<NotFound>
<PageTitle>Not found</PageTitle>
<LayoutView Layout="@typeof(MainLayout)">
<p role="alert">Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>

View File

@@ -0,0 +1,13 @@
namespace moadiran.Data
{
public class WeatherForecast
{
public DateTime Date { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
public string? Summary { get; set; }
}
}

View File

@@ -0,0 +1,20 @@
namespace moadiran.Data
{
public class WeatherForecastService
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
public Task<WeatherForecast[]> GetForecastAsync(DateTime startDate)
{
return Task.FromResult(Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = startDate.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
}).ToArray());
}
}
}

214
moadiran/FixedValues.cs Normal file
View File

@@ -0,0 +1,214 @@
using moadiran.Services;
using Shared.DTOs;
namespace moadiran
{
public class Fixedvalues
{
public string Domin { get; set; } = "http://195.88.208.142";
public readonly HttpClientController _hc;
private List<ForCustomerSearch>? Cus = null;
private List<IdName<int>>? Patterns = null;
private List<IdName<string>>? PaymentMethods = null;
private List<IdName<int>>? Patternsbyinp = null;
private List<IdName<int>>? BillTypes = null;
private List<IdName<int>>? UnitsbyUnitTaxID = null;
private List<IdName<int>>? Units = null;
private List<CODIdName<int>>? Cods = null;
private CompanyDTO? InfoCompany = null;
public InvoiceDTO? invoice { get; set; } = null;
public DashBoardDTO? dashBoard { get; set; } = null;
private List<PromotionDto> Promotions { get; set; } = null;
public Fixedvalues(HttpClientController hc)
{
_hc = hc;
}
public async Task<List<ForCustomerSearch>?> GetCustomers()
{
if (Cus == null)
{
var request = await _hc.Get($"Customer/GetAllForidName");
if (request.IsSuccessStatusCode)
{
Cus = await request.Content.ReadFromJsonAsync<List<ForCustomerSearch>>();
}
}
return Cus;
}
public async Task<List<CODIdName<int>>?> GetCODs()
{
if (Cods == null)
{
var request = await _hc.Get($"COD/GetAllForidName");
if (request.IsSuccessStatusCode)
{
Cods = await request.Content.ReadFromJsonAsync<List<CODIdName<int>>>();
}
}
return Cods;
}
public async Task<List<IdName<int>>?> GetPatterns()
{
if (Patterns == null)
{
var request = await _hc.Get($"Invoice/GetPatterns");
if (request.IsSuccessStatusCode)
{
Patterns = await request.Content.ReadFromJsonAsync<List<IdName<int>>>();
}
}
return Patterns;
}
public async Task<List<IdName<string>>?> GetPaymentMethods()
{
if (PaymentMethods == null)
{
var request = await _hc.Get($"InvoicePayment/PaymentMethods");
if (request.IsSuccessStatusCode)
{
PaymentMethods = await request.Content.ReadFromJsonAsync<List<IdName<string>>>();
}
}
return PaymentMethods;
}
public async Task<List<IdName<int>>?> GetPatternsbyinp()
{
if (Patternsbyinp == null)
{
var request = await _hc.Get($"TaxPayer/GetPatterns");
if (request.IsSuccessStatusCode)
{
Patternsbyinp = await request.Content.ReadFromJsonAsync<List<IdName<int>>>();
}
}
return Patternsbyinp;
}
public async Task<List<IdName<int>>?> GetUnitsbyUnitTaxID()
{
if (UnitsbyUnitTaxID == null)
{
var request = await _hc.Get($"COD/GetUnits?UnitTaxID=true");
if (request.IsSuccessStatusCode)
{
UnitsbyUnitTaxID = await request.Content.ReadFromJsonAsync<List<IdName<int>>>();
}
}
return UnitsbyUnitTaxID;
}
public async Task<List<IdName<int>>?> GetBillTypes()
{
if (BillTypes == null)
{
var request = await _hc.Get($"TaxPayer/GetBillTypes");
if (request.IsSuccessStatusCode)
{
BillTypes = await request.Content.ReadFromJsonAsync<List<IdName<int>>>();
}
}
return BillTypes;
}
public async Task<CompanyDTO?> GetInfoCompany()
{
if (InfoCompany == null)
{
var rspCompany = await _hc.Get($"Company/GetCompany");
if (rspCompany.IsSuccessStatusCode)
InfoCompany = await rspCompany.Content.ReadFromJsonAsync<CompanyDTO>();
}
return InfoCompany;
}
public async Task LoadDashBoard(bool run = false)
{
if (dashBoard == null || run)
{
var rsp = await _hc.Get("User/GetDashBoard");
if (rsp.IsSuccessStatusCode)
{
dashBoard = await rsp.Content.ReadFromJsonAsync<DashBoardDTO>();
}
}
}
public async Task<List<IdName<int>>> GetUnits()
{
if (Units == null)
{
var rsp = await _hc.Get("COD/GetUnits");
if (rsp.IsSuccessStatusCode)
{
Units = await rsp.Content.ReadFromJsonAsync<List<IdName<int>>>();
}
}
return Units;
}
public async Task SetUlr(string Type)
{
await _hc.Post<UlrDto>("Base/Ulr", new UlrDto { Type = Type });
}
public async Task<List<PromotionDto>> GetPromotion()
{
if (Promotions == null)
{
List<PricingDto> Pricing = new List<PricingDto>();
var rsp = await _hc.Get($"Orders/GetAllPromotion");
if (rsp.IsSuccessStatusCode)
{
Promotions = await rsp.Content.ReadFromJsonAsync<List<PromotionDto>>() ?? new List<PromotionDto>();
rsp = await _hc.Get($"Orders/GetAllPricing");
if (rsp.IsSuccessStatusCode)
Pricing = await rsp.Content.ReadFromJsonAsync<List<PricingDto>>() ?? new List<PricingDto>();
if (Pricing.Count>0)
{
Promotions.Add(new PromotionDto()
{
ID = -1,
Name = "شخصی سازی",
promotionDetails = Pricing.Select(s => new PromotionDetailDto
{
ID = 0,
APrice = s.Price,
CreditAmount = 0,
PermissionID = s.PermissionID,
PermissionTitle = s.PermissionTitle
}).ToList()
});
}
}
}
return Promotions ?? new List<PromotionDto>();
}
}
}

View File

@@ -0,0 +1,43 @@

@using global::Shared.DTOs
@inject HttpClient _hc
<div class="contact-info-area pb-90" id="blog">
<div class="container">
<div class="row">
</div>
</div>
</div>
<div class="tp-project__area grey-bg pt-50 pb-50 fix" >
<div class="blog-grid-inner mb-10">
<div class="container">
<div class="row">
<div class="col-12">
<div class="popular-blog-title mb-40 text-center">
<h4>آخرین پست ها</h4>
</div>
</div>
</div>
<div class="row">
@foreach (var item in items)
{
<ItemBlog Item="item" />
}
</div>
<NavLink href="ListBlog">
<span>ادامه دارد ...</span>
<b></b>
</NavLink>
</div>
</div>
</div>
@code {
List<BlogDto> items = new List<BlogDto>();
protected override async Task OnInitializedAsync()
{
var request = await _hc.GetFromJsonAsync<PagingDto<BlogDto>>("Base/LastBlog?PageIndex=1&PageSize=3");
items = request.list;
await base.OnInitializedAsync();
}
}

View File

@@ -0,0 +1,33 @@
@inherits LayoutComponentBase
<HeadContent>
<!-- Place favicon.ico in the root directory -->
<link rel="shortcut icon" type="image/x-icon" href="img/favicon.png">
<!-- CSS here -->
<link rel="stylesheet" href="css/bootstrap.rtl.min.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/custom-animation.css">
<link rel="stylesheet" href="css/slick.css">
<link rel="stylesheet" href="css/nice-select.css">
<link rel="stylesheet" href="css/flaticon.css">
<link rel="stylesheet" href="css/swiper-bundle.css">
<link rel="stylesheet" href="css/meanmenu.css">
<link rel="stylesheet" href="css/font-awesome-pro.css">
<link rel="stylesheet" href="css/magnific-popup.css">
<link rel="stylesheet" href="css/spacing.css">
<link rel="stylesheet" href="css/Lanstyle.css">
<link rel="stylesheet" href="css/rtl.css">
</HeadContent>
<LBlogheader />
<div id="smooth-wrapper">
<div id="smooth-content">
@Body
<Lfooter />
</div>
</div>

View File

@@ -0,0 +1,77 @@
.page {
position: relative;
display: flex;
flex-direction: column;
}
main {
flex: 1;
}
.sidebar {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.top-row {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
justify-content: flex-end;
height: 3.5rem;
display: flex;
align-items: center;
}
.top-row ::deep a, .top-row ::deep .btn-link {
white-space: nowrap;
margin-left: 1.5rem;
text-decoration: none;
}
.top-row ::deep a:hover, .top-row ::deep .btn-link:hover {
text-decoration: underline;
}
.top-row ::deep a:first-child {
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 640.98px) {
.top-row {
justify-content: space-between;
}
.top-row ::deep a, .top-row ::deep .btn-link {
margin-left: 0;
}
}
@media (min-width: 641px) {
.page {
flex-direction: row;
}
.sidebar {
width: 250px;
height: 100vh;
position: sticky;
top: 0;
}
.top-row {
position: sticky;
top: 0;
z-index: 1;
}
.top-row.auth ::deep a:first-child {
flex: 1;
text-align: right;
width: 0;
}
.top-row, article {
padding-left: 2rem !important;
padding-right: 1.5rem !important;
}
}

View File

@@ -0,0 +1,131 @@

@using global::Shared.DTOs
@inject HttpClient _hc
@inject NavigationManager nav
<div class="contact-info-area pb-90" id="contact">
<div class="container">
<div class="row">
</div>
</div>
</div>
<div class="contact-form-area pb-120">
<div class="container">
<div class="row gx-0">
<div class="col-xl-5 col-lg-6">
<div class="contact-form-left">
<div class="contact-form-section-box pb-80">
<h5 class="inner-section-subtitle">ارتباط با ما</h5>
<h4 class="tp-section-title pb-10">
ما مشتاقانه منتظر <br> نظرات شما هستیم
</h4>
</div>
<div class="contact-form-social-box p-relative">
<div class="contact-form-section-img">
<img src="img/contact/contact-icon-sm-4.png" alt="">
</div>
</div>
</div>
</div>
<div class="col-xl-7 col-lg-6">
<div class="contact-form-right-warp">
<div class="postbox__comment-form">
<EditForm EditContext="editContext" OnValidSubmit="newTicket">
<DataAnnotationsValidator />
<div class="postbox__comment-input mb-35">
<ValidationMessage For="()=>model.FullName" />
<ValidationMessage For="()=>model.Mobile" />
<ValidationMessage For="()=>model.Title" />
<ValidationMessage For="()=>model.Text" />
</div>
<div class="row gx-20">
<div class="col-12">
<div class="postbox__comment-input mb-30">
<InputText style="text-align:center" onkeydown="@OnClearmessageStore" @bind-Value="model.FullName" id="FullName" type="text" class="inputText" required="" />
<span class="floating-label">نام شما</span>
</div>
</div>
<div class="col-12">
<div class="postbox__comment-input mb-35">
<InputText dir="ltr" style="text-align:center" onkeydown="@OnClearmessageStore" @bind-Value="model.Mobile" id="Mobile" type="number" class="inputText" required="" />
<span class="floating-label">موبایل</span>
</div>
</div>
<div class="col-12">
<div class="postbox__comment-input mb-35">
<InputText style="text-align:right" @bind-Value="model.Title" id="Title" type="text" class="inputText" required="" />
<span class="floating-label">عنوان</span>
</div>
</div>
<div class="col-xxl-12">
<div class="postbox__comment-input mb-30">
<InputText style="text-align:right" @bind-Value="model.Text" id="Text" class="textareaText" required=""></InputText>
<span class="floating-label-2">پیام شما ...</span>
</div>
</div>
<div class="col-xxl-10">
<div class="postbox__btn-box">
<Button Disabled="SpinnerVisible" Type="ButtonType.Submit" Color="ButtonColor.Primary">ارسال پیام</Button>
</div>
</div>
<div class="col-md-2" style="align-content:center">
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
</div>
</div>
</EditForm>
</div>
</div>
</div>
</div>
</div>
</div>
@code {
public bool SpinnerVisible { get; set; } = false;
string type = "NewTicketNoAuthentication";
private EditContext? editContext;
[SupplyParameterFromForm]
private CTicketNoAuthenticationDto? model { get; set; } = new CTicketNoAuthenticationDto();
private ValidationMessageStore? messageStore;
protected override void OnInitialized()
{
// modelTaxTools ??= new();
// editContext = new(modelTaxTools);
// editContext.OnValidationRequested += HandleValidationRequested;
// messageStore = new(editContext);
SpinnerVisible = false;
editContext = new EditContext(model);
messageStore = new(editContext);
}
}
@functions{
private async Task OnClearmessageStore() => messageStore?.Clear();
private async Task newTicket(){
SpinnerVisible = true;
var request = await _hc.PostAsJsonAsync("Ticket/NewTicketNoAuthentication", model);
if (request.IsSuccessStatusCode)
{
messageStore?.Clear();
var VerificationID = await request.Content.ReadFromJsonAsync<int>();
nav.NavigateTo($"Verification/{VerificationID}");
}
else
{
var error = await request.Content.ReadFromJsonAsync<List<string>>();
messageStore?.Add(() => model.Mobile, error);
}
SpinnerVisible = false;
}
}

View File

@@ -0,0 +1,7 @@
@inherits LayoutComponentBase
<div class="main">
<div class="content px-4">
@Body
</div>
</div>

View File

@@ -0,0 +1,26 @@
@using global::Shared.DTOs
@inject NavigationManager Navigation
<div class="rc__post mb-20 d-flex">
<div class="rc__post-thumb fix mr-20">
<a href="@Navigation.ToAbsoluteUri($"/BlogDetails/{@Item?.ID}")"><img src="img/blog/@Item?.Photo" alt=""></a>
</div>
<div class="rc__post-content">
<h3 class="rc__post-title">
<a href="@Navigation.ToAbsoluteUri($"/BlogDetails/{@Item?.ID}")">
@Item?.Title.Split(':')[1]
</a>
</h3><a>
<div class="rc__meta">
<span>@Item?.Date</span>
</div>
</a>
</div><a>
</a>
</div><a href="@Navigation.ToAbsoluteUri($"/BlogDetails/{@Item?.ID}")"></a>
@code {
[Parameter]
public BlogDto? Item { get; set; }
}

View File

@@ -0,0 +1,38 @@

@using global::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="@Navigation.ToAbsoluteUri($"/BlogDetails/{@Item?.ID}")"><img width="300" height="300" src="img/blog/@Item?.Photo" 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>@Item?.Title.Split(':')[0]</span>
</div>
<div class="tp-blog-date">
<span>@Item?.Date</span>
</div>
</div>
<div class="tp-blog-title-box">
<a class="tp-blog-title-sm" href="@Navigation.ToAbsoluteUri($"/BlogDetails/{@Item?.ID}")">@Item?.Title.Split(':')[1]</a>
</div>
<div class="tp-blog-author-info-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/avata/blog-avata-Publisher.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>مهدی ربیع نژاد</h5>
<span>مدیر سایت</span>
</div>
</div>
</div>
</div>
</div>
@code {
[Parameter]
public BlogDto? Item { get; set; }
}

View File

@@ -0,0 +1,41 @@
@using global::Shared.DTOs
@if (!string.IsNullOrEmpty(headingName) && !string.IsNullOrEmpty(collapseName))
{
<div class="accordion-items">
<h2 class="accordion-header" id="@headingName.Trim()">
<button class="accordion-buttons collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#@collapseName.Trim()" aria-expanded="false" aria-controls="@collapseName">
@qitem?.Title
<span class="accordion-btn"></span>
</button>
</h2>
<div id="@collapseName.Trim()" class="accordion-collapse collapse" aria-labelledby="@headingName.Trim()" data-bs-parent="#accordionExample">
<div class="accordion-body">
@qitem?.Answer
</div>
</div>
</div>
}
@code {
[Parameter]
public QuestionDto? qitem { get; set; }
private static Random random = new Random();
public string headingName { get; set; }
public string collapseName { get; set; }
public static string RandomString(int length)
{
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
return new string(Enumerable.Repeat(chars, length)
.Select(s => s[random.Next(s.Length)]).ToArray());
}
protected override async Task OnParametersSetAsync()
{
string str = RandomString(3);
headingName = "heading" + str;
collapseName = " collapse" + str;
await base.OnParametersSetAsync();
}
}

View File

@@ -0,0 +1,36 @@

<header>
<!-- tp-header-area-start -->
<div id="header-sticky" class="header-bottom__area header-sticky-bg-2 header-bottom__transparent header-bottom__bdr z-index-5">
<div class="container">
<div class="row g-0 align-items-center">
<div class="col-xxl-2 col-xl-2 col-lg-2 col-md-4 col-6">
<div class="header-bottom__logo">
</div>
</div>
<div class="col-xxl-7 col-xl-7 col-lg-7 d-none d-lg-block">
<div class="header-bottom__main-menu header-bottom__main-menu-4 header-bottom__main-menu-inner">
<nav id="mobile-menu">
<ul>
<li>
<NavLink href="/">صفحه اصلی</NavLink>
</li>
<li>
<NavLink href="ListBlog">مطالب</NavLink>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
<!-- tp-header-area-end -->
</header>
@code {
}

View File

@@ -0,0 +1,71 @@

@using global::Shared.DTOs
@inject HttpClient _hc
@inject NavigationManager Navigation
<div class="tp-faq-area pt-50" id="Question">
<div class="container p-0">
<div class="row g-0">
<div class="col-xl-12">
<div class="popular-blog-title mb-40">
<h4>سوالات پر تکرار</h4>
</div>
<div class="tp-custom-accordion">
<div class="accordion" id="accordionExample">
@for (int i = 0; i < request?.list.Count; i++)
{
<ItemQuestion qitem="request?.list[i]" />
}
@*
@foreach (var item in request?.list)
{
<ItemQuestion Item="item" />
} *@
</div>
</div>
</div>
</div>
</div>
<br />
@if (request!=null)
{
<div class="container">
<Pagination TotalPages=@request.PageCount
ActivePageNumber="@PageIndex"
PageChanged="OnPageChangedAsync"
Alignment="Alignment.Center"
FirstLinkIcon="IconName.ChevronDoubleRight"
PreviousLinkIcon="IconName.ChevronRight"
NextLinkIcon="IconName.ChevronLeft"
LastLinkIcon="IconName. ChevronDoubleLeft" />
</div>
}
</div>
@code {
[Parameter]
public int PageIndex { get; set; }
public PagingDto<QuestionDto>? request { get; set; }
private async Task OnPageChangedAsync(int newPageNumber)
{
request = await _hc.GetFromJsonAsync<PagingDto<QuestionDto>>($"Base/LastQuestion?PageIndex={newPageNumber}&PageSize=5");
await Task.Run(() => { PageIndex = newPageNumber; });
}
protected override async Task OnParametersSetAsync()
{
request = await _hc.GetFromJsonAsync<PagingDto<QuestionDto>>($"Base/LastQuestion?PageIndex={PageIndex}&PageSize=5");
await base.OnParametersSetAsync();
}
}

View File

@@ -0,0 +1,127 @@
<footer class="pb-50">
<!-- tp-footer-area-start -->
<div class="tp-footer__pl-pr p-relative">
<div class="footer-black-bg tp-gsap-bg" style="translate: none; rotate: none; scale: none; transform: scale(0.95, 1); transform-origin: 50% 50%; border-radius: 30px;"></div>
<div class="tp-footer__area pt-50">
<div class="container">
<div class="tp-footer__top-space">
<div class="row">
<div class="col-xl-4 col-lg-4 col-md-7 pb-30 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".5s">
<div class="tp-footer__widget footer-col-1">
<div class="tp-footer__text">
<p>
تیم توسعه بسیار ماهر <br> متخصص در تجزیه و تحلیل داده ها
</p>
</div>
<div class="tp-footer__social">
<a><i class="fab fa-facebook-f"></i></a>
<a><i class="fab fa-twitter"></i></a>
<a><i class="fab fa-linkedin-in"></i></a>
<a><i class="fab fa-vimeo-v"></i></a>
</div>
</div>
</div>
<div class="col-xl-3 col-lg-3 col-md-5 pb-30 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".7s">
<div class="tp-footer__widget footer-col-2">
<h4 class="tp-footer__widget-title">سایت های مرتبط</h4>
<div class="tp-footer__content">
<ul>
<li>
<a href="https://www.intamedia.ir/">
پورتال رسمی سازمان امور مالیاتی کشور
</a>
</li>
<li><a href="https://my.tax.gov.ir/?url_back=https://tp.tax.gov.ir">درگاه ملی خدمات الکترونیک سازمان امور مالیاتی کشور</a></li>
</ul>
</div>
</div>
</div>
<div class="col-xl-2 col-lg-2 col-md-6 pb-30 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".9s">
<div class="tp-footer__widget footer-col-3">
<h4 class="tp-footer__widget-title">مسیر سایت</h4>
<div class="tp-footer__content">
<ul>
<li><a href="#">صفحه اصلی</a></li>
<li><a href="#">وبلاگ</a></li>
<li><a href="#">ابزار</a></li>
</ul>
</div>
</div>
</div>
<div class="col-xl-3 col-lg-3 col-md-6 pb-30 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay="1s">
<div class="tp-footer__widget footer-col-4">
<h4 class="tp-footer__widget-title">ارتباط با ما</h4>
<div class="tp-footer__contact-info tp-footer__icon-space">
<ul>
<li>
<span>
<svg width="22" height="22" viewBox="0 0 26 26" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M14.332 1C14.332 1 17.2651 1.26664 20.9981 4.99966C24.7311 8.73267 24.9978 11.6658 24.9978 11.6658"
stroke="#FF3C82" stroke-width="2" stroke-linecap="round" />
<path d="M14.6079 5.71289C14.6079 5.71289 15.9277 6.08998 17.9075 8.06971C19.8872 10.0494 20.2643 11.3693 20.2643 11.3693"
stroke="#FF3C82" stroke-width="2" stroke-linecap="round" />
<path opacity="0.5"
d="M9.04943 5.42369L9.91471 6.97413C10.6956 8.37332 10.3821 10.2088 9.15225 11.4387C9.15225 11.4387 9.15225 11.4387 9.15225 11.4387C9.15213 11.4388 7.66057 12.9306 10.3652 15.6352C13.0692 18.3392 14.561 16.849 14.5618 16.8482C14.5618 16.8482 14.5618 16.8482 14.5618 16.8482C15.7917 15.6183 17.6271 15.3049 19.0263 16.0857L20.5768 16.951C22.6896 18.1301 22.9391 21.0931 21.082 22.9502C19.9661 24.0661 18.599 24.9344 17.0878 24.9917C14.5439 25.0882 10.2236 24.4443 5.88985 20.1106C1.55612 15.7769 0.912294 11.4566 1.00873 8.91261C1.06602 7.40143 1.93432 6.03439 3.05023 4.91848C4.90734 3.06137 7.87031 3.31089 9.04943 5.42369Z"
stroke="#FF3C82" stroke-width="2" stroke-linecap="round" />
</svg>
</span>
<a href="tel:+989016940504">09016940504</a>
</li>
<li>
<span>
<svg width="18" height="18" viewBox="0 0 18 18" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M9 17C13.4183 17 17 13.4183 17 9C17 4.58172 13.4183 1 9 1C4.58172 1 1 4.58172 1 9C1 10.2797 1.30049 11.4893 1.83477 12.562C1.97675 12.847 2.02401 13.1729 1.94169 13.4805L1.46521 15.2613C1.25836 16.0344 1.96561 16.7416 2.73868 16.5348L4.51951 16.0583C4.82715 15.976 5.15297 16.0233 5.43802 16.1652C6.51069 16.6995 7.72025 17 9 17Z"
stroke="#FF3C82" stroke-width="1.5" />
<path opacity="0.5" d="M5.7998 7.80078H12.1998" stroke="#FF3C82"
stroke-width="1.5" stroke-linecap="round" />
<path opacity="0.5" d="M5.7998 10.6006H10.1998" stroke="#FF3C82"
stroke-width="1.5" stroke-linecap="round" />
</svg>
</span>
<a href="mailto:mehdi.rabienzhad@gmail.com">contact@moadiran.ir</a>
</li>
<li>
<span>
<svg width="20" height="20" viewBox="0 0 20 20" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path opacity="0.5"
d="M3.7002 6.86317C3.7002 3.62503 6.5208 1 10.0002 1C13.4796 1 16.3002 3.62503 16.3002 6.86317C16.3002 10.0759 14.2895 13.8249 11.1523 15.1656C10.4209 15.4781 9.57947 15.4781 8.84814 15.1656C5.71094 13.8249 3.7002 10.0759 3.7002 6.86317Z"
stroke="#FF3C82" stroke-width="1.5" />
<path d="M11.8002 7.3C11.8002 8.29411 10.9943 9.1 10.0002 9.1C9.00608 9.1 8.2002 8.29411 8.2002 7.3C8.2002 6.30589 9.00608 5.5 10.0002 5.5C10.9943 5.5 11.8002 6.30589 11.8002 7.3Z"
stroke="#FF3C82" stroke-width="1.5" />
<path d="M18.0645 13.1504C18.6633 13.6926 19 14.3038 19 14.9504C19 17.1871 14.9706 19.0004 10 19.0004C5.02944 19.0004 1 17.1871 1 14.9504C1 14.3038 1.33671 13.6926 1.93552 13.1504"
stroke="#FF3C82" stroke-width="1.5" stroke-linecap="round" />
</svg>
</span>
<a target="_blank">ایران، تهران</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tp-copyright__area pt-20 pb-20">
<div class="container">
<div class="row align-items-center">
<div class="col-md-6 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".7s">
<div class="tp-copyright__text">
<span>کپی رایت با <a href="#">مهدی</a> 2023</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- tp-footer-area-end -->
</footer>
@code {
}

View File

@@ -0,0 +1,9 @@

<header class="header-bottom__transparent z-index-6 tp-header-height">
<Lheadertop />
<Lheaderbottom />
</header>
@code {
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,167 @@
@using System.Globalization
@inject HttpClient _hc
<!-- header top area -->
<div class="header-top__area header-top__space z-index-3 d-none d-md-block tp-header-top-animation">
<div class="container">
<div class="row align-items-start">
<div class="col-6">
<div class="header-top__link">
<span>امروز <i>@GetTodyPersianDatetime()</i></span>
</div>
</div>
<div class="col-6">
<div class="header-top__support text-end">
<span>پیشتیبانی: <a href="tel:+989016940504">09016940504</a></span>
</div>
</div>
</div>
</div>
</div>
<!-- header bottom -->
@code {
DateTime dtserver = DateTime.Now;
protected override async Task OnInitializedAsync()
{
dtserver = await _hc.GetFromJsonAsync<DateTime>("Base/DateTimeServer");
await base.OnInitializedAsync();
}
}
@functions{
public string GetTodyPersianDatetime()
{
PersianCalendar pcDate = new PersianCalendar();
int persianYear = pcDate.GetYear(dtserver);
int persianMonth = pcDate.GetMonth(dtserver);
int persianDay = pcDate.GetDayOfMonth(dtserver);
string _DayOfWeek = "";
switch (dtserver.DayOfWeek)
{
case DayOfWeek.Saturday:
_DayOfWeek = " شنبه ";
break;
case DayOfWeek.Sunday:
_DayOfWeek = " یکشنبه ";
break;
case DayOfWeek.Monday:
_DayOfWeek = " دوشنبه ";
break;
case DayOfWeek.Tuesday:
_DayOfWeek = " سه شنبه ";
break;
case DayOfWeek.Wednesday:
_DayOfWeek = " چهارشنبه ";
break;
case DayOfWeek.Thursday:
_DayOfWeek = " پنج شنبه ";
break;
case DayOfWeek.Friday:
_DayOfWeek = " جمـــعه ";
break;
}
string _Day = "";
switch (persianDay)
{
case 1:
_Day = " اول ";
break;
case 2:
_Day = " دوم ";
break;
case 3:
_Day = " سوم ";
break;
case 4:
_Day = " چهارم ";
break;
case 5:
_Day = " پنجم ";
break;
case 6:
_Day = " ششم ";
break;
case 7:
_Day = " هفتم ";
break;
case 8:
_Day = " هشتم ";
break;
case 9:
_Day = " نهم ";
break;
case 10:
_Day = " دهم ";
break;
case 11:
_Day = " یازدهم ";
break;
case 12:
_Day = " دوازدهم ";
break;
case 13:
_Day = " سیزدهم ";
break;
case 14:
_Day = " چهاردهم ";
break;
case 15:
_Day = " پانزدهم ";
break;
case 16:
_Day = " شانزدهم ";
break;
default:
_Day = persianDay.ToString();
break;
}
string _Month = "";
switch (persianMonth)
{
case 1:
_Month = " فروردین ";
break;
case 2:
_Month = " اردیبهشت ";
break;
case 3:
_Month = " خرداد ";
break;
case 4:
_Day = " تیر ";
break;
case 5:
_Month = " مرداد ";
break;
case 6:
_Month = " شهریور ";
break;
case 7:
_Month = " مهر ";
break;
case 8:
_Month = " آبان ";
break;
case 9:
_Month = " آذر ";
break;
case 10:
_Month = " دی ";
break;
case 11:
_Month = " بهمن ";
break;
case 12:
_Month = " اسفند ";
break;
}
string fullPersianDate = _DayOfWeek + " " + _Day + " " + _Month + " ماه " + persianYear;
return fullPersianDate;
}
}

239
moadiran/Layout/Price.razor Normal file
View File

@@ -0,0 +1,239 @@

@using global::Shared.DTOs
@inject Fixedvalues fv;
<div class="tp-price__area tp-price__pl-pr p-relative pt-110 pb-80" id="price">
<div class="container">
<div class="row justify-content-center">
<div class="col-xl-7 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".3s">
<div class="tp-price__section-box text-center mb-35">
<h2 class="tp-section-title">
تعرفه ها
</h2>
<p>طرحی متناسب با نیازهای خود انتخاب کنید</p>
</div>
</div>
</div>
<div class="price-tab-content">
<div class="tab-content" id="nav-tabContent">
<div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab" tabindex="0">
<div class="row">
@{
int index = 0;
foreach (var item in items)
{
string aType = "";
string pimg = $"img/price/price-icon-{index+1}.png";
if (index == 3) break;
if (index == 1) aType = "active";
<div class="col-xl-4 col-lg-4 col-md-6 mb-30">
<div class="tp-price__item @aType p-relative">
<div class="tp-price__icon">
<img src="@pimg" alt="">
</div>
<div class="tp-price__title-box">
<h4 class="tp-price__title-sm">@item.Name</h4>
</div>
<div class="tp-price__feature">
<ul>
@if (item.promotionDetails.Any(w => w.PermissionID == 3))
{
<li>
<span>
<svg width="16" height="17" viewBox="0 0 16 17" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path class="price-path-1"
d="M6.344 9.20708L1.81052 6.82365C1.46119 6.64408 1.05752 6.6604 0.731485 6.87263C0.397684 7.09301 0.203613 7.46032 0.203613 7.86844V12.3659C0.203613 13.1414 0.615042 13.8433 1.27488 14.1943L5.8006 16.5778C5.95586 16.6594 6.12664 16.7002 6.29742 16.7002C6.49925 16.7002 6.70109 16.6431 6.87963 16.5288C7.21343 16.3166 7.4075 15.9411 7.4075 15.533V11.0355C7.41527 10.2519 7.00384 9.5499 6.344 9.20708Z"
fill="currentcolor" />
<path class="price-path-2"
d="M15.3846 6.87587C15.0508 6.66372 14.6471 6.63924 14.3056 6.82691L9.77978 9.20956C9.11993 9.56043 8.7085 10.254 8.7085 11.0373V15.5334C8.7085 15.9413 8.90257 16.3167 9.23637 16.5288C9.41492 16.6431 9.61676 16.7002 9.81859 16.7002C9.98938 16.7002 10.1602 16.6594 10.3154 16.5778L14.8412 14.1952C15.5011 13.8443 15.9125 13.1507 15.9125 12.3674V7.87136C15.9125 7.46337 15.7184 7.09618 15.3846 6.87587Z"
fill="currentcolor" />
<path class="price-path-3"
d="M13.9152 2.96146L8.86226 0.219067C8.33036 -0.0730223 7.68564 -0.0730223 7.15375 0.219067L2.10076 2.96146C1.73005 3.1643 1.50439 3.55375 1.50439 4C1.50439 4.43813 1.73005 4.8357 2.10076 5.03854L7.15375 7.78093C7.4197 7.92698 7.71788 8 8.008 8C8.29813 8 8.59631 7.92698 8.86226 7.78093L13.9152 5.03854C14.286 4.8357 14.5116 4.44625 14.5116 4C14.5116 3.55375 14.286 3.1643 13.9152 2.96146Z"
fill="currentcolor" />
</svg>
</span> صدور فاکتور @item.promotionDetails.Where(w => w.PermissionID == 3).Select(s => s.CreditAmount).FirstOrDefault() واحد
<br> (هرینه هر واحد @item.promotionDetails.Where(w => w.PermissionID == 3).Select(s => s.APrice).FirstOrDefault().ToString("N0") ريال)
</li>
}
else
{
<li class="inactive">
<span>
<svg width="16" height="17" viewBox="0 0 16 17" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path class="price-path-1"
d="M6.344 9.20708L1.81052 6.82365C1.46119 6.64408 1.05752 6.6604 0.731485 6.87263C0.397684 7.09301 0.203613 7.46032 0.203613 7.86844V12.3659C0.203613 13.1414 0.615042 13.8433 1.27488 14.1943L5.8006 16.5778C5.95586 16.6594 6.12664 16.7002 6.29742 16.7002C6.49925 16.7002 6.70109 16.6431 6.87963 16.5288C7.21343 16.3166 7.4075 15.9411 7.4075 15.533V11.0355C7.41527 10.2519 7.00384 9.5499 6.344 9.20708Z"
fill="currentcolor" />
<path class="price-path-2"
d="M15.3846 6.87587C15.0508 6.66372 14.6471 6.63924 14.3056 6.82691L9.77978 9.20956C9.11993 9.56043 8.7085 10.254 8.7085 11.0373V15.5334C8.7085 15.9413 8.90257 16.3167 9.23637 16.5288C9.41492 16.6431 9.61676 16.7002 9.81859 16.7002C9.98938 16.7002 10.1602 16.6594 10.3154 16.5778L14.8412 14.1952C15.5011 13.8443 15.9125 13.1507 15.9125 12.3674V7.87136C15.9125 7.46337 15.7184 7.09618 15.3846 6.87587Z"
fill="currentcolor" />
<path class="price-path-3"
d="M13.9152 2.96146L8.86226 0.219067C8.33036 -0.0730223 7.68564 -0.0730223 7.15375 0.219067L2.10076 2.96146C1.73005 3.1643 1.50439 3.55375 1.50439 4C1.50439 4.43813 1.73005 4.8357 2.10076 5.03854L7.15375 7.78093C7.4197 7.92698 7.71788 8 8.008 8C8.29813 8 8.59631 7.92698 8.86226 7.78093L13.9152 5.03854C14.286 4.8357 14.5116 4.44625 14.5116 4C14.5116 3.55375 14.286 3.1643 13.9152 2.96146Z"
fill="currentcolor" />
</svg>
</span> صدور فاکتور
<br> ندارد
</li>
}
@if (item.promotionDetails.Any(w => w.PermissionID == 4))
{
<li>
<span>
<svg width="16" height="17" viewBox="0 0 16 17" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path class="price-path-1"
d="M6.344 9.20708L1.81052 6.82365C1.46119 6.64408 1.05752 6.6604 0.731485 6.87263C0.397684 7.09301 0.203613 7.46032 0.203613 7.86844V12.3659C0.203613 13.1414 0.615042 13.8433 1.27488 14.1943L5.8006 16.5778C5.95586 16.6594 6.12664 16.7002 6.29742 16.7002C6.49925 16.7002 6.70109 16.6431 6.87963 16.5288C7.21343 16.3166 7.4075 15.9411 7.4075 15.533V11.0355C7.41527 10.2519 7.00384 9.5499 6.344 9.20708Z"
fill="currentcolor" />
<path class="price-path-2"
d="M15.3846 6.87587C15.0508 6.66372 14.6471 6.63924 14.3056 6.82691L9.77978 9.20956C9.11993 9.56043 8.7085 10.254 8.7085 11.0373V15.5334C8.7085 15.9413 8.90257 16.3167 9.23637 16.5288C9.41492 16.6431 9.61676 16.7002 9.81859 16.7002C9.98938 16.7002 10.1602 16.6594 10.3154 16.5778L14.8412 14.1952C15.5011 13.8443 15.9125 13.1507 15.9125 12.3674V7.87136C15.9125 7.46337 15.7184 7.09618 15.3846 6.87587Z"
fill="currentcolor" />
<path class="price-path-3"
d="M13.9152 2.96146L8.86226 0.219067C8.33036 -0.0730223 7.68564 -0.0730223 7.15375 0.219067L2.10076 2.96146C1.73005 3.1643 1.50439 3.55375 1.50439 4C1.50439 4.43813 1.73005 4.8357 2.10076 5.03854L7.15375 7.78093C7.4197 7.92698 7.71788 8 8.008 8C8.29813 8 8.59631 7.92698 8.86226 7.78093L13.9152 5.03854C14.286 4.8357 14.5116 4.44625 14.5116 4C14.5116 3.55375 14.286 3.1643 13.9152 2.96146Z"
fill="currentcolor" />
</svg>
</span> کالا جدید @item.promotionDetails.Where(w => w.PermissionID == 4).Select(s => s.CreditAmount).FirstOrDefault() واحد
<br>(هرینه هر واحد @item.promotionDetails.Where(w => w.PermissionID == 4).Select(s => s.APrice).FirstOrDefault().ToString("N0") ريال)
</li>
}
else
{
<li class="inactive">
<span>
<svg width="16" height="17" viewBox="0 0 16 17" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path class="price-path-1"
d="M6.344 9.20708L1.81052 6.82365C1.46119 6.64408 1.05752 6.6604 0.731485 6.87263C0.397684 7.09301 0.203613 7.46032 0.203613 7.86844V12.3659C0.203613 13.1414 0.615042 13.8433 1.27488 14.1943L5.8006 16.5778C5.95586 16.6594 6.12664 16.7002 6.29742 16.7002C6.49925 16.7002 6.70109 16.6431 6.87963 16.5288C7.21343 16.3166 7.4075 15.9411 7.4075 15.533V11.0355C7.41527 10.2519 7.00384 9.5499 6.344 9.20708Z"
fill="currentcolor" />
<path class="price-path-2"
d="M15.3846 6.87587C15.0508 6.66372 14.6471 6.63924 14.3056 6.82691L9.77978 9.20956C9.11993 9.56043 8.7085 10.254 8.7085 11.0373V15.5334C8.7085 15.9413 8.90257 16.3167 9.23637 16.5288C9.41492 16.6431 9.61676 16.7002 9.81859 16.7002C9.98938 16.7002 10.1602 16.6594 10.3154 16.5778L14.8412 14.1952C15.5011 13.8443 15.9125 13.1507 15.9125 12.3674V7.87136C15.9125 7.46337 15.7184 7.09618 15.3846 6.87587Z"
fill="currentcolor" />
<path class="price-path-3"
d="M13.9152 2.96146L8.86226 0.219067C8.33036 -0.0730223 7.68564 -0.0730223 7.15375 0.219067L2.10076 2.96146C1.73005 3.1643 1.50439 3.55375 1.50439 4C1.50439 4.43813 1.73005 4.8357 2.10076 5.03854L7.15375 7.78093C7.4197 7.92698 7.71788 8 8.008 8C8.29813 8 8.59631 7.92698 8.86226 7.78093L13.9152 5.03854C14.286 4.8357 14.5116 4.44625 14.5116 4C14.5116 3.55375 14.286 3.1643 13.9152 2.96146Z"
fill="currentcolor" />
</svg>
</span> کالا جدید
<br> ندارد
</li>
}
@if (item.promotionDetails.Any(w => w.PermissionID == 5))
{
<li>
<span>
<svg width="16" height="17" viewBox="0 0 16 17" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path class="price-path-1"
d="M6.344 9.20708L1.81052 6.82365C1.46119 6.64408 1.05752 6.6604 0.731485 6.87263C0.397684 7.09301 0.203613 7.46032 0.203613 7.86844V12.3659C0.203613 13.1414 0.615042 13.8433 1.27488 14.1943L5.8006 16.5778C5.95586 16.6594 6.12664 16.7002 6.29742 16.7002C6.49925 16.7002 6.70109 16.6431 6.87963 16.5288C7.21343 16.3166 7.4075 15.9411 7.4075 15.533V11.0355C7.41527 10.2519 7.00384 9.5499 6.344 9.20708Z"
fill="currentcolor" />
<path class="price-path-2"
d="M15.3846 6.87587C15.0508 6.66372 14.6471 6.63924 14.3056 6.82691L9.77978 9.20956C9.11993 9.56043 8.7085 10.254 8.7085 11.0373V15.5334C8.7085 15.9413 8.90257 16.3167 9.23637 16.5288C9.41492 16.6431 9.61676 16.7002 9.81859 16.7002C9.98938 16.7002 10.1602 16.6594 10.3154 16.5778L14.8412 14.1952C15.5011 13.8443 15.9125 13.1507 15.9125 12.3674V7.87136C15.9125 7.46337 15.7184 7.09618 15.3846 6.87587Z"
fill="currentcolor" />
<path class="price-path-3"
d="M13.9152 2.96146L8.86226 0.219067C8.33036 -0.0730223 7.68564 -0.0730223 7.15375 0.219067L2.10076 2.96146C1.73005 3.1643 1.50439 3.55375 1.50439 4C1.50439 4.43813 1.73005 4.8357 2.10076 5.03854L7.15375 7.78093C7.4197 7.92698 7.71788 8 8.008 8C8.29813 8 8.59631 7.92698 8.86226 7.78093L13.9152 5.03854C14.286 4.8357 14.5116 4.44625 14.5116 4C14.5116 3.55375 14.286 3.1643 13.9152 2.96146Z"
fill="currentcolor" />
</svg>
</span> مشتری جدید @item.promotionDetails.Where(w => w.PermissionID == 5).Select(s => s.CreditAmount).FirstOrDefault() واحد
<br>(هزینه هر واحد @item.promotionDetails.Where(w => w.PermissionID == 5).Select(s => s.APrice).FirstOrDefault().ToString("N0") ريال)
</li>
}
else
{
<li class="inactive">
<span>
<svg width="16" height="17" viewBox="0 0 16 17" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path class="price-path-1"
d="M6.344 9.20708L1.81052 6.82365C1.46119 6.64408 1.05752 6.6604 0.731485 6.87263C0.397684 7.09301 0.203613 7.46032 0.203613 7.86844V12.3659C0.203613 13.1414 0.615042 13.8433 1.27488 14.1943L5.8006 16.5778C5.95586 16.6594 6.12664 16.7002 6.29742 16.7002C6.49925 16.7002 6.70109 16.6431 6.87963 16.5288C7.21343 16.3166 7.4075 15.9411 7.4075 15.533V11.0355C7.41527 10.2519 7.00384 9.5499 6.344 9.20708Z"
fill="currentcolor" />
<path class="price-path-2"
d="M15.3846 6.87587C15.0508 6.66372 14.6471 6.63924 14.3056 6.82691L9.77978 9.20956C9.11993 9.56043 8.7085 10.254 8.7085 11.0373V15.5334C8.7085 15.9413 8.90257 16.3167 9.23637 16.5288C9.41492 16.6431 9.61676 16.7002 9.81859 16.7002C9.98938 16.7002 10.1602 16.6594 10.3154 16.5778L14.8412 14.1952C15.5011 13.8443 15.9125 13.1507 15.9125 12.3674V7.87136C15.9125 7.46337 15.7184 7.09618 15.3846 6.87587Z"
fill="currentcolor" />
<path class="price-path-3"
d="M13.9152 2.96146L8.86226 0.219067C8.33036 -0.0730223 7.68564 -0.0730223 7.15375 0.219067L2.10076 2.96146C1.73005 3.1643 1.50439 3.55375 1.50439 4C1.50439 4.43813 1.73005 4.8357 2.10076 5.03854L7.15375 7.78093C7.4197 7.92698 7.71788 8 8.008 8C8.29813 8 8.59631 7.92698 8.86226 7.78093L13.9152 5.03854C14.286 4.8357 14.5116 4.44625 14.5116 4C14.5116 3.55375 14.286 3.1643 13.9152 2.96146Z"
fill="currentcolor" />
</svg>
</span> مشتری جدید
<br> ندارد
</li>
}
@if (item.promotionDetails.Any(w => w.PermissionID == 16))
{
<li>
<span>
<svg width="16" height="17" viewBox="0 0 16 17" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path class="price-path-1"
d="M6.344 9.20708L1.81052 6.82365C1.46119 6.64408 1.05752 6.6604 0.731485 6.87263C0.397684 7.09301 0.203613 7.46032 0.203613 7.86844V12.3659C0.203613 13.1414 0.615042 13.8433 1.27488 14.1943L5.8006 16.5778C5.95586 16.6594 6.12664 16.7002 6.29742 16.7002C6.49925 16.7002 6.70109 16.6431 6.87963 16.5288C7.21343 16.3166 7.4075 15.9411 7.4075 15.533V11.0355C7.41527 10.2519 7.00384 9.5499 6.344 9.20708Z"
fill="currentcolor" />
<path class="price-path-2"
d="M15.3846 6.87587C15.0508 6.66372 14.6471 6.63924 14.3056 6.82691L9.77978 9.20956C9.11993 9.56043 8.7085 10.254 8.7085 11.0373V15.5334C8.7085 15.9413 8.90257 16.3167 9.23637 16.5288C9.41492 16.6431 9.61676 16.7002 9.81859 16.7002C9.98938 16.7002 10.1602 16.6594 10.3154 16.5778L14.8412 14.1952C15.5011 13.8443 15.9125 13.1507 15.9125 12.3674V7.87136C15.9125 7.46337 15.7184 7.09618 15.3846 6.87587Z"
fill="currentcolor" />
<path class="price-path-3"
d="M13.9152 2.96146L8.86226 0.219067C8.33036 -0.0730223 7.68564 -0.0730223 7.15375 0.219067L2.10076 2.96146C1.73005 3.1643 1.50439 3.55375 1.50439 4C1.50439 4.43813 1.73005 4.8357 2.10076 5.03854L7.15375 7.78093C7.4197 7.92698 7.71788 8 8.008 8C8.29813 8 8.59631 7.92698 8.86226 7.78093L13.9152 5.03854C14.286 4.8357 14.5116 4.44625 14.5116 4C14.5116 3.55375 14.286 3.1643 13.9152 2.96146Z"
fill="currentcolor" />
</svg>
</span> سامانه مودیان @item.promotionDetails.Where(w => w.PermissionID == 16).Select(s => s.CreditAmount).FirstOrDefault() ارسال
<br> (هزینه هر ارسال @item.promotionDetails.Where(w => w.PermissionID == 16).Select(s => s.APrice).FirstOrDefault().ToString("N0") ريال)
</li>
}
else
{
<li class="inactive">
<span>
<svg width="16" height="17" viewBox="0 0 16 17" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path class="price-path-1"
d="M6.344 9.20708L1.81052 6.82365C1.46119 6.64408 1.05752 6.6604 0.731485 6.87263C0.397684 7.09301 0.203613 7.46032 0.203613 7.86844V12.3659C0.203613 13.1414 0.615042 13.8433 1.27488 14.1943L5.8006 16.5778C5.95586 16.6594 6.12664 16.7002 6.29742 16.7002C6.49925 16.7002 6.70109 16.6431 6.87963 16.5288C7.21343 16.3166 7.4075 15.9411 7.4075 15.533V11.0355C7.41527 10.2519 7.00384 9.5499 6.344 9.20708Z"
fill="currentcolor" />
<path class="price-path-2"
d="M15.3846 6.87587C15.0508 6.66372 14.6471 6.63924 14.3056 6.82691L9.77978 9.20956C9.11993 9.56043 8.7085 10.254 8.7085 11.0373V15.5334C8.7085 15.9413 8.90257 16.3167 9.23637 16.5288C9.41492 16.6431 9.61676 16.7002 9.81859 16.7002C9.98938 16.7002 10.1602 16.6594 10.3154 16.5778L14.8412 14.1952C15.5011 13.8443 15.9125 13.1507 15.9125 12.3674V7.87136C15.9125 7.46337 15.7184 7.09618 15.3846 6.87587Z"
fill="currentcolor" />
<path class="price-path-3"
d="M13.9152 2.96146L8.86226 0.219067C8.33036 -0.0730223 7.68564 -0.0730223 7.15375 0.219067L2.10076 2.96146C1.73005 3.1643 1.50439 3.55375 1.50439 4C1.50439 4.43813 1.73005 4.8357 2.10076 5.03854L7.15375 7.78093C7.4197 7.92698 7.71788 8 8.008 8C8.29813 8 8.59631 7.92698 8.86226 7.78093L13.9152 5.03854C14.286 4.8357 14.5116 4.44625 14.5116 4C14.5116 3.55375 14.286 3.1643 13.9152 2.96146Z"
fill="currentcolor" />
</svg>
</span> سامانه مودیان
<br> ندارد
</li>
}
</ul>
</div>
<div class="tp-price__btn tp-btn-price">
<span>قیمت: @item.TotalPrice.ToString("N0") ريال</span>
<NavLink >
الان بخرید
</NavLink>
</div>
</div>
</div>
index++;
}
}
</div>
</div>
<a>علاوه بر تعرفه ها میتوانید سیستم هارو برحسب نیاز به صورت تکی هم تهیه کنید</a>
</div>
</div>
</div>
</div>
@code {
public List<PromotionDto> items { get; set; } = new List<PromotionDto>();
protected override async Task OnInitializedAsync()
{
items = await fv.GetPromotion();
items = items.Where(w => w.ID > 0).OrderBy(o => o.ID).ToList();
await base.OnInitializedAsync();
}
}

109
moadiran/Layout/Rank.razor Normal file
View File

@@ -0,0 +1,109 @@

@using global::Shared.DTOs
@inject HttpClient _hc
<div class="tp-rank__area pb-200">
<div class="container">
<div class="row">
<div class="col-xl-5 col-lg-5 order-1 order-lg-1">
<div class="tp-rank__section-box pb-25 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".3s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.3s; animation-name: tpfadeUp;">
<h4 class="tp-section-subtitle">پایه قیمت</h4>
<h3 class="tp-section-title">
سیاست
<br />قیمت گذاری
<br />خدمات
</h3>
</div>
</div>
<div class="col-xl-7 col-lg-7 order-0 order-lg-2">
<div class="tp-rank__wrapper p-relative">
<div class="tp-rank__circle-shape-1 d-none d-sm-block wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".3s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.3s; animation-name: tpfadeUp;">
<img src="img/rank/sky-circle.png" alt="">
</div>
<div class="tp-rank__circle-shape-2 d-none d-sm-block wow tpfadeLeft" data-wow-duration=".9s" data-wow-delay=".5s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.5s; animation-name: tpfadeLeft;">
<img src="img/rank/yellow-circle.png" alt="">
</div>
<div class="tp-rank__circle-shape-3 d-none d-sm-block wow tpfadeRight" data-wow-duration=".9s" data-wow-delay=".4s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.4s; animation-name: tpfadeRight;">
<img src="img/rank/black-circle.png" alt="">
</div>
<div class="tp-rank__circle-shape-4 d-none d-sm-block wow tpfadeIn" data-wow-duration=".9s" data-wow-delay=".7s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.7s; animation-name: tpfadeIn;">
<img src="img/rank/black-sm-circle.png" alt="">
</div>
<div class="tp-rank__circle-shape-5 d-none d-sm-block wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".9s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.9s; animation-name: tpfadeUp;">
<img src="img/rank/black-sm-circle.png" alt="">
</div>
<div class="tp-rank__circle-shape-6 d-none d-sm-block wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".2s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.2s; animation-name: tpfadeUp;">
<img src="img/rank/black-sm-circle.png" alt="">
</div>
<div class="tp-rank__circle-shape-7 d-none d-sm-block wow tpfadeIn" data-wow-duration=".9s" data-wow-delay="1s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 1s; animation-name: tpfadeIn;">
<img src="img/rank/black-sm-circle.png" alt="">
</div>
<div class="tp-rank__bg-shape">
<img class="wow tpfadeRight" data-wow-duration=".9s" data-wow-delay="1.2s" src="img/rank/rank-bg-shape.png" alt="" style="visibility: visible; animation-duration: 0.9s; animation-delay: 1.2s; animation-name: tpfadeRight;">
</div>
<div class="tp-rank__rank-card wow tpfadeRight" data-wow-duration=".9s" data-wow-delay=".7s" style="visibility: visible; animation-duration: 0.9s; animation-delay: 0.7s; animation-name: tpfadeRight;">
<div class="tp-rank__item p-relative z-index">
<div class="tp-rank__company">
<span><img src="img/rank/invoice.png" alt=""></span>
</div>
<div class="tp-rank__company-info">
<a>صدور انواع فاکتور</a><br />
<span>@GetTypeService(3)</span> <span>@GetPriceService(3).ToString("N0") ريال</span>
</div>
</div>
<div class="tp-rank__item p-relative">
<div class="tp-rank__company">
<span><img src="img/rank/Customer.png" alt=""></span>
</div>
<div class="tp-rank__company-info">
<a>مشتری جدید</a><br />
<span>@GetTypeService(5)</span> <span>@GetPriceService(5).ToString("N0") ريال</span>
</div>
</div>
<div class="tp-rank__item p-relative z-index">
<div class="tp-rank__company">
<span><img src="img/rank/item.png" alt=""></span>
</div>
<div class="tp-rank__company-info">
<a>کالای جدید</a><br />
<span>@GetTypeService(4)</span> <span>@GetPriceService(4).ToString("N0") ريال</span>
</div>
</div>
<div class="tp-rank__item p-relative">
<div class="tp-rank__company">
<span><img src="img/rank/Tax.png" alt=""></span>
</div>
<div class="tp-rank__company-info">
<a>سامانه مودیان</a><br />
<span>@GetTypeService(16)</span> <span>@GetPriceService(16).ToString("N0") ريال</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@functions{
private string GetTypeService(int permissionID){
var type = Models.Where(w => w.PermissionID == permissionID).Select(s => s.CalculationType).FirstOrDefault() ;
if (type==null)
type = "";
return type;
}
private decimal GetPriceService(int permissionID)
=> Models.Where(w => w.PermissionID == permissionID).Select(s => s.Price).FirstOrDefault();
}
@code {
List<BasePriceDto> Models = new List<BasePriceDto>();
protected override async Task OnParametersSetAsync()
{
Models = await _hc.GetFromJsonAsync<List<BasePriceDto>>("Base/Pricing");
await base.OnParametersSetAsync();
}
}

View File

@@ -0,0 +1,241 @@
@using global::Shared.DTOs
@using System.Text
@inject HttpClient _hc
@inject IJSRuntime JS
<div class="contact-info-area pb-90" id="TaxTools">
<div class="container">
<div class="row">
</div>
</div>
</div>
<div class="tp-project__area grey-bg pt-50 pb-50 fix" >
<div class="container">
<div class="row gx-0">
<h5 class="inner-section-subtitle">ابزار/سامانه مودیان</h5>
</div>
<div class="row">
<div class="col-12">
<div class="popular-blog-title mb-40">
<h4>1)ساخت فایل CSR</h4>
</div>
</div>
</div>
<div class="row gx-0">
<div class="contact-form-right-warp">
<div class="postbox__comment-form">
<EditForm EditContext="editContext" OnValidSubmit="CreateCsrAndPrivateKey">
<DataAnnotationsValidator />
<div class="postbox__comment-input mb-35">
<ValidationMessage For="()=>modelTaxTools.cn" />
<ValidationMessage For="()=>modelTaxTools.sn" />
<ValidationMessage For="()=>modelTaxTools.company" />
<ValidationMessage For="()=>modelTaxTools.Mobile" />
</div>
<div class="row gx-20">
<div class="col-12">
<div class="postbox__comment-input mb-30">
<InputText style="text-align:center" dir="ltr" @bind-Value="modelTaxTools.cn" id="cn" type="text" class="inputText" required="" />
<span class="floating-label">نام شرکت به حالت فینگلیش</span>
</div>
</div>
<div class="col-12">
<div class="postbox__comment-input mb-30">
<InputText style="text-align:center" @bind-Value="modelTaxTools.sn" id="sn" dir="ltr" type="number" class="inputText" required="" />
<span class="floating-label">شناسه ملی شرکت</span>
</div>
</div>
<div class="col-12">
<div class="postbox__comment-input mb-35">
<InputText style="text-align:center" @bind-Value="modelTaxTools.company" id="company" type="text" class="inputText" required="" />
<span class="floating-label">نام شرکت به فارسی</span>
</div>
</div>
<div class="col-12">
<div class="postbox__comment-input mb-35">
<InputText style="text-align:center" @bind-Value="modelTaxTools.Mobile" dir="ltr" id="Mobile" type="number" class="inputText" required="" />
<span class="floating-label">موبایل</span>
</div>
</div>
<div class="col-xxl-6">
<div class="postbox__btn-box w-50">
<Button Disabled="SpinnerVisible" Type="ButtonType.Submit" Color="ButtonColor.Primary">ایجاد CSR و PrivateKey</Button>
</div>
</div>
@* <div class="col-xxl-6">
<div class="postbox__btn-box">
<a onclick="@ReadPublicKeyFromCER" class="btn btn-outline-primary">2)خواندن PublicKey</a>
</div>
</div> *@
</div>
</EditForm>
<br />
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
<br />
<div class="row">
<div class="col-12">
<div class="popular-blog-title mb-20">
<h4>2)خواندن کلید عمومی</h4>
</div>
<div class="row">
<label style="color:red">
@ErrorReadpublickey
</label>
</div>
<div class="row">
<label>
حداکثر سایز مجاز فایل @maxFileSize بایت:
<InputFile
hidden="@hidden"
OnChange="ReadPublicKeyFromCER" multiple />
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@code {
public string hidden { get; set; }
public bool SpinnerVisible { get; set; } = false;
private long maxFileSize = 1024 * 15;
public string ErrorReadpublickey { get; set; }
private EditContext? editContext;
[SupplyParameterFromForm]
private CsrPrivateKeyDto? modelTaxTools { get; set; } = new CsrPrivateKeyDto();
private ValidationMessageStore? messageStore;
protected override void OnInitialized()
{
SpinnerVisible = false;
hidden = null;
// modelTaxTools ??= new();
// editContext = new(modelTaxTools);
// editContext.OnValidationRequested += HandleValidationRequested;
// messageStore = new(editContext);
editContext = new EditContext(modelTaxTools);
messageStore = new(editContext);
base.OnInitialized();
}
// private void HandleValidationRequested(object? sender,
// ValidationRequestedEventArgs args)
// {
// messageStore?.Clear();
// // messageStore?.Add(() => modelTaxTools.Mobile, "Select at least one.");
// }
}
@functions {
private async Task CreateCsrAndPrivateKey()
{
hidden = "hidden";
SpinnerVisible = true;
var request = await _hc.PostAsJsonAsync("Base/CreateCsrAndPrivateKey", modelTaxTools);
if (request.IsSuccessStatusCode)
{
messageStore?.Clear();
var res = await request.Content.ReadFromJsonAsync<TaxToolsDTO>();
await DownloadFileFromStream(res.Base64csr, $"{modelTaxTools.cn}.{res.typecsr}");
await DownloadFileFromStream(res.Base64key, $"{modelTaxTools.cn}.{res.typekey}");
}
else
{
var error = await request.Content.ReadFromJsonAsync<List<string>>();
messageStore?.Add(() => modelTaxTools.Mobile, error);
}
SpinnerVisible = false;
hidden = null;
}
private async Task ReadPublicKeyFromCER(InputFileChangeEventArgs e)
{
hidden = "hidden";
SpinnerVisible = true;
ErrorReadpublickey = "";
if (e.GetMultipleFiles()[0].Size <= maxFileSize)
{
string Base64Str = "";
using (MemoryStream stream = new MemoryStream())
{
await e.GetMultipleFiles()[0].OpenReadStream(maxFileSize).CopyToAsync(stream);
byte[] Array = stream.ToArray();
Base64Str = Convert.ToBase64String(Array);
}
if (!string.IsNullOrEmpty(Base64Str))
{
var request = await _hc.PostAsJsonAsync("Base/ReadPublicKeyFromCER", Base64Str);
if (request.IsSuccessStatusCode)
{
var res = await request.Content.ReadFromJsonAsync<PublicKeyDTO>();
await DownloadFileFromStream(res.PublicKeyBase64, $"{modelTaxTools.cn}.{res.type}");
}
else
{
ErrorReadpublickey = "خطایی در اجرای عملیات رخ داده";
}
}
}
else
{
ErrorReadpublickey = "حجم فایل بیشتر از حد مجاز می باشد";
}
hidden = null;
SpinnerVisible = false;
}
private Stream GetFileStream(byte[] bytes)
{
hidden = "hidden";
SpinnerVisible = true;
var fileStream = new MemoryStream(bytes);
SpinnerVisible=false;
hidden = null;
return fileStream;
}
private async Task DownloadFileFromStream(string Base64, string FileName)
{
hidden = "hidden";
SpinnerVisible = true;
byte[] bytes = System.Convert.FromBase64String(Base64);
var fileStream = GetFileStream(bytes);
// var fileName = "log.bin";
using var streamRef = new DotNetStreamReference(stream: fileStream);
SpinnerVisible = false ;
hidden = null;
await JS.InvokeVoidAsync("downloadFileFromStream", FileName, streamRef);
}
}
<script>
window.downloadFileFromStream = async (fileName, contentStreamReference) => {
const arrayBuffer = await contentStreamReference.arrayBuffer();
const blob = new Blob([arrayBuffer]);
const url = URL.createObjectURL(blob);
const anchorElement = document.createElement('a');
anchorElement.href = url;
anchorElement.download = fileName ?? '';
anchorElement.click();
anchorElement.remove();
URL.revokeObjectURL(url);
}
</script>

View File

@@ -0,0 +1,252 @@

@inject HttpClient _hc
@layout EmptyLayout
@page "/BlogDetails/{ItemID:int}"
@using global::Shared.DTOs
@using moadiran.Layout
@inject NavigationManager Navigation
<PageTitle>@Item?.Title</PageTitle>
<HeadContent>
<!-- Place favicon.ico in the root directory -->
<link rel="shortcut icon" type="image/x-icon" href="img/favicon.png">
<!-- CSS here -->
<link rel="stylesheet" href="css/bootstrap.rtl.min.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/custom-animation.css">
<link rel="stylesheet" href="css/slick.css">
<link rel="stylesheet" href="css/nice-select.css">
<link rel="stylesheet" href="css/flaticon.css">
<link rel="stylesheet" href="css/swiper-bundle.css">
<link rel="stylesheet" href="css/meanmenu.css">
<link rel="stylesheet" href="css/font-awesome-pro.css">
<link rel="stylesheet" href="css/magnific-popup.css">
<link rel="stylesheet" href="css/spacing.css">
<link rel="stylesheet" href="css/Lanstyle.css">
<link rel="stylesheet" href="css/rtl.css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="FA" />
<meta name="description" content="@description" />
</HeadContent>
<LBlogheader />
<div id="smooth-wrapper">
<div id="smooth-content">
<main>
<!-- breadcrumb-area-start -->
<div style="border-radius: .8em;" 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">
<div class="tp-blog-meta d-flex align-items-center">
<div class="tp-blog-category category-color-1"><span>@Item?.Title.Split(':')[0]</span></div><!--!-->
<div class="tp-blog-date"><span>@Item?.Date</span></div>
</div>
<h4 class="blog-details-banner-title">@Item?.Title.Split(':')[1]</h4>
</div>
<div class="tp-blog-author-info-box d-flex align-items-center">
<div class="tp-blog-avata">
<img src="img/avata/blog-avata-Publisher.png" alt="">
</div>
<div class="tp-blog-author-info">
<h5>مهدی ربیع نژاد</h5>
<span>مدیر سایت</span>
</div>
</div>
</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/@Item?.Photo" width="400" height="400" alt="@Item?.Title">
</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">
@((MarkupString)Item?.Text)
</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__search">
<form action="#">
<div class="sidebar__search-input-2">
<InputText @bind-Value="strSearch" type="text" class="inputText" placeholder="کلمه ای را بنویسید ..." />
<button @onclick="SearchClick">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.01371 15.2219C11.9525 15.2219 15.1456 12.0382 15.1456 8.11096C15.1456 4.18368 11.9525 1 8.01371 1C4.07488 1 0.881836 4.18368 0.881836 8.11096C0.881836 12.0382 4.07488 15.2219 8.01371 15.2219Z" stroke="#5F6168" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M16.9287 16.9996L13.0508 13.1331" stroke="#5F6168" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
</svg>
</button>
</div>
</form>
</div>
</div>
</div>
<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">
@foreach (var item in collectionitem)
{
<ItemBlog___v2 Item="item" />
}
</div>
</div>
</div>
@if (Item != null && !string.IsNullOrEmpty(Item.Tags))
{
<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="tagcloud">
@foreach (var item in Item.Tags.Split('-'))
{
string P = "/ListBlog/" + item;
<NavLink rel="tag" href="@P">@item</NavLink>
}
</div>
</div>
</div>
}
</div>
</div>
</div>
</div>
</div>
<!-- postbox area end -->
</main>
<Lfooter />
</div>
</div>
@code {
//meta tags
public string description { get; set; }
//---------------------
public string strSearch { get; set; }
[Parameter]
public int? ItemID { get; set; }
public List<BlogDto> collectionitem { get; set; } = new List<BlogDto>();
public BlogDtoFull? Item { get; set; }
protected override async Task OnParametersSetAsync()
{
if (ItemID != null)
{
Item = await GetItems();
if (Item == null)
Navigation.NavigateTo("/");
else await GenerateTags();
}
else
Navigation.NavigateTo("/");
await base.OnParametersSetAsync();
}
protected override async Task OnInitializedAsync()
{
var request = await _hc.GetFromJsonAsync<PagingDto<BlogDto>>($"Base/LastBlog?PageIndex=1&PageSize=3");
if (request !=null)
collectionitem = request.list;
await base.OnInitializedAsync();
}
}
@functions{
public async Task SearchClick()
{
if (!string.IsNullOrEmpty(strSearch))
Navigation.NavigateTo("/SearchBlog/" + strSearch);
}
public async Task<BlogDtoFull?> GetItems()
{
var response = await _hc.GetAsync($"Base/GetBlogByID/{ItemID}");
if (!response.IsSuccessStatusCode)
return null;
return await response.Content.ReadFromJsonAsync<BlogDtoFull>();
}
public async Task GenerateTags()
{
description = Item.Description ?? Item.Title;
}
}

View File

@@ -0,0 +1,42 @@
@page
@model moadiran.Pages.ErrorModel
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Error</title>
<link href="~/css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="~/css/site.css" rel="stylesheet" asp-append-version="true" />
</head>
<body>
<div class="main">
<div class="content px-4">
<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>
@if (Model.ShowRequestId)
{
<p>
<strong>Request ID:</strong> <code>@Model.RequestId</code>
</p>
}
<h3>Development Mode</h3>
<p>
Swapping to the <strong>Development</strong> environment displays detailed information about the error that occurred.
</p>
<p>
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
It can result in displaying sensitive information from exceptions to end users.
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
and restarting the app.
</p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,27 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Diagnostics;
namespace moadiran.Pages
{
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
[IgnoreAntiforgeryToken]
public class ErrorModel : PageModel
{
public string? RequestId { get; set; }
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
private readonly ILogger<ErrorModel> _logger;
public ErrorModel(ILogger<ErrorModel> logger)
{
_logger = logger;
}
public void OnGet()
{
RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
}
}
}

415
moadiran/Pages/Home.razor Normal file
View File

@@ -0,0 +1,415 @@

@page "/"
@using moadiran.Layout
<PageTitle>مُؤدیٰران (مدیریت صورتحساب ها)</PageTitle>
<main class="fix">
<!-- tp-slider-area-start -->
<div class="tp-hero__area tp-hero__pl-pr">
<div class="tp-hero__bg p-relative">
<div class="tp-hero-bg tp-hero-bg-single">
<img src="img/hero/hero-frame.png" alt="">
</div>
<div class="tp-hero-shape">
<img class="tp-hero-shape-1" src="img/hero/hero-line-shape.png" alt="">
<img class="tp-hero-shape-2" src="img/hero/hero-line-shape-2.png" alt="">
</div>
<div class="container">
<div class="row justify-content-center">
<div class="col-xl-10">
<div class="tp-hero__content-box text-center z-index-3">
<div class="tp-hero__title-box p-relative">
<h2 class="tp-hero__hero-title">
مُؤدیٰران
</h2>
<h3 >
سامانه ای برای مدیران
</h3>
<h2 class="tp-hero__hero-title tp-title-anim">
</h2>
<h5 style="color:red;" class="wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".7s">
امتحانش رایگانه
</h5>
<div class="tp-hero__title-shape d-none d-sm-block">
<svg width="491" height="24" viewBox="0 0 491 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<path class="line1" fill-rule="evenodd" clip-rule="evenodd"
d="M208.549 3.29849C185.59 4.08616 162.901 5.05468 140.776 6.11351C109.455 7.61138 78.1462 9.16091 47.0261 11.6143C37.2302 12.3891 27.2823 12.8797 17.5476 13.8482C11.4368 14.4551 3.334 15.3201 2.27061 15.5009C1.71441 15.6042 1.47176 15.7593 1.39336 15.8109C0.842061 16.1725 0.942652 16.521 1.25383 16.7921C1.37879 16.9084 1.69478 17.1925 2.57195 17.2313C61.2348 19.8784 121.221 14.7133 179.955 14.171C281.81 13.2413 386.752 16.9343 487.799 24.9918C488.681 25.0564 489.539 24.7334 489.661 24.2557C489.808 23.7908 489.171 23.3389 488.289 23.2743C387.071 15.2039 281.957 11.498 179.906 12.4406C125.168 12.9442 69.3499 17.4766 14.5363 15.9271C15.7957 15.798 17.0307 15.6688 18.1578 15.5526C27.8533 14.5841 37.7594 14.1064 47.5162 13.3316C78.5701 10.8782 109.815 9.32872 141.095 7.84376C179.906 5.98434 220.408 4.38316 261.228 3.63423C275.831 3.75044 290.386 3.86671 304.94 4.00875C336.425 4.31865 368.057 5.22254 399.469 6.43633C408.927 6.8108 418.385 7.19814 427.842 7.53387C430.979 7.65009 439.064 7.98576 440.191 7.95993C441.588 7.93411 441.857 7.31436 441.882 7.21106C441.955 6.97863 441.906 6.65579 441.22 6.38463C441.147 6.34589 440.706 6.21668 439.726 6.13921C382.611 1.56813 321.626 0.806405 261.277 1.90398C197.621 1.42621 133.719 1.21951 70.2247 1C69.3157 1 68.5733 1.38744 68.5659 1.8652C68.561 2.34297 69.2935 2.73042 70.2026 2.74333C116.178 2.89828 162.387 3.05315 208.549 3.29849Z"
fill="none" stroke="none" />
</svg>
</div>
</div>
<div class="tp-hero__input p-relative wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".5s">
<form action="#">
<p class="wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".7s">
مدیریت صورتحساب ها و ارسال به سامانه مودیان
</p>
<NavLink class="tp-btn" href="Sign-in">
<span>شروع کنید</span>
<b></b>
</NavLink>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tp-hero__bottom z-index-5">
<div class="container">
<div class="row justify-content-center">
<div class="col-xl-10">
<div class="tp-hero__thumb-wrapper-main p-relative">
<div class="tp-hero__shape-img-1 d-none d-xl-block">
<img src="img/hero/hero-shape-1.png" alt="">
</div>
<div class="tp-hero__shape-img-2 d-none d-xl-block">
<img src="img/hero/hero-shape-2.png" alt="">
</div>
<div>
<div class="tp-hero__thumb-wrapper d-none d-md-block p-relative">
<div class="row">
<div class="col-8">
<div class="tp-hero__thumb-box">
<div class="row">
<div class="col-md-12">
<div class="tp-hero__thumb mb-20">
<img class="w-100" src="img/hero/hero-sm-1.jpg" alt="">
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="tp-hero__thumb tp-hero__sm-img">
<img class="w-100" src="img/hero/hero-sm-3.png" alt="">
</div>
</div>
<div class="col-md-8">
<div class="tp-hero__thumb">
<img class="w-100" src="img/hero/hero-sm-4.jpg" alt="">
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="tp-hero__thumb-box">
<div class="tp-hero__thumb">
<img class="w-100" src="img/hero/hero-sm-2.jpg" alt="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- tp-slider-area-end -->
<!-- tp-feature-area-start -->
<div class="tp-feature__area tp-feature__pt-pb pt-165 pb-170 p-relative">
<div class="tp-feature__bottom-shape">
<img src="img/feature/fea-bg-shape-1.png" alt="">
</div>
<div class="container">
<div class="row justify-content-center">
<div class="col-xl-6 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".2s">
<div class="tp-feature__section-box text-center mb-55 tp-title-anim">
<h2 class="tp-section-title">ویژگی ها</h2>
<p>اعتماد شما سرمایه است</p>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-4 col-lg-4 col-md-6 mb-30 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".4s">
<div id="divtest" class="tp-feature__item">
<div class="tp-feature__icon">
<img src="img/feature/fea-icon-1.png" alt="">
</div>
<h3 class="tp-feature__title-sm">گزارشات متنوع آماری</h3>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 mb-30 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".6s">
<div class="tp-feature__item">
<div class="tp-feature__icon">
<img src="img/feature/fea-icon-2.png" alt="">
</div>
<h3 class="tp-feature__title-sm">دسترسی در هر زمان و مکان</h3>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 mb-30 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".8s">
<div class="tp-feature__item">
<div class="tp-feature__icon">
<img src="img/feature/fea-icon-3.png" alt="">
</div>
<h3 class="tp-feature__title-sm">امنیت و حفظ اطلاعات</h3>
</div>
</div>
</div>
</div>
</div>
<!-- tp-feature-area-end -->
<!-- tp-about-area-start -->
<div class="tp-about__area tp-about__pt-pb pt-100 pb-160" id="about">
<div class="container">
<div class="row align-items-center">
<div class="col-xl-6 col-lg-6 wow tpfadeLeft" data-wow-duration=".9s" data-wow-delay=".2s">
<div class="tp-about__img-wrapper text-center text-lg-end p-relative">
<div class="tp-about__bg-shape">
<img src="img/about/about-bg-shape.png" alt="">
</div>
<div class="tp-about__main-img z-index">
<img src="img/about/about-2.jpg" alt="about-2">
</div>
<div class="tp-about__sub-img-1 d-none d-sm-block z-index-3">
<img src="img/about/about-1.jpg" alt="">
</div>
<div class="tp-about__sub-img-2 d-none d-sm-block">
<img src="img/about/about-3.jpg" alt="about-3">
</div>
<div class="tp-about__sub-img-3 d-none d-sm-block z-index-3">
<img src="img/about/about-5.png" alt="about-5">
</div>
</div>
</div>
<div class="col-xl-6 col-lg-6 wow tpfadeRight" data-wow-duration=".9s" data-wow-delay=".6s">
<div class="tp-about__right">
<div class="tp-about__section-box">
<h5 class="tp-section-title mb-15">
راه حلی برای ارسال صورتحساب ها به سامانه مودیان
</h5>
<p>
از پائیز سال 1402 سامانه ای توسط امور مالیاتی کشور راه اندازی شد که تا قانون مالیاتی کشور را بهتر مدیریت کنند.
</p>
<p>
در این سامانه صاحبان کسب و کار موظف شدند تا صورتحساب های خود را بعد از فروش قطعی به سازمان اعلام کنند.
</p>
<p>
بر همین اساس سامانه مُؤدیٰران آماده شد تا کسب و کارها بیشتر با سامانه مودیان آشنا شوند و با دقدقه کمتر و آسوده صورتحساب های خود را اعلام کنند.
</p>
<p>
از طرفی هم مُؤدیٰران با گزارشات متنوع می توانند صاحبان کسب و کار را در مسیر پیشرفت هم یاری کند.
</p>
</div>
<div class="tp-about__list">
<ul>
<li><i class="fal fa-check"></i>تجزیه و تحلیل</li>
<li><i class="fal fa-check"></i>مدیریت زمان</li>
<li><i class="fal fa-check"></i>کاهش خطای انسانی</li>
</ul>
</div>
<div class="tp-about__btn">
<NavLink class="tp-btn" href="Sign-in">
<span>شروع کنید</span>
<b></b>
</NavLink>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- tp-about-area-end -->
<Speech/>
<!-- tp-services-area-start -->
<div class="tp-service__area p-relative fix" id="services">
<div class="tp-service__grey-shape grey-bg"></div>
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-8">
<div class="tp-service__section-box mb-50 text-center tp-title-anim">
<h2 class="tp-section-title">خدمات</h2>
</div>
</div>
</div>
<div class="row">
<div class="col-xl-4 col-lg-4 col-md-6 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".4s">
<div class="tp-service__item mb-30">
<div class="tp-service__icon">
<img src="img/service/sv-icon-1.png" alt="">
</div>
<div class="tp-service__content">
<h3 class="tp-service__title-sm tp-orange-color">
<a href="service-details.html">
سیستم فروش
</a>
</h3>
<p>صدور فاکتور در انواع حالت و وضعیت ها <br />(طبق استاندارد سازمان امور مالیاتی کشور)</p>
</div>
<div class="tp-service__link">
<a href="service-details.html">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" class="mirror" xmlns="http://www.w3.org/2000/svg">
<path d="M1.00098 7H13.001" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M7.00098 1L13.001 7L7.00098 13" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".6s">
<div class="tp-service__item mb-30">
<div class="tp-service__icon">
<img src="img/service/sv-icon-2.png" alt="">
</div>
<div class="tp-service__content">
<h3 class="tp-service__title-sm tp-theme-color">
<a href="service-details.html">
کالاها
</a>
</h3>
<p>لیست کامل از کالاهای قابل فروش <br />(طبق استاندارد سازمان امور مالیاتی کشور)</p>
</div>
<div class="tp-service__link">
<a href="service-details.html">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" class="mirror" xmlns="http://www.w3.org/2000/svg">
<path d="M1.00098 7H13.001" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M7.00098 1L13.001 7L7.00098 13" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".9s">
<div class="tp-service__item mb-30">
<div class="tp-service__icon">
<img src="img/service/sv-icon-5.png" alt="">
</div>
<div class="tp-service__content">
<h3 class="tp-service__title-sm tp-yellow-color">
<a href="service-details.html">
مشتریان
</a>
</h3>
<p>بانکی کامل از اطلاعات مشتریان <br />(طبق استاندارد سازمان امور مالیاتی کشور)</p>
</div>
<div class="tp-service__link">
<a href="service-details.html">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" class="mirror" xmlns="http://www.w3.org/2000/svg">
<path d="M1.00098 7H13.001" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M7.00098 1L13.001 7L7.00098 13" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".8s">
<div class="tp-service__item mb-30">
<div class="tp-service__icon">
<img src="img/service/sv-icon-4.png" alt="">
</div>
<div class="tp-service__content">
<h3 class="tp-service__title-sm tp-green-color">
<a href="service-details.html">
سامانه مودیان
</a>
</h3>
<p>اعلام فروش و برگشت به سازمان مالیاتی <br /> (پشتیبانی از همه الگو و صورتحساب ها)</p>
</div>
<div class="tp-service__link">
<a href="service-details.html">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" class="mirror" xmlns="http://www.w3.org/2000/svg">
<path d="M1.00098 7H13.001" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M7.00098 1L13.001 7L7.00098 13" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay=".7s">
<div class="tp-service__item mb-30">
<div class="tp-service__icon">
<img src="img/service/sv-icon-3.png" alt="">
</div>
<div class="tp-service__content">
<h3 class="tp-service__title-sm tp-purple-color">
<a href="service-details.html">
گزارشات
</a>
</h3>
<p>اطلاعات آماری از عملیات سیستم ها</p>
<br />
</div>
<div class="tp-service__link">
<a href="service-details.html">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" class="mirror" xmlns="http://www.w3.org/2000/svg">
<path d="M1.00098 7H13.001" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
<path d="M7.00098 1L13.001 7L7.00098 13" stroke="currentColor" stroke-width="1.5"
stroke-linecap="round" stroke-linejoin="round" />
</svg>
</a>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-4 col-md-6 wow tpfadeUp" data-wow-duration=".9s" data-wow-delay="1s">
<div class="tp-service__dashboard" data-background="image.jpg" style="background-image: url('img/service/sv-bg.jpg');">
<div class="tp-service__top-content">
<p>راه حلی برای مدیریت بهتر صورتحساب ها</p>
<NavLink class="tp-btn-orange" href="Sign-in">
<span>شروع کنید</span>
<b></b>
</NavLink>
</div>
<div class="tp-service__dashdboard-sm-img">
<img class="wow tpfadeRight" data-wow-duration=".9s" data-wow-delay=".7s" src="img/service/sv-dashbord.png" alt="">
</div>
</div>
</div>
</div>
</div>
</div>
<!-- tp-services-area-end -->
<!-- -->
<div style="-webkit-filter: blur(3px); opacity: .8;">
<!-- tp-price-area-start -->
<Price />
<!-- tp-price-area-end -->
<!-- tp-rank-area-start -->
</div>
<Rank />
<!-- tp-rank-area-end -->
<!-- tp-TaxTools-start-->
<TaxTools />
<!--tp-TaxTools-end-->
<!-- tp-question-start-->
<LQuestion PageIndex="1" />
<!--tp-question-end-->
<!-- tp-project-area-start -->
<Blog />
<!-- tp-project-area-end -->
<!-- tp-contact-area-Start -->
<Contact />
<!-- tp-contact-area-end -->
</main>

View File

@@ -0,0 +1,127 @@

@inject HttpClient _hc
@layout BlogLayout
@page "/ListBlog"
@page "/ListBlog/{Tag}"
@page "/SearchBlog/{itemSearch}"
@using moadiran.Layout
@using global::Shared.DTOs
@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>
</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>
<!-- 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>
</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">
@for (int i = 0; i < request?.list.Count; i++)
{
<ItemBlog Item="request.list[i]" />
}
</div>
<nav aria-label="Page navigation">
<br />
<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>
@code {
[Parameter]
public string? Tag { get; set; }
[Parameter]
public string? itemSearch { get; set; }
[Parameter,SupplyParameterFromQuery]
public int? PageIndex { get; set; }
public PagingDto<BlogDto>? request { get; set; }
protected override async Task OnParametersSetAsync()
{
if (PageIndex == null) PageIndex = 1;
string url = $"Base/LastBlog?PageIndex={PageIndex ?? 1}&PageSize=6";
if (!string.IsNullOrEmpty(itemSearch)) url += $" &ItemSearch={itemSearch}";
else if (!string.IsNullOrEmpty(Tag)) url += $" &Tag={Tag}";
request = await _hc.GetFromJsonAsync<PagingDto<BlogDto>>(url);
await base.OnParametersSetAsync();
}
}

View File

@@ -0,0 +1,42 @@
 <!-- tp-services-area-start -->
<div class="tp-about__area tp-about__pt-pb pt-100 pb-160">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-8">
<div class="tp-service__section-box mb-50 text-center tp-title-anim">
<h2 class="tp-section-title">درباره سامانه مُؤدیٰران</h2>
</div>
</div>
</div>
<div class="row">
<div style="text-align: justify;text-justify: inter-word;">
<p>
سامانه مودیران برای راحتی کاربری با سامانه مودیان طراحی شده است و هدف اصلی ما هم افزایش دانش مالیاتی می باشد.
<br />
سامانه مودیران در قدم اول کاملا رایگان در اختیار مودیان عزیر قرار میگیرد تا هم بتوانند سیستم را با توجه به نیاز خود سنجش کنند و هم ما بتوانیم نیاز هارا شناسایی و بهبود ببخشیم.
</p>
<p>
ما سعی بر این داشته و داریم که تا سامانه مودیران طبق استاندارد های سازمان امورمایاتی و سامانه مودیان پیاده سازی و بروزرسانی شود
</p>
<p>
طرح فروشی برای این سامانه در نظر گرفته شده به این صورت که تمام سرویس ها به صورت تکی/ واحدی می باشد یعنی شما میتوانید یا پرداخت یک هزینه اندک یک صورتحساب بسازید و ارسال کنید یعنی براساس نیاز خود تهیه و استفاده میکنید و نیاز به پرداخت هزینه های هنگفت دوره ای برای نگه داری سرور یا سامانه های گران قیمت ندارید.
</p>
<p>
استفاده از سامانه مودیران فقط به یک شماره همراه نیاز دارد ،شما با ثبت یک شماره همراه در سامانه ثبت نام میکنید و مادم العمر و در هر مکان به آن دسترسی دارید
</p>
<p>
بهتره بدانید برای بروزرسانی، استفاده از قابلیت های جدید سامانه مودیران نیاز به پرداخت هیج هزینه ای نمی باشد
</p>
<p>
در زمان ثبت نام ،به کاربری شما 5 کالا جدید،5 مشتری جدید،5 صورتحساب جدید و 5 ارسال به سامانه مودیان داده میشود که میتوانید کالا،مشتری و صورتحساب جدید بسازید و به سامانه مودیان ارسال کنید.کیف پول شما هم به مبلغ 50هزار تومان شارژ میشود که از آن برای شارژ مجدد هر سرویس استفاده کنید
</p>
<h6 style="color:dodgerblue" dir="ltr">
به امید اینکه بتوانیم موثر باشیم
</h6>
</div>
</div>
</div>
</div>
<!-- tp-services-area-end -->

View File

@@ -0,0 +1,8 @@
@page "/"
@namespace moadiran.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
Layout = "_Layout";
}
<component type="typeof(App)" render-mode="ServerPrerendered" />

View File

@@ -0,0 +1,76 @@
@using Microsoft.AspNetCore.Components.Web
@namespace moadiran.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@inject Fixedvalues fv;
<!DOCTYPE html>
<html class="no-js" lang="zxx" dir="rtl">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>مُؤدیٰران (مدیریت صورتحساب ها)</title>
<base href="/" />
<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
<link rel="stylesheet" href="css/app.css" />
<link rel="icon" type="image/png" href="img/logo/siyahe.png" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet" />
<!--<link href="_content/Blazor.Bootstrap/blazor.bootstrap.css" rel="stylesheet" />-->
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
</head>
<body>
@RenderBody()
<div id="blazor-error-ui">
<environment include="Staging,Production">
An error has occurred. This application may no longer respond until reloaded.
</environment>
<environment include="Development">
An unhandled exception has occurred. See browser dev tools for details.
</environment>
<a href="" class="reload">Reload</a>
<a class="dismiss">🗙</a>
</div>
<script src="_framework/blazor.server.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
<!-- Add chart.js reference if chart components are used in your application. -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.0.1/chart.umd.js" integrity="sha512-gQhCDsnnnUfaRzD8k1L5llCCV6O9HN09zClIzzeJ8OJ9MpGmIlCxm+pdCkqTwqJ4JcjbojFr79rl2F1mzcoLMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<!-- Add chartjs-plugin-datalabels.min.js reference if chart components with data label feature is used in your application. -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartjs-plugin-datalabels/2.2.0/chartjs-plugin-datalabels.min.js" integrity="sha512-JPcRR8yFa8mmCsfrw4TNte1ZvF1e3+1SdGMslZvmrzDYxS69J7J49vkFL8u6u8PlPJK+H3voElBtUCzaXj+6ig==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<!-- Add sortable.js reference if SortableList component is used in your application. -->
<script src="https://cdn.jsdelivr.net/npm/sortablejs@latest/Sortable.min.js"></script>
<script src="_content/Blazor.Bootstrap/blazor.bootstrap.js"></script>
<script src="js/jquery.js"></script>
<script src="js/waypoints.js"></script>
<script src="js/bootstrap.bundle.min.js"></script>
<script src="js/wow.js"></script>
<script src="js/slick.min.js"></script>
<script src="js/magnific-popup.js"></script>
<script src="js/counterup.js"></script>
<script src="js/nice-select.js"></script>
<script src="js/swiper-bundle.js"></script>
<script src="js/meanmenu.js"></script>
<script src="js/tilt.jquery.js"></script>
<script src="js/isotope-pkgd.js"></script>
<script src="js/imagesloaded-pkgd.js"></script>
<script src="js/ajax-form.js"></script>
<script src="js/gsap.min.js"></script>
<script src="js/ScrollTrigger.min.js"></script>
<script src="js/ScrollSmoother.min.js"></script>
<script src="js/split-text.min.js"></script>
<script src="js/main.js"></script>
</body>
</html>

View File

@@ -0,0 +1,77 @@
.page {
position: relative;
display: flex;
flex-direction: column;
}
main {
flex: 1;
}
.sidebar {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.top-row {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
justify-content: flex-end;
height: 3.5rem;
display: flex;
align-items: center;
}
.top-row ::deep a, .top-row ::deep .btn-link {
white-space: nowrap;
margin-left: 1.5rem;
text-decoration: none;
}
.top-row ::deep a:hover, .top-row ::deep .btn-link:hover {
text-decoration: underline;
}
.top-row ::deep a:first-child {
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 640.98px) {
.top-row {
justify-content: space-between;
}
.top-row ::deep a, .top-row ::deep .btn-link {
margin-left: 0;
}
}
@media (min-width: 641px) {
.page {
flex-direction: row;
}
.sidebar {
width: 250px;
height: 100vh;
position: sticky;
top: 0;
}
.top-row {
position: sticky;
top: 0;
z-index: 1;
}
.top-row.auth ::deep a:first-child {
flex: 1;
text-align: right;
width: 0;
}
.top-row, article {
padding-left: 2rem !important;
padding-right: 1.5rem !important;
}
}

75
moadiran/Program.cs Normal file
View File

@@ -0,0 +1,75 @@
using moadiran;
using moadiran.Data;
using moadiran.Services;
using Shared.DTOs;
using System.Globalization;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton<WeatherForecastService>();
builder.Services.AddBlazorBootstrap();
builder.Services.AddScoped<HttpClientController>();
builder.Services.AddScoped<Fixedvalues>();
builder.Services.AddScoped(sp => new UserAuthenticationDTO()
{
Company = new CompanyAuthenticationDTO()
{
ID = 0,
IsAdmin = false,
Logo = "",
Name = ""
},
FullName = "",
Photo = "",
Token = "",
UserName = "",
enterDate = new DateTime(),
exitDate = new DateTime(),
});
// Server
//builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("http://195.88.208.142:7075/api/") });
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://moadiran.ir:444/api/") });
//Home
//builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("http://localhost:5271/api/") });
//farzan
//builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("http://localhost:5271/api/") });
CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("fa-Ir");
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.MapBlazorHub();
app.MapFallbackToPage("/_Host");
await app.RunAsync();

View File

@@ -0,0 +1,28 @@
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:60550",
"sslPort": 44360
}
},
"profiles": {
"moadiran": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:7050;http://localhost:5219",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

View File

@@ -0,0 +1,12 @@
namespace moadiran.Services
{
public static class ExMethod
{
public static T Clone<T>(this T obj)
{
var inst = obj.GetType().GetMethod("MemberwiseClone", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
return (T)inst?.Invoke(obj, null);
}
}
}

View File

@@ -0,0 +1,65 @@
using Microsoft.AspNetCore.Components;
using System.Text;
namespace moadiran.Services
{
public class HttpClientController
{
public readonly HttpClient _hc;
public readonly NavigationManager _nav;
public HttpClientController(HttpClient hc, NavigationManager nav)
{
_hc = hc;
_nav = nav;
}
public async Task<HttpResponseMessage> Get(string route)
{
var request = await _hc.GetAsync(route);
if (request.StatusCode==System.Net.HttpStatusCode.Unauthorized)
_nav.NavigateTo("/Sign-in/unon");
return request;
}
public async Task<HttpResponseMessage> Delete(string route)
{
var request = await _hc.DeleteAsync(route);
if (request.StatusCode == System.Net.HttpStatusCode.Unauthorized)
_nav.NavigateTo("/Sign-in/unon");
return request;
}
public async Task<HttpResponseMessage> Post<T>(string route,T mode)
{
var request = await _hc.PostAsJsonAsync(route,mode);
if (request.StatusCode == System.Net.HttpStatusCode.Unauthorized)
_nav.NavigateTo("/Sign-in/unon");
return request;
}
public async Task<HttpResponseMessage> Post(string route)
{
var jsonString = "{\"appid\":1,\"platformid\":1,\"rating\":3}";
var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json");
var request = await _hc.PostAsync(route, httpContent);
if (request.StatusCode == System.Net.HttpStatusCode.Unauthorized)
_nav.NavigateTo("/Sign-in/unon");
return request;
}
public async Task<HttpResponseMessage> Put<T>(string route, T mode)
{
var request = await _hc.PutAsJsonAsync(route, mode);
if (request.StatusCode == System.Net.HttpStatusCode.Unauthorized)
_nav.NavigateTo("/Sign-in/unon");
return request;
}
public async Task<HttpResponseMessage> Put(string route)
{
var jsonString = "{\"appid\":1,\"platformid\":1,\"rating\":3}";
var httpContent = new StringContent(jsonString, Encoding.UTF8, "application/json");
var response = await _hc.PutAsync(route, httpContent);
if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized)
_nav.NavigateTo("/Sign-in/unon");
return response;
}
}
}

View File

@@ -0,0 +1,43 @@
@using moadiran.Layout
@inherits LayoutComponentBase
@inject Fixedvalues fv;
<HeadContent>
<!-- Place favicon.ico in the root directory -->
<link rel="icon" type="image/png" href="img/logo/siyahe.png" />
<!-- CSS here -->
<link rel="stylesheet" href="css/bootstrap.rtl.min.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/custom-animation.css">
<link rel="stylesheet" href="css/slick.css">
<link rel="stylesheet" href="css/nice-select.css">
<link rel="stylesheet" href="css/flaticon.css">
<link rel="stylesheet" href="css/swiper-bundle.css">
<link rel="stylesheet" href="css/meanmenu.css">
<link rel="stylesheet" href="css/font-awesome-pro.css">
<link rel="stylesheet" href="css/magnific-popup.css">
<link rel="stylesheet" href="css/spacing.css">
<link rel="stylesheet" href="css/Lanstyle.css">
<link rel="stylesheet" href="css/rtl.css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="FA" />
<meta name="description" content="@description" />
</HeadContent>
<Lheader />
<div id="smooth-wrapper">
<div id="smooth-content">
@Body
<Lfooter />
</div>
</div>
@code {
public string description { get; set; } = "سامانه ای برای مدیریت صورتحساب های فروش با الگوی سازمان امورمالیاتی کشور و ارسال صورت حساب به سامانه مودیان";
protected override async Task OnInitializedAsync()
{
await fv.SetUlr("Main");
await base.OnInitializedAsync();
}
}

View File

@@ -0,0 +1,70 @@
.page {
position: relative;
display: flex;
flex-direction: column;
}
main {
flex: 1;
}
.sidebar {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.top-row {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
justify-content: flex-end;
height: 3.5rem;
display: flex;
align-items: center;
}
.top-row ::deep a, .top-row .btn-link {
white-space: nowrap;
margin-left: 1.5rem;
}
.top-row a:first-child {
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 640.98px) {
.top-row:not(.auth) {
display: none;
}
.top-row.auth {
justify-content: space-between;
}
.top-row a, .top-row .btn-link {
margin-left: 0;
}
}
@media (min-width: 641px) {
.page {
flex-direction: row;
}
.sidebar {
width: 250px;
height: 100vh;
position: sticky;
top: 0;
}
.top-row {
position: sticky;
top: 0;
z-index: 1;
}
.top-row, article {
padding-left: 2rem !important;
padding-right: 1.5rem !important;
}
}

11
moadiran/_Imports.razor Normal file
View File

@@ -0,0 +1,11 @@
@using System.Net.Http
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using moadiran
@using moadiran.Shared
@using BlazorBootstrap;

View File

@@ -0,0 +1,9 @@
{
"DetailedErrors": true,
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

View File

@@ -0,0 +1,9 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

16
moadiran/moadiran.csproj Normal file
View File

@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Blazor.Bootstrap" Version="2.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Shared\Shared.csproj" />
</ItemGroup>
</Project>

File diff suppressed because it is too large Load Diff

3137
moadiran/wwwroot/css/animate.css vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,177 @@
html, body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
h1:focus {
outline: none;
}
a, .btn-link {
color: #0071c1;
}
.btn-primary {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}
.content {
padding-top: 1.1rem;
}
.valid.modified:not([type=checkbox]) {
outline: 1px solid #26b050;
}
.invalid {
outline: 1px solid red;
}
.validation-message {
color: red;
}
#blazor-error-ui {
background: lightyellow;
bottom: 0;
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
display: none;
left: 0;
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
position: fixed;
width: 100%;
z-index: 1000;
}
#blazor-error-ui .dismiss {
cursor: pointer;
position: absolute;
right: 0.75rem;
top: 0.5rem;
}
.blazor-error-boundary {
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
padding: 1rem 1rem 1rem 3.7rem;
color: white;
}
.blazor-error-boundary::after {
content: "An error has occurred."
}
.loading-progress {
position: relative;
display: block;
width: 8rem;
height: 8rem;
margin: 20vh auto 1rem auto;
}
.loading-progress circle {
fill: none;
stroke: #e0e0e0;
stroke-width: 0.6rem;
transform-origin: 50% 50%;
transform: rotate(-90deg);
}
.loading-progress circle:last-child {
stroke: #1b6ec2;
stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
transition: stroke-dasharray 0.05s ease-in-out;
}
.loading-progress-text {
position: absolute;
text-align: center;
font-weight: bold;
inset: calc(20vh + 3.25rem) 0 auto 0.2rem;
}
.loading-progress-text:after {
content: var(--blazor-load-percentage-text, "Loading");
}
code {
color: #c02d76;
}
.multi-button {
background-color: white;
border: 1px solid white;
border-radius: 14px;
padding: 7px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1), 0 6px 15px 0 rgba(0, 0, 0, 0.1);
place-items: center;
}
#cut {
background-color: rgb(85,131,241);
border: 1px solid rgb(85,131,241);
}
#cut {
background-color: rgb(85,131,241);
border: 1px solid rgb(85,131,241);
}
#copy {
background-color: rgb(39,166,75);
border: 1px solid rgb(39,166,75);
}
#paste {
background-color: rgb(242,185,42);
border: 1px solid rgb(242,185,42);
}
#sred {
background-color: rgb(242 42 42);
border: 1px solid rgb(242 42 42);
}
#sbg {
background-color: rgb(122, 188, 188);
border: 1px solid rgb(122, 188, 188);
}
#sred1 {
background-color: #ff7373;
border: 1px solid #ff7373;
}
.button {
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.09), 0 6px 15px 0 rgba(0, 0, 0, 0.09);
padding: 10px 17px 10px 17px;
font: 15px Ubuntu;
color: white;
border-radius: 7px;
} .button span {
cursor: pointer;
display: inline-block;
position: relative;
transition: 0.5s;
} .button:hover span {
padding-right: 25px;
} .button:hover span:after {
opacity: 1;
right: 0;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
/* display: none; <- Crashes Chrome on hover */
-webkit-appearance: none;
margin: 0; /* <-- Apparently some margin are still there even though it's hidden */
}
input[type=number] {
-moz-appearance: textfield; /* Firefox */
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,893 @@
.animated {
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
@-webkit-keyframes jump {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
40% {
-webkit-transform: translate3d(0, 50%, 0);
transform: translate3d(0, 50%, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@keyframes jump {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
40% {
-webkit-transform: translate3d(0, 50%, 0);
transform: translate3d(0, 50%, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@-webkit-keyframes jumpTwo {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
40% {
-webkit-transform: translate3d(0, 20px, 0);
transform: translate3d(0, 20px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@keyframes jumpTwo {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
40% {
-webkit-transform: translate3d(0, 20px, 0);
transform: translate3d(0, 40px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@-webkit-keyframes jumpThree {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
40% {
-webkit-transform: translate3d(0, -20px, 0);
transform: translate3d(0, -20px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@keyframes jumpThree {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
40% {
-webkit-transform: translate3d(0, -20px, 0);
transform: translate3d(0, -20px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@-webkit-keyframes jumpFour {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
50% {
-webkit-transform: translate3d(0, -10px, 0);
transform: translate3d(0, -10px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@keyframes jumpFour {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
50% {
-webkit-transform: translate3d(0, -10px, 0);
transform: translate3d(0, -10px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@-webkit-keyframes jumpFive {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
50% {
-webkit-transform: translate3d(0, 10px, 0);
transform: translate3d(0, 10px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@keyframes jumpFive {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
50% {
-webkit-transform: translate3d(0, 10px, 0);
transform: translate3d(0, 10px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@-webkit-keyframes prXOne {
0% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
50% {
-webkit-transform: translateX(-15px);
transform: translateX(-15px)
}
100% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
}
@keyframes prXOne {
0% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
50% {
-webkit-transform: translateX(-15px);
transform: translateX(-15px)
}
100% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
}
@-webkit-keyframes prXTwo {
0% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
50% {
-webkit-transform: translateX(15px);
transform: translateX(15px)
}
100% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
}
@keyframes prXTwo {
0% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
50% {
-webkit-transform: translateX(15px);
transform: translateX(15px)
}
100% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
}
@-webkit-keyframes rotated {
0% {
-webkit-transform: rotate(0);
transform: rotate(0)
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg)
}
}
@keyframes rotated {
0% {
-webkit-transform: rotate(0);
transform: rotate(0)
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg)
}
}
@-webkit-keyframes rotatedTwo {
0% {
-webkit-transform: rotate(0);
transform: rotate(0)
}
100% {
-webkit-transform: rotate(-360deg);
transform: rotate(-360deg)
}
}
@keyframes rotatedTwo {
0% {
-webkit-transform: rotate(0);
transform: rotate(0)
}
100% {
-webkit-transform: rotate(-360deg);
transform: rotate(-360deg)
}
}
@-webkit-keyframes rotatedHalf {
0% {
-webkit-transform: rotate(0);
transform: rotate(0)
}
50% {
-webkit-transform: rotate(90deg);
transform: rotate(90deg)
}
100% {
-webkit-transform: rotate(0);
transform: rotate(0)
}
}
@keyframes rotatedHalf {
0% {
-webkit-transform: rotate(0);
transform: rotate(0)
}
50% {
-webkit-transform: rotate(90deg);
transform: rotate(90deg)
}
100% {
-webkit-transform: rotate(0);
transform: rotate(0)
}
}
@-webkit-keyframes rotatedHalfTwo {
0% {
-webkit-transform: rotate(-90deg);
transform: rotate(-90deg)
}
100% {
-webkit-transform: rotate(90deg);
transform: rotate(90deg)
}
}
@keyframes rotatedHalfTwo {
0% {
-webkit-transform: rotate(-90deg);
transform: rotate(-90deg)
}
100% {
-webkit-transform: rotate(90deg);
transform: rotate(90deg)
}
}
@-webkit-keyframes scale-upOne {
0% {
-webkit-transform: scale(1);
transform: scale(1)
}
50% {
-webkit-transform: scale(.85);
transform: scale(.85)
}
100% {
-webkit-transform: scale(1);
transform: scale(1)
}
}
@keyframes scale-upOne {
0% {
-webkit-transform: scale(1);
transform: scale(1)
}
50% {
-webkit-transform: scale(.85);
transform: scale(.85)
}
100% {
-webkit-transform: scale(1);
transform: scale(1)
}
}
@-webkit-keyframes scale-right {
0% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
50% {
-webkit-transform: translateX(20%);
transform: translateX(20%)
}
100% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
}
@keyframes tpfadeInDown {
0% {
opacity: 0;
-webkit-transform: translateX(-20px);
transform: translateX(-20px);
}
100% {
opacity: 1;
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
@keyframes scale-right {
0% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
50% {
-webkit-transform: translateX(20%);
transform: translateX(20%)
}
100% {
-webkit-transform: translateX(0);
transform: translateX(0)
}
}
@-webkit-keyframes fade-in {
0% {
opacity: .2
}
40% {
opacity: 1
}
100% {
opacity: .2
}
}
@keyframes fade-in {
0% {
opacity: .2
}
40% {
opacity: 1
}
100% {
opacity: .2
}
}
@keyframes hvr-ripple-out {
0% {
top: -5px;
right: -5px;
bottom: -5px;
left: -5px
}
50% {
top: -15px;
right: -15px;
bottom: -15px;
left: -15px;
opacity: .8
}
100% {
top: -5px;
right: -5px;
bottom: -5px;
left: -5px;
opacity: 1
}
}
@keyframes hvr-ripple-out-two {
0% {
top: 0;
right: 0;
bottom: 0;
left: 0
}
100% {
top: -30px;
right: -30px;
bottom: -30px;
left: -30px;
opacity: 0
}
}
@-webkit-keyframes scale-up-one {
0% {
-webkit-transform: scale(1);
transform: scale(1)
}
40% {
-webkit-transform: scale(.5);
transform: scale(.5)
}
100% {
-webkit-transform: scale(1);
transform: scale(1)
}
}
@keyframes scale-up-one {
0% {
-webkit-transform: scale(1);
transform: scale(1)
}
40% {
-webkit-transform: scale(.5);
transform: scale(.5)
}
100% {
-webkit-transform: scale(1);
transform: scale(1)
}
}
@-webkit-keyframes scale-up-two {
0% {
-webkit-transform: scale(.5);
transform: scale(.5)
}
40% {
-webkit-transform: scale(.8);
transform: scale(.8)
}
100% {
-webkit-transform: scale(.5);
transform: scale(.5)
}
}
@keyframes scale-up-two {
0% {
-webkit-transform: scale(.5);
transform: scale(.5)
}
40% {
-webkit-transform: scale(.8);
transform: scale(.8)
}
100% {
-webkit-transform: scale(.5);
transform: scale(.5)
}
}
@-webkit-keyframes scale-up-three {
0% {
-webkit-transform: scale(1);
transform: scale(1)
}
40% {
-webkit-transform: scale(2);
transform: scale(2)
}
100% {
-webkit-transform: scale(1);
transform: scale(1)
}
}
@keyframes scale-up-three {
0% {
-webkit-transform: scale(1);
transform: scale(1)
}
40% {
-webkit-transform: scale(2);
transform: scale(2)
}
100% {
-webkit-transform: scale(1);
transform: scale(1)
}
}
@-webkit-keyframes jump5p {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
40% {
-webkit-transform: translate3d(0, 5px, 0);
transform: translate3d(0, 5px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@keyframes jump5p {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
40% {
-webkit-transform: translate3d(0, 5px, 0);
transform: translate3d(0, 5px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@-webkit-keyframes jump5pRsv {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
40% {
-webkit-transform: translate3d(0, -5px, 0);
transform: translate3d(0, -5px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@keyframes jump5pRsv {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
40% {
-webkit-transform: translate3d(0, -5px, 0);
transform: translate3d(0, -5px, 0)
}
100% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0)
}
}
@keyframes moveclouds {
0% {
margin-left: 200px
}
100% {
margin-left: -200px
}
}
@-webkit-keyframes moveclouds {
0% {
margin-left: 200px
}
100% {
margin-left: -200px
}
}
@keyframes moveclouds2 {
0% {
margin-right: 200px
}
100% {
margin-right: -200px
}
}
@-webkit-keyframes moveclouds2 {
0% {
margin-right: 200px
}
100% {
margin-right: -200px
}
}
@keyframes moveUp {
0% {
transform: translateY(0)
}
100% {
transform: translateY(-70%)
}
}
@-webkit-keyframes moveUp {
0% {
transform: translateY(0)
}
100% {
transform: translateY(-70%)
}
}
@keyframes tpfadeUp {
0% {
opacity: 0;
-webkit-transform: translateY(90px);
transform: translateY(90px);
}
100% {
opacity: 1;
-webkit-transform: translateY(0);
transform: translateY(0);
}
}
.tpfadeUp {
-webkit-animation-name: tpfadeUp;
animation-name: tpfadeUp;
}
@-webkit-keyframes tpfadeLeft {
0% {
opacity: 0;
-webkit-transform: translateX(-100px);
transform: translateX(-100px);
}
100% {
opacity: 1;
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
@keyframes tpfadeLeft {
0% {
opacity: 0;
-webkit-transform: translateX(-100px);
-ms-transform: translateX(-100px);
transform: translateX(-100px);
}
100% {
opacity: 1;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
}
.tpfadeLeft {
-webkit-animation-name: tpfadeLeft;
animation-name: tpfadeLeft;
}
@-webkit-keyframes tpfadeRight {
0% {
opacity: 0;
-webkit-transform: translateX(100px);
transform: translateX(100px);
}
100% {
opacity: 1;
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
@keyframes tpfadeRight {
0% {
opacity: 0;
-webkit-transform: translateX(100px);
-ms-transform: translateX(100px);
transform: translateX(100px);
}
100% {
opacity: 1;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
}
.tpfadeRight {
-webkit-animation-name: tpfadeRight;
animation-name: tpfadeRight;
}
@-webkit-keyframes fadeInRight {
0% {
opacity: 0;
-webkit-transform: translateX(30px);
transform: translateX(30px);
}
100% {
opacity: 1;
-webkit-transform: translateX(0);
transform: translateX(0);
}
}
@keyframes fadeInRight {
0% {
opacity: 0;
-webkit-transform: translateX(30px);
-ms-transform: translateX(30px);
transform: translateX(30px);
}
100% {
opacity: 1;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
}
.fadeInRight {
-webkit-animation-name: fadeInRight;
animation-name: fadeInRight;
}
@-webkit-keyframes tpfadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes tpfadeIn {
0% {
opacity: 0;
-webkit-transform: translateY(-50px);
-ms-transform: translateY(-50px);
transform: translateY(-50px);
}
100% {
opacity: 1;
-webkit-transform: translateY(0);
-ms-transform: translateY(0);
transform: translateY(0);
}
}
.tpfadeIn {
-webkit-animation-name: tpfadeIn;
animation-name: tpfadeIn;
}

View File

@@ -0,0 +1,35 @@
@font-face {
font-family: "flaticon";
src: url("../fonts/fa-solid-900.ttf") format("truetype"),
url("../fonts/fa-brands-400.woff") format("woff"),
url("../fonts/fa-duotone-900.woff2") format("woff2"),
url("../fonts/fa-regular-400.eot") format("embedded-opentype"),
url("../fonts/fa-light-300.html") format("svg");
}
i[class^="flaticon-"]:before, i[class*=" flaticon-"]:before {
font-family: flaticon !important;
font-style: normal;
font-weight: normal !important;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.flaticon-vector:before {
content: "\f101";
}
.flaticon-medal:before {
content: "\f102";
}
.flaticon-app-development:before {
content: "\f103";
}
.flaticon-programming:before {
content: "\f104";
}
.flaticon-repairing-service:before {
content: "\f105";
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,351 @@
/* Magnific Popup CSS */
.mfp-bg {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1042;
overflow: hidden;
position: fixed;
background: #0b0b0b;
opacity: 0.8; }
.mfp-wrap {
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1043;
position: fixed;
outline: none !important;
-webkit-backface-visibility: hidden; }
.mfp-container {
text-align: center;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
padding: 0 8px;
box-sizing: border-box; }
.mfp-container:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle; }
.mfp-align-top .mfp-container:before {
display: none; }
.mfp-content {
position: relative;
display: inline-block;
vertical-align: middle;
margin: 0 auto;
text-align: left;
z-index: 1045; }
.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
width: 100%;
cursor: auto; }
.mfp-ajax-cur {
cursor: progress; }
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
cursor: -moz-zoom-out;
cursor: -webkit-zoom-out;
cursor: zoom-out; }
.mfp-zoom {
cursor: pointer;
cursor: -webkit-zoom-in;
cursor: -moz-zoom-in;
cursor: zoom-in; }
.mfp-auto-cursor .mfp-content {
cursor: auto; }
.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none; }
.mfp-loading.mfp-figure {
display: none; }
.mfp-hide {
display: none !important; }
.mfp-preloader {
color: #CCC;
position: absolute;
top: 50%;
width: auto;
text-align: center;
margin-top: -0.8em;
left: 8px;
right: 8px;
z-index: 1044; }
.mfp-preloader a {
color: #CCC; }
.mfp-preloader a:hover {
color: #FFF; }
.mfp-s-ready .mfp-preloader {
display: none; }
.mfp-s-error .mfp-content {
display: none; }
button.mfp-close,
button.mfp-arrow {
overflow: visible;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
display: block;
outline: none;
padding: 0;
z-index: 1046;
box-shadow: none;
touch-action: manipulation; }
button::-moz-focus-inner {
padding: 0;
border: 0; }
.mfp-close {
width: 44px;
height: 44px;
line-height: 44px;
position: absolute;
right: 0;
top: 0;
text-decoration: none;
text-align: center;
opacity: 0.65;
padding: 0 0 18px 10px;
color: #FFF;
font-style: normal;
font-size: 28px;
font-family: Arial, Baskerville, monospace; }
.mfp-close:hover,
.mfp-close:focus {
opacity: 1; }
.mfp-close:active {
top: 1px; }
.mfp-close-btn-in .mfp-close {
color: #333; }
.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
color: #FFF;
right: -6px;
text-align: right;
padding-right: 6px;
width: 100%; }
.mfp-counter {
position: absolute;
top: 0;
right: 0;
color: #CCC;
font-size: 12px;
line-height: 18px;
white-space: nowrap; }
.mfp-arrow {
position: absolute;
opacity: 0.65;
margin: 0;
top: 50%;
margin-top: -55px;
padding: 0;
width: 90px;
height: 110px;
-webkit-tap-highlight-color: transparent; }
.mfp-arrow:active {
margin-top: -54px; }
.mfp-arrow:hover,
.mfp-arrow:focus {
opacity: 1; }
.mfp-arrow:before,
.mfp-arrow:after {
content: '';
display: block;
width: 0;
height: 0;
position: absolute;
left: 0;
top: 0;
margin-top: 35px;
margin-left: 35px;
border: medium inset transparent; }
.mfp-arrow:after {
border-top-width: 13px;
border-bottom-width: 13px;
top: 8px; }
.mfp-arrow:before {
border-top-width: 21px;
border-bottom-width: 21px;
opacity: 0.7; }
.mfp-arrow-left {
left: 0; }
.mfp-arrow-left:after {
border-right: 17px solid #FFF;
margin-left: 31px; }
.mfp-arrow-left:before {
margin-left: 25px;
border-right: 27px solid #3F3F3F; }
.mfp-arrow-right {
right: 0; }
.mfp-arrow-right:after {
border-left: 17px solid #FFF;
margin-left: 39px; }
.mfp-arrow-right:before {
border-left: 27px solid #3F3F3F; }
.mfp-iframe-holder {
padding-top: 40px;
padding-bottom: 40px; }
.mfp-iframe-holder .mfp-content {
line-height: 0;
width: 100%;
max-width: 900px; }
.mfp-iframe-holder .mfp-close {
top: -40px; }
.mfp-iframe-scaler {
width: 100%;
height: 0;
overflow: hidden;
padding-top: 56.25%; }
.mfp-iframe-scaler iframe {
position: absolute;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
background: #000; }
/* Main image in popup */
img.mfp-img {
width: auto;
max-width: 100%;
height: auto;
display: block;
line-height: 0;
box-sizing: border-box;
padding: 40px 0 40px;
margin: 0 auto; }
/* The shadow behind the image */
.mfp-figure {
line-height: 0; }
.mfp-figure:after {
content: '';
position: absolute;
left: 0;
top: 40px;
bottom: 40px;
display: block;
right: 0;
width: auto;
height: auto;
z-index: -1;
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
background: #444; }
.mfp-figure small {
color: #BDBDBD;
display: block;
font-size: 12px;
line-height: 14px; }
.mfp-figure figure {
margin: 0; }
.mfp-bottom-bar {
margin-top: -36px;
position: absolute;
top: 100%;
left: 0;
width: 100%;
cursor: auto; }
.mfp-title {
text-align: left;
line-height: 18px;
color: #F3F3F3;
word-wrap: break-word;
padding-right: 36px; }
.mfp-image-holder .mfp-content {
max-width: 100%; }
.mfp-gallery .mfp-image-holder .mfp-figure {
cursor: pointer; }
@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
/**
* Remove all paddings around the image on small screen
*/
.mfp-img-mobile .mfp-image-holder {
padding-left: 0;
padding-right: 0; }
.mfp-img-mobile img.mfp-img {
padding: 0; }
.mfp-img-mobile .mfp-figure:after {
top: 0;
bottom: 0; }
.mfp-img-mobile .mfp-figure small {
display: inline;
margin-left: 5px; }
.mfp-img-mobile .mfp-bottom-bar {
background: rgba(0, 0, 0, 0.6);
bottom: 0;
margin: 0;
top: auto;
padding: 3px 5px;
position: fixed;
box-sizing: border-box; }
.mfp-img-mobile .mfp-bottom-bar:empty {
padding: 0; }
.mfp-img-mobile .mfp-counter {
right: 5px;
top: 3px; }
.mfp-img-mobile .mfp-close {
top: 0;
right: 0;
width: 35px;
height: 35px;
line-height: 35px;
background: rgba(0, 0, 0, 0.6);
position: fixed;
text-align: center;
padding: 0; } }
@media all and (max-width: 900px) {
.mfp-arrow {
-webkit-transform: scale(0.75);
transform: scale(0.75); }
.mfp-arrow-left {
-webkit-transform-origin: 0;
transform-origin: 0; }
.mfp-arrow-right {
-webkit-transform-origin: 100%;
transform-origin: 100%; }
.mfp-container {
padding-left: 6px;
padding-right: 6px; } }

View File

@@ -0,0 +1,156 @@
/*! #######################################################################
MeanMenu 2.0.7
--------
To be used with jquery.meanmenu.js by Chris Wharton (http://www.meanthemes.com/plugins/meanmenu/)
####################################################################### */
/* hide the link until viewport size is reached */
a.meanmenu-reveal {
display: none;
}
/* when under viewport size, .mean-container is added to body */
.mean-container .mean-bar {
float: left;
width: 100%;
position: relative;
background: #070337;
padding: 4px 0;
min-height: 42px;
z-index: 999999;
}
.mean-container a.meanmenu-reveal {
width: 22px;
height: 22px;
padding: 13px 13px 11px 13px;
position: absolute;
top: 0;
right: 0;
cursor: pointer;
color: #fff;
text-decoration: none;
font-size: 16px;
text-indent: -9999em;
line-height: 22px;
font-size: 1px;
display: block;
font-family: Arial, Helvetica, sans-serif;
font-weight: 700;
}
.mean-container a.meanmenu-reveal span {
display: block;
background: #fff;
height: 3px;
margin-top: 3px;
}
.mean-container .mean-nav {
float: left;
width: 100%;
background: #070337;
margin-top: 44px;
}
.mean-container .mean-nav ul {
padding: 0;
margin: 0;
width: 100%;
list-style-type: none;
}
.mean-container .mean-nav ul li {
position: relative;
float: left;
width: 100%;
}
.mean-container .mean-nav ul li a {
display: block;
float: left;
width: 90%;
padding: 10px 5%;
margin: 0;
text-align: left;
color: #fff;
border-top: 1px solid #e0e3ed;
text-decoration: none;
text-transform: uppercase;
}
.mean-container .mean-nav ul li li a {
width: 80%;
padding: 10px 10%;
text-shadow: none !important;
visibility: visible;
}
.mean-container .mean-nav ul li.mean-last a {
border-bottom: none;
margin-bottom: 0;
}
.mean-container .mean-nav ul li li li a {
width: 70%;
padding: 10px 15%;
}
.mean-container .mean-nav ul li li li li a {
width: 60%;
padding: 10px 20%;
}
.mean-container .mean-nav ul li li li li li a {
width: 50%;
padding: 10px 25%;
}
.mean-container .mean-nav ul li a.mean-expand {
margin-top: 1px;
width: 26px;
height: 32px;
text-align: center;
position: absolute;
left: 0;
top: 0;
z-index: 2;
font-weight: 700;
background: transparent;
border: none !important;
font-size: 14px;
}
.mean-container .mean-push {
float: left;
width: 100%;
padding: 0;
margin: 0;
clear: both;
}
.mean-nav .wrapper {
width: 100%;
padding: 0;
margin: 0;
}
/* Fix for box sizing on Foundation Framework etc. */
.mean-container .mean-bar, .mean-container .mean-bar * {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.mean-remove {
display: none !important;
}

View File

@@ -0,0 +1,183 @@
.nice-select {
-webkit-tap-highlight-color: transparent;
background-color: #fff;
border-radius: 5px;
box-sizing: border-box;
clear: both;
cursor: pointer;
display: block;
float: left;
font-family: inherit;
font-size: 15px;
font-weight: 500;
text-transform: capitalize;
height: 42px;
line-height: 40px;
outline: none;
padding-left: 18px;
padding-right: 30px;
position: relative;
text-align: left !important;
-webkit-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
white-space: nowrap;
width: auto;
}
.nice-select:hover {
border-color: #dbdbdb;
}
.nice-select:active,
.nice-select.open,
.nice-select:focus {
border-color: #999;
}
.nice-select:after {
border-bottom: 2px solid #999;
border-right: 2px solid #999;
content: '';
display: block;
height: 5px;
margin-top: -4px;
pointer-events: none;
position: absolute;
right: 12px;
top: 50%;
-webkit-transform-origin: 66% 66%;
-ms-transform-origin: 66% 66%;
transform-origin: 66% 66%;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
-webkit-transition: all 0.15s ease-in-out;
transition: all 0.15s ease-in-out;
width: 5px;
}
.nice-select.open:after {
-webkit-transform: rotate(-135deg);
-ms-transform: rotate(-135deg);
transform: rotate(-135deg);
}
.nice-select.open .list {
opacity: 1;
pointer-events: auto;
-webkit-transform: scale(1) translateY(0);
-ms-transform: scale(1) translateY(0);
transform: scale(1) translateY(0);
}
.nice-select.disabled {
border-color: #ededed;
color: #999;
pointer-events: none;
}
.nice-select.disabled:after {
border-color: #cccccc;
}
.nice-select.wide {
width: 100%;
}
.nice-select.wide .list {
left: 0 !important;
right: 0 !important;
}
.nice-select.right {
float: right;
}
.nice-select.right .list {
left: auto;
right: 0;
}
.nice-select.small {
font-size: 12px;
height: 36px;
line-height: 34px;
}
.nice-select.small:after {
height: 4px;
width: 4px;
}
.nice-select.small .option {
line-height: 34px;
min-height: 34px;
}
.nice-select .list {
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 0 1px rgba(68, 68, 68, 0.11);
box-sizing: border-box;
margin-top: 4px;
opacity: 0;
overflow: hidden;
padding: 0;
pointer-events: none;
position: absolute;
top: 100%;
left: 0;
-webkit-transform-origin: 50% 0;
-ms-transform-origin: 50% 0;
transform-origin: 50% 0;
-webkit-transform: scale(0.75) translateY(-21px);
-ms-transform: scale(0.75) translateY(-21px);
transform: scale(0.75) translateY(-21px);
-webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
z-index: 9;
}
.nice-select .option {
cursor: pointer;
font-weight: 400;
line-height: 40px;
list-style: none;
min-height: 40px;
outline: none;
padding-left: 18px;
padding-right: 29px;
text-align: left;
-webkit-transition: all 0.2s;
transition: all 0.2s;
}
.nice-select .option.selected {
font-weight: bold;
}
.nice-select .option.disabled {
background-color: transparent;
color: #999;
cursor: default;
}
.no-csspointerevents .nice-select .list {
display: none;
}
.no-csspointerevents .nice-select.open .list {
display: block;
}

1383
moadiran/wwwroot/css/rtl.css Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,119 @@
/* Slider */
.slick-slider
{
position: relative;
display: block;
box-sizing: border-box;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-touch-callout: none;
-khtml-user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list
{
position: relative;
display: block;
overflow: hidden;
margin: 0;
padding: 0;
}
.slick-list:focus
{
outline: none;
}
.slick-list.dragging
{
cursor: pointer;
cursor: hand;
}
.slick-slider .slick-track,
.slick-slider .slick-list
{
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.slick-track
{
position: relative;
top: 0;
left: 0;
display: block;
margin-left: auto;
margin-right: auto;
}
.slick-track:before,
.slick-track:after
{
display: table;
content: '';
}
.slick-track:after
{
clear: both;
}
.slick-loading .slick-track
{
visibility: hidden;
}
.slick-slide
{
display: none;
float: left;
height: 100%;
min-height: 1px;
}
[dir='rtl'] .slick-slide
{
float: right;
}
.slick-slide img
{
display: block;
}
.slick-slide.slick-loading img
{
display: none;
}
.slick-slide.dragging img
{
pointer-events: none;
}
.slick-initialized .slick-slide
{
display: block;
}
.slick-loading .slick-slide
{
visibility: hidden;
}
.slick-vertical .slick-slide
{
display: block;
height: auto;
border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
display: none;
}

View File

@@ -0,0 +1,960 @@
.mt-5{
margin-top:5px !important
}
.mt-10{
margin-top:10px
}
.mt-15{
margin-top:15px
}
.mt-20{
margin-top:20px
}
.mt-25{
margin-top:25px
}
.mt-30{
margin-top:30px
}
.mt-35{
margin-top:35px
}
.mt-40{
margin-top:40px
}
.mt-45{
margin-top:45px
}
.mt-50{
margin-top:50px
}
.mt-55{
margin-top:55px
}
.mt-60{
margin-top:60px
}
.mt-65{
margin-top:65px
}
.mt-70{
margin-top:70px
}
.mt-75{
margin-top:75px
}
.mt-80{
margin-top:80px
}
.mt-85{
margin-top:85px
}
.mt-90{
margin-top:90px
}
.mt-95{
margin-top:95px
}
.mt-100{
margin-top:100px
}
.mt-105{
margin-top:105px
}
.mt-110{
margin-top:110px
}
.mt-115{
margin-top:115px
}
.mt-120{
margin-top:120px
}
.mt-125{
margin-top:125px
}
.mt-130{
margin-top:130px
}
.mt-135{
margin-top:135px
}
.mt-140{
margin-top:140px
}
.mt-145{
margin-top:145px
}
.mt-150{
margin-top:150px
}
.mt-155{
margin-top:155px
}
.mt-160{
margin-top:160px
}
.mt-165{
margin-top:165px
}
.mt-170{
margin-top:170px
}
.mt-175{
margin-top:175px
}
.mt-180{
margin-top:180px
}
.mt-185{
margin-top:185px
}
.mt-190{
margin-top:190px
}
.mt-195{
margin-top:195px
}
.mt-200{
margin-top:200px
}
.mb-5{
margin-bottom:5px !important
}
.mb-10{
margin-bottom:10px
}
.mb-15{
margin-bottom:15px
}
.mb-20{
margin-bottom:20px
}
.mb-25{
margin-bottom:25px
}
.mb-30{
margin-bottom:30px
}
.mb-35{
margin-bottom:35px
}
.mb-40{
margin-bottom:40px
}
.mb-45{
margin-bottom:45px
}
.mb-50{
margin-bottom:50px
}
.mb-55{
margin-bottom:55px
}
.mb-60{
margin-bottom:60px
}
.mb-65{
margin-bottom:65px
}
.mb-70{
margin-bottom:70px
}
.mb-75{
margin-bottom:75px
}
.mb-80{
margin-bottom:80px
}
.mb-85{
margin-bottom:85px
}
.mb-90{
margin-bottom:90px
}
.mb-95{
margin-bottom:95px
}
.mb-100{
margin-bottom:100px
}
.mb-105{
margin-bottom:105px
}
.mb-110{
margin-bottom:110px
}
.mb-115{
margin-bottom:115px
}
.mb-120{
margin-bottom:120px
}
.mb-125{
margin-bottom:125px
}
.mb-130{
margin-bottom:130px
}
.mb-135{
margin-bottom:135px
}
.mb-140{
margin-bottom:140px
}
.mb-145{
margin-bottom:145px
}
.mb-150{
margin-bottom:150px
}
.mb-155{
margin-bottom:155px
}
.mb-160{
margin-bottom:160px
}
.mb-165{
margin-bottom:165px
}
.mb-170{
margin-bottom:170px
}
.mb-175{
margin-bottom:175px
}
.mb-180{
margin-bottom:180px
}
.mb-185{
margin-bottom:185px
}
.mb-190{
margin-bottom:190px
}
.mb-195{
margin-bottom:195px
}
.mb-200{
margin-bottom:200px
}
.ml-5{
margin-left:5px
}
.ml-10{
margin-left:10px
}
.ml-15{
margin-left:15px
}
.ml-20{
margin-left:20px
}
.ml-25{
margin-left:25px
}
.ml-30{
margin-left:30px
}
.ml-35{
margin-left:35px
}
.ml-40{
margin-left:40px
}
.ml-45{
margin-left:45px
}
.ml-50{
margin-left:50px
}
.ml-55{
margin-left:55px
}
.ml-60{
margin-left:60px
}
.ml-65{
margin-left:65px
}
.ml-70{
margin-left:70px
}
.ml-75{
margin-left:75px
}
.ml-80{
margin-left:80px
}
.ml-85{
margin-left:85px
}
.ml-90{
margin-left:90px
}
.ml-95{
margin-left:95px
}
.ml-100{
margin-left:100px
}
.ml-105{
margin-left:105px
}
.ml-110{
margin-left:110px
}
.ml-115{
margin-left:115px
}
.ml-120{
margin-left:120px
}
.ml-125{
margin-left:125px
}
.ml-130{
margin-left:130px
}
.ml-135{
margin-left:135px
}
.ml-140{
margin-left:140px
}
.ml-145{
margin-left:145px
}
.ml-150{
margin-left:150px
}
.ml-155{
margin-left:155px
}
.ml-160{
margin-left:160px
}
.ml-165{
margin-left:165px
}
.ml-170{
margin-left:170px
}
.ml-175{
margin-left:175px
}
.ml-180{
margin-left:180px
}
.ml-185{
margin-left:185px
}
.ml-190{
margin-left:190px
}
.ml-195{
margin-left:195px
}
.ml-200{
margin-left:200px
}
.mr-5{
margin-right:5px
}
.mr-10{
margin-right:10px
}
.mr-15{
margin-right:15px
}
.mr-20{
margin-right:20px
}
.mr-25{
margin-right:25px
}
.mr-30{
margin-right:30px
}
.mr-35{
margin-right:35px
}
.mr-40{
margin-right:40px
}
.mr-45{
margin-right:45px
}
.mr-50{
margin-right:50px
}
.mr-55{
margin-right:55px
}
.mr-60{
margin-right:60px
}
.mr-65{
margin-right:65px
}
.mr-70{
margin-right:70px
}
.mr-75{
margin-right:75px
}
.mr-80{
margin-right:80px
}
.mr-85{
margin-right:85px
}
.mr-90{
margin-right:90px
}
.mr-95{
margin-right:95px
}
.mr-100{
margin-right:100px
}
.mr-105{
margin-right:105px
}
.mr-110{
margin-right:110px
}
.mr-115{
margin-right:115px
}
.mr-120{
margin-right:120px
}
.mr-125{
margin-right:125px
}
.mr-130{
margin-right:130px
}
.mr-135{
margin-right:135px
}
.mr-140{
margin-right:140px
}
.mr-145{
margin-right:145px
}
.mr-150{
margin-right:150px
}
.mr-155{
margin-right:155px
}
.mr-160{
margin-right:160px
}
.mr-165{
margin-right:165px
}
.mr-170{
margin-right:170px
}
.mr-175{
margin-right:175px
}
.mr-180{
margin-right:180px
}
.mr-185{
margin-right:185px
}
.mr-190{
margin-right:190px
}
.mr-195{
margin-right:195px
}
.mr-200{
margin-right:200px
}
.pt-5{
padding-top:5px !important
}
.pt-10{
padding-top:10px
}
.pt-15{
padding-top:15px
}
.pt-20{
padding-top:20px
}
.pt-25{
padding-top:25px
}
.pt-30{
padding-top:30px
}
.pt-35{
padding-top:35px
}
.pt-40{
padding-top:40px
}
.pt-45{
padding-top:45px
}
.pt-50{
padding-top:50px
}
.pt-55{
padding-top:55px
}
.pt-60{
padding-top:60px
}
.pt-65{
padding-top:65px
}
.pt-70{
padding-top:70px
}
.pt-75{
padding-top:75px
}
.pt-80{
padding-top:80px
}
.pt-85{
padding-top:85px
}
.pt-90{
padding-top:90px
}
.pt-95{
padding-top:95px
}
.pt-100{
padding-top:100px
}
.pt-105{
padding-top:105px
}
.pt-110{
padding-top:110px
}
.pt-115{
padding-top:115px
}
.pt-120{
padding-top:120px
}
.pt-125{
padding-top:125px
}
.pt-130{
padding-top:130px
}
.pt-135{
padding-top:135px
}
.pt-140{
padding-top:140px
}
.pt-145{
padding-top:145px
}
.pt-150{
padding-top:150px
}
.pt-155{
padding-top:155px
}
.pt-160{
padding-top:160px
}
.pt-165{
padding-top:165px
}
.pt-170{
padding-top:170px
}
.pt-175{
padding-top:175px
}
.pt-180{
padding-top:180px
}
.pt-185{
padding-top:185px
}
.pt-190{
padding-top:190px
}
.pt-195{
padding-top:195px
}
.pt-200{
padding-top:200px
}
.pb-5{
padding-bottom:5px !important
}
.pb-10{
padding-bottom:10px
}
.pb-15{
padding-bottom:15px
}
.pb-20{
padding-bottom:20px
}
.pb-25{
padding-bottom:25px
}
.pb-30{
padding-bottom:30px
}
.pb-35{
padding-bottom:35px
}
.pb-40{
padding-bottom:40px
}
.pb-45{
padding-bottom:45px
}
.pb-50{
padding-bottom:50px
}
.pb-55{
padding-bottom:55px
}
.pb-60{
padding-bottom:60px
}
.pb-65{
padding-bottom:65px
}
.pb-70{
padding-bottom:70px
}
.pb-75{
padding-bottom:75px
}
.pb-80{
padding-bottom:80px
}
.pb-85{
padding-bottom:85px
}
.pb-90{
padding-bottom:90px
}
.pb-95{
padding-bottom:95px
}
.pb-100{
padding-bottom:100px
}
.pb-105{
padding-bottom:105px
}
.pb-110{
padding-bottom:110px
}
.pb-115{
padding-bottom:115px
}
.pb-120{
padding-bottom:120px
}
.pb-125{
padding-bottom:125px
}
.pb-130{
padding-bottom:130px
}
.pb-135{
padding-bottom:135px
}
.pb-140{
padding-bottom:140px
}
.pb-145{
padding-bottom:145px
}
.pb-150{
padding-bottom:150px
}
.pb-155{
padding-bottom:155px
}
.pb-160{
padding-bottom:160px
}
.pb-165{
padding-bottom:165px
}
.pb-170{
padding-bottom:170px
}
.pb-175{
padding-bottom:175px
}
.pb-180{
padding-bottom:180px
}
.pb-185{
padding-bottom:185px
}
.pb-190{
padding-bottom:190px
}
.pb-195{
padding-bottom:195px
}
.pb-200{
padding-bottom:200px
}
.pl-5{
padding-left:5px
}
.pl-10{
padding-left:10px
}
.pl-15{
padding-left:15px
}
.pl-20{
padding-left:20px
}
.pl-25{
padding-left:25px
}
.pl-30{
padding-left:30px
}
.pl-35{
padding-left:35px
}
.pl-40{
padding-left:40px
}
.pl-45{
padding-left:45px
}
.pl-50{
padding-left:50px
}
.pl-55{
padding-left:55px
}
.pl-60{
padding-left:60px
}
.pl-65{
padding-left:65px
}
.pl-70{
padding-left:70px
}
.pl-75{
padding-left:75px
}
.pl-80{
padding-left:80px
}
.pl-85{
padding-left:85px
}
.pl-90{
padding-left:90px
}
.pl-95{
padding-left:95px
}
.pl-100{
padding-left:100px
}
.pl-105{
padding-left:105px
}
.pl-110{
padding-left:110px
}
.pl-115{
padding-left:115px
}
.pl-120{
padding-left:120px
}
.pl-125{
padding-left:125px
}
.pl-130{
padding-left:130px
}
.pl-135{
padding-left:135px
}
.pl-140{
padding-left:140px
}
.pl-145{
padding-left:145px
}
.pl-150{
padding-left:150px
}
.pl-155{
padding-left:155px
}
.pl-160{
padding-left:160px
}
.pl-165{
padding-left:165px
}
.pl-170{
padding-left:170px
}
.pl-175{
padding-left:175px
}
.pl-180{
padding-left:180px
}
.pl-185{
padding-left:185px
}
.pl-190{
padding-left:190px
}
.pl-195{
padding-left:195px
}
.pl-200{
padding-left:200px
}
.pr-5{
padding-right:5px
}
.pr-10{
padding-right:10px
}
.pr-15{
padding-right:15px
}
.pr-20{
padding-right:20px
}
.pr-25{
padding-right:25px
}
.pr-30{
padding-right:30px
}
.pr-35{
padding-right:35px
}
.pr-40{
padding-right:40px
}
.pr-45{
padding-right:45px
}
.pr-50{
padding-right:50px
}
.pr-55{
padding-right:55px
}
.pr-60{
padding-right:60px
}
.pr-65{
padding-right:65px
}
.pr-70{
padding-right:70px
}
.pr-75{
padding-right:75px
}
.pr-80{
padding-right:80px
}
.pr-85{
padding-right:85px
}
.pr-90{
padding-right:90px
}
.pr-95{
padding-right:95px
}
.pr-100{
padding-right:100px
}
.pr-105{
padding-right:105px
}
.pr-110{
padding-right:110px
}
.pr-115{
padding-right:115px
}
.pr-120{
padding-right:120px
}
.pr-125{
padding-right:125px
}
.pr-130{
padding-right:130px
}
.pr-135{
padding-right:135px
}
.pr-140{
padding-right:140px
}
.pr-145{
padding-right:145px
}
.pr-150{
padding-right:150px
}
.pr-155{
padding-right:155px
}
.pr-160{
padding-right:160px
}
.pr-165{
padding-right:165px
}
.pr-170{
padding-right:170px
}
.pr-175{
padding-right:175px
}
.pr-180{
padding-right:180px
}
.pr-185{
padding-right:185px
}
.pr-190{
padding-right:190px
}
.pr-195{
padding-right:195px
}
.pr-200{
padding-right:200px
}

View File

@@ -0,0 +1,541 @@
/**
* Swiper 6.5.0
* Most modern mobile touch slider and framework with hardware accelerated transitions
* https://swiperjs.com
*
* Copyright 2014-2021 Vladimir Kharlampidi
*
* Released under the MIT License
*
* Released on: March 5, 2021
*/
@font-face {
font-family: 'swiper-icons';
src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA') format('woff');
font-weight: 400;
font-style: normal;
}
:root {
--swiper-theme-color: #007aff;
}
.swiper-container {
margin-left: auto;
margin-right: auto;
position: relative;
overflow: hidden;
list-style: none;
padding: 0;
/* Fix of Webkit flickering */
z-index: 1;
}
.swiper-container-vertical > .swiper-wrapper {
flex-direction: column;
}
.swiper-wrapper {
position: relative;
width: 100%;
height: 100%;
z-index: 1;
display: flex;
transition-property: transform;
box-sizing: content-box;
}
.swiper-container-android .swiper-slide,
.swiper-wrapper {
transform: translate3d(0px, 0, 0);
}
.swiper-container-multirow > .swiper-wrapper {
flex-wrap: wrap;
}
.swiper-container-multirow-column > .swiper-wrapper {
flex-wrap: wrap;
flex-direction: column;
}
.swiper-container-free-mode > .swiper-wrapper {
transition-timing-function: ease-out;
margin: 0 auto;
}
.swiper-container-pointer-events {
touch-action: pan-y;
}
.swiper-container-pointer-events.swiper-container-vertical {
touch-action: pan-x;
}
.swiper-slide {
flex-shrink: 0;
width: 100%;
height: 100%;
position: relative;
transition-property: transform;
}
.swiper-slide-invisible-blank {
visibility: hidden;
}
/* Auto Height */
.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
height: auto;
}
.swiper-container-autoheight .swiper-wrapper {
align-items: flex-start;
transition-property: transform, height;
}
/* 3D Effects */
.swiper-container-3d {
perspective: 1200px;
}
.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
transform-style: preserve-3d;
}
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 10;
}
.swiper-container-3d .swiper-slide-shadow-left {
background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-right {
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-top {
background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-bottom {
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
/* CSS Mode */
.swiper-container-css-mode > .swiper-wrapper {
overflow: auto;
scrollbar-width: none;
/* For Firefox */
-ms-overflow-style: none;
/* For Internet Explorer and Edge */
}
.swiper-container-css-mode > .swiper-wrapper::-webkit-scrollbar {
display: none;
}
.swiper-container-css-mode > .swiper-wrapper > .swiper-slide {
scroll-snap-align: start start;
}
.swiper-container-horizontal.swiper-container-css-mode > .swiper-wrapper {
scroll-snap-type: x mandatory;
}
.swiper-container-vertical.swiper-container-css-mode > .swiper-wrapper {
scroll-snap-type: y mandatory;
}
:root {
--swiper-navigation-size: 44px;
/*
--swiper-navigation-color: var(--swiper-theme-color);
*/
}
.swiper-button-prev,
.swiper-button-next {
position: absolute;
top: 50%;
z-index: 10;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
}
.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
opacity: 0.7;
cursor: auto;
pointer-events: none;
}
.swiper-button-prev:after,
.swiper-button-next:after {
font-family: swiper-icons;
text-transform: none !important;
letter-spacing: 0;
text-transform: none;
font-variant: initial;
line-height: 1;
}
.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
left: 10px;
right: auto;
}
.swiper-button-prev:after,
.swiper-container-rtl .swiper-button-next:after {
content: 'prev';
}
.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
right: 10px;
left: auto;
}
.swiper-button-next:after,
.swiper-container-rtl .swiper-button-prev:after {
content: 'next';
}
.swiper-button-prev.swiper-button-white,
.swiper-button-next.swiper-button-white {
--swiper-navigation-color: #ffffff;
}
.swiper-button-prev.swiper-button-black,
.swiper-button-next.swiper-button-black {
--swiper-navigation-color: #000000;
}
.swiper-button-lock {
display: none;
}
:root {
/*
--swiper-pagination-color: var(--swiper-theme-color);
*/
}
.swiper-pagination {
position: absolute;
text-align: center;
transition: 300ms opacity;
transform: translate3d(0, 0, 0);
z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
opacity: 0;
}
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
bottom: 10px;
left: 0;
width: 100%;
}
/* Bullets */
.swiper-pagination-bullets-dynamic {
overflow: hidden;
font-size: 0;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
transform: scale(0.33);
position: relative;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
transform: scale(0.33);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
transform: scale(0.33);
}
.swiper-pagination-bullet {
width: 8px;
height: 8px;
display: inline-block;
border-radius: 50%;
background: #000;
opacity: 0.2;
}
button.swiper-pagination-bullet {
border: none;
margin: 0;
padding: 0;
box-shadow: none;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
cursor: pointer;
}
.swiper-pagination-bullet-active {
opacity: 1;
background: var(--swiper-pagination-color, var(--swiper-theme-color));
}
.swiper-container-vertical > .swiper-pagination-bullets {
right: 10px;
top: 50%;
transform: translate3d(0px, -50%, 0);
}
.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 6px 0;
display: block;
}
.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
top: 50%;
transform: translateY(-50%);
width: 8px;
}
.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
display: inline-block;
transition: 200ms transform, 200ms top;
}
.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 0 4px;
}
.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
left: 50%;
transform: translateX(-50%);
white-space: nowrap;
}
.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
transition: 200ms transform, 200ms left;
}
.swiper-container-horizontal.swiper-container-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
transition: 200ms transform, 200ms right;
}
/* Progress */
.swiper-pagination-progressbar {
background: rgba(0, 0, 0, 0.25);
position: absolute;
}
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
background: var(--swiper-pagination-color, var(--swiper-theme-color));
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: scale(0);
transform-origin: left top;
}
.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
transform-origin: right top;
}
.swiper-container-horizontal > .swiper-pagination-progressbar,
.swiper-container-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
width: 100%;
height: 4px;
left: 0;
top: 0;
}
.swiper-container-vertical > .swiper-pagination-progressbar,
.swiper-container-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
width: 4px;
height: 100%;
left: 0;
top: 0;
}
.swiper-pagination-white {
--swiper-pagination-color: #ffffff;
}
.swiper-pagination-black {
--swiper-pagination-color: #000000;
}
.swiper-pagination-lock {
display: none;
}
/* Scrollbar */
.swiper-scrollbar {
border-radius: 10px;
position: relative;
-ms-touch-action: none;
background: rgba(0, 0, 0, 0.1);
}
.swiper-container-horizontal > .swiper-scrollbar {
position: absolute;
left: 1%;
bottom: 3px;
z-index: 50;
height: 5px;
width: 98%;
}
.swiper-container-vertical > .swiper-scrollbar {
position: absolute;
right: 3px;
top: 1%;
z-index: 50;
width: 5px;
height: 98%;
}
.swiper-scrollbar-drag {
height: 100%;
width: 100%;
position: relative;
background: rgba(0, 0, 0, 0.5);
border-radius: 10px;
left: 0;
top: 0;
}
.swiper-scrollbar-cursor-drag {
cursor: move;
}
.swiper-scrollbar-lock {
display: none;
}
.swiper-zoom-container {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
}
.swiper-zoom-container > img,
.swiper-zoom-container > svg,
.swiper-zoom-container > canvas {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.swiper-slide-zoomed {
cursor: move;
}
/* Preloader */
:root {
/*
--swiper-preloader-color: var(--swiper-theme-color);
*/
}
.swiper-lazy-preloader {
width: 42px;
height: 42px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -21px;
margin-top: -21px;
z-index: 10;
transform-origin: 50%;
animation: swiper-preloader-spin 1s infinite linear;
box-sizing: border-box;
border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
border-radius: 50%;
border-top-color: transparent;
}
.swiper-lazy-preloader-white {
--swiper-preloader-color: #fff;
}
.swiper-lazy-preloader-black {
--swiper-preloader-color: #000;
}
@keyframes swiper-preloader-spin {
100% {
transform: rotate(360deg);
}
}
/* a11y */
.swiper-container .swiper-notification {
position: absolute;
left: 0;
top: 0;
pointer-events: none;
opacity: 0;
z-index: -1000;
}
.swiper-container-fade.swiper-container-free-mode .swiper-slide {
transition-timing-function: ease-out;
}
.swiper-container-fade .swiper-slide {
pointer-events: none;
transition-property: opacity;
}
.swiper-container-fade .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-cube {
overflow: visible;
}
.swiper-container-cube .swiper-slide {
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 1;
visibility: hidden;
transform-origin: 0 0;
width: 100%;
height: 100%;
}
.swiper-container-cube .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-cube.swiper-container-rtl .swiper-slide {
transform-origin: 100% 0;
}
.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
.swiper-container-cube .swiper-slide-next + .swiper-slide {
pointer-events: auto;
visibility: visible;
}
.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right {
z-index: 0;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.swiper-container-cube .swiper-cube-shadow {
position: absolute;
left: 0;
bottom: 0px;
width: 100%;
height: 100%;
opacity: 0.6;
z-index: 0;
}
.swiper-container-cube .swiper-cube-shadow:before {
content: '';
background: #000;
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
-webkit-filter: blur(50px);
filter: blur(50px);
}
.swiper-container-flip {
overflow: visible;
}
.swiper-container-flip .swiper-slide {
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 1;
}
.swiper-container-flip .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-flip .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-right {
z-index: 0;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

View File

@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en-us" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema#">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
@charset "UTF-8";
[ng\:cloak],
[ng-cloak],
[data-ng-cloak],
[x-ng-cloak],
.ng-cloak,
.x-ng-cloak,
.ng-hide:not(.ng-hide-animate) {
display: none !important;
}
ng\:form {
display: block;
}
.ng-animate-shim {
visibility: hidden;
}
.ng-anchor {
position: absolute;
}
</style>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Oops, something lost</title>
<meta name="description" content="Oops, looks like the page is lost. Start your website on the cheap.">
<link media="all" rel="stylesheet" href="/htdocs_error/style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i" rel="stylesheet">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-26575989-46', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<div class="error" id="error">
<div class="container">
<div class="content centered"><img style="width:500px;" src="/htdocs_error/something-lost.png">
<h1>Oops, looks like the page is lost.</h1>
<p style="font-size:22px;" class="sub-header text-block-narrow">This is not a fault, just an accident that was not intentional.</p>
</div>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en-us" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema#">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
@charset "UTF-8";
[ng\:cloak],
[ng-cloak],
[data-ng-cloak],
[x-ng-cloak],
.ng-cloak,
.x-ng-cloak,
.ng-hide:not(.ng-hide-animate) {
display: none !important;
}
ng\:form {
display: block;
}
.ng-animate-shim {
visibility: hidden;
}
.ng-anchor {
position: absolute;
}
</style>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Oops, something lost</title>
<meta name="description" content="Oops, looks like the page is lost. Start your website on the cheap.">
<link media="all" rel="stylesheet" href="/htdocs_error/style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i" rel="stylesheet">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-26575989-46', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<div class="error" id="error">
<div class="container">
<div class="content centered"><img style="width:500px;" src="/htdocs_error/something-lost.png">
<h1>Oops, looks like the page is lost.</h1>
<p style="font-size:22px;" class="sub-header text-block-narrow">This is not a fault, just an accident that was not intentional.</p>
</div>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en-us" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema#">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
@charset "UTF-8";
[ng\:cloak],
[ng-cloak],
[data-ng-cloak],
[x-ng-cloak],
.ng-cloak,
.x-ng-cloak,
.ng-hide:not(.ng-hide-animate) {
display: none !important;
}
ng\:form {
display: block;
}
.ng-animate-shim {
visibility: hidden;
}
.ng-anchor {
position: absolute;
}
</style>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Oops, something lost</title>
<meta name="description" content="Oops, looks like the page is lost. Start your website on the cheap.">
<link media="all" rel="stylesheet" href="/htdocs_error/style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i" rel="stylesheet">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-26575989-46', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<div class="error" id="error">
<div class="container">
<div class="content centered"><img style="width:500px;" src="/htdocs_error/something-lost.png">
<h1>Oops, looks like the page is lost.</h1>
<p style="font-size:22px;" class="sub-header text-block-narrow">This is not a fault, just an accident that was not intentional.</p>
</div>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en-us" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema#">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
@charset "UTF-8";
[ng\:cloak],
[ng-cloak],
[data-ng-cloak],
[x-ng-cloak],
.ng-cloak,
.x-ng-cloak,
.ng-hide:not(.ng-hide-animate) {
display: none !important;
}
ng\:form {
display: block;
}
.ng-animate-shim {
visibility: hidden;
}
.ng-anchor {
position: absolute;
}
</style>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Oops, something lost</title>
<meta name="description" content="Oops, looks like the page is lost. Start your website on the cheap.">
<link media="all" rel="stylesheet" href="/htdocs_error/style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i" rel="stylesheet">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-26575989-46', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<div class="error" id="error">
<div class="container">
<div class="content centered"><img style="width:500px;" src="/htdocs_error/something-lost.png">
<h1>Oops, looks like the page is lost.</h1>
<p style="font-size:22px;" class="sub-header text-block-narrow">This is not a fault, just an accident that was not intentional.</p>
</div>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en-us" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema#">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
@charset "UTF-8";
[ng\:cloak],
[ng-cloak],
[data-ng-cloak],
[x-ng-cloak],
.ng-cloak,
.x-ng-cloak,
.ng-hide:not(.ng-hide-animate) {
display: none !important;
}
ng\:form {
display: block;
}
.ng-animate-shim {
visibility: hidden;
}
.ng-anchor {
position: absolute;
}
</style>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Oops, something lost</title>
<meta name="description" content="Oops, looks like the page is lost. Start your website on the cheap.">
<link media="all" rel="stylesheet" href="/htdocs_error/style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i" rel="stylesheet">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-26575989-46', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<div class="error" id="error">
<div class="container">
<div class="content centered"><img style="width:500px;" src="/htdocs_error/something-lost.png">
<h1>Oops, looks like the page is lost.</h1>
<p style="font-size:22px;" class="sub-header text-block-narrow">This is not a fault, just an accident that was not intentional.</p>
</div>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More