Compare commits

..

18 Commits

Author SHA1 Message Date
4612a4a90e ReCaptchaDüzeltildi 2025-11-10 20:07:36 +03:00
aa81664d8f Test 6 2025-11-10 19:05:24 +03:00
3fe09c21d7 yenisi 2025-11-10 13:36:57 +03:00
cf1fe7eb26 test2 2025-11-10 12:54:18 +03:00
8509ca6077 birtest 2025-11-10 12:41:43 +03:00
dd6fab7c58 Push10112025-1 2025-11-10 09:24:05 +03:00
78fc372bc3 Push 2025-11-10 09:20:39 +03:00
e3cb3e8a8b RecreateInCleanedServer 2025-11-10 09:17:31 +03:00
2f8410a18b Yiğit Test
Some checks failed
ASP.NET Core CI/Deploy / deploy (push) Has been cancelled
2025-11-08 11:20:49 +03:00
8ea68b0ca3 AddStatusToCreateProject 2025-05-07 13:02:05 +03:00
aa0362e7cc ReviseProjectUpdateMethod 2025-05-05 22:47:38 +03:00
b5d88122d5 AddImagesFolder 2025-05-02 13:48:24 +03:00
76cf25d136 ReviseFaviconsAndHeaderTitles 2025-05-01 16:57:18 +03:00
df5021139d InitialCreate2 2025-05-01 16:10:50 +03:00
b1d8182eb7 InitialCreate1 2025-05-01 15:47:43 +03:00
592f7743dd InitialCreate 2025-05-01 15:43:03 +03:00
70dafac03a InitialCreate1 2025-05-01 15:32:58 +03:00
fd152c481c InitialCreate 2025-05-01 15:26:42 +03:00
25 changed files with 75 additions and 38 deletions

View File

@@ -0,0 +1,21 @@
name: ASP.NET Core CI/Deploy
run-name: ${{ gitea.actor }} is testing out gitea Actions 🚀
on:
push:
branches:
- "main"
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: ls -a
- run: docker compose -f docker-compose.yaml down
- name: Remove all un-used container and images
run: docker system prune -af
- run: docker compose -f docker-compose.yaml up -d --build --force-recreate
- run: echo "🍏 This job's status is ${{ job.status }}."

View File

@@ -55,7 +55,7 @@ namespace ConstructorApp.BusinessLayer.Concrete
public void TProjectStatusPassive(int id) public void TProjectStatusPassive(int id)
{ {
_projectDal.rojectStatusPassive(id); _projectDal.ProjectStatusPassive(id);
} }
public void TUpdate(Project entity) public void TUpdate(Project entity)

View File

@@ -5,7 +5,7 @@ namespace ConstructorApp.DataAccessLayer.Abstract
public interface IProjectDal : IGenericDal<Project> public interface IProjectDal : IGenericDal<Project>
{ {
void ProjectStatusActive(int id); void ProjectStatusActive(int id);
void rojectStatusPassive(int id); void ProjectStatusPassive(int id);
int CountAll(); int CountAll();
Project GetBySlug(string slug); Project GetBySlug(string slug);
Project GetProjectWithImagesBySlug(string slug); Project GetProjectWithImagesBySlug(string slug);

View File

@@ -30,10 +30,10 @@ namespace ConstructorApp.DataAccessLayer.Concrete
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {
//lokal migration //lokal migration
//optionsBuilder.UseSqlServer("Server=SABI\\SQLEXPRESS;initial Catalog=CONSTRUCTOR;User ID=sa;Password=13579spP!!!!;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True"); optionsBuilder.UseSqlServer("Server=SABI;initial Catalog=CONSTRUCTOR;User ID=sa;Password=13579spP!!!!;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True");
//uzak migration //uzak migration
optionsBuilder.UseSqlServer("Server=94.138.207.4;initial Catalog=CONSTRUCTOR;User ID=sa;Password=13579spP!!!!;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True"); optionsBuilder.UseSqlServer("Server=94.138.207.4;initial Catalog=CONSTRUCTOR;User ID=sa;Password=XeFu*t7VXFE&s%)_HwKDk!;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True");
//optionsBuilder.ConfigureWarnings(warnings => warnings.Ignore(RelationalEventId.PendingModelChangesWarning)); //optionsBuilder.ConfigureWarnings(warnings => warnings.Ignore(RelationalEventId.PendingModelChangesWarning));
} }

View File

@@ -38,7 +38,7 @@ namespace ConstructorApp.DataAccessLayer.EntityFramework
context.SaveChanges(); context.SaveChanges();
} }
public void rojectStatusPassive(int id) public void ProjectStatusPassive(int id)
{ {
var values = context.Projects.Find(id); var values = context.Projects.Find(id);
values.IsActive = false; values.IsActive = false;

View File

@@ -12,7 +12,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace ConstructorApp.DataAccessLayer.Migrations namespace ConstructorApp.DataAccessLayer.Migrations
{ {
[DbContext(typeof(ConstructorContext))] [DbContext(typeof(ConstructorContext))]
[Migration("20250501115426_InitialCreate")] [Migration("20251110062259_InitialCreate")]
partial class InitialCreate partial class InitialCreate
{ {
/// <inheritdoc /> /// <inheritdoc />
@@ -58,7 +58,7 @@ namespace ConstructorApp.DataAccessLayer.Migrations
new new
{ {
Id = 1, Id = 1,
ConcurrencyStamp = "3abf73f8-a18f-4452-9c3f-d8abf48c18c5", ConcurrencyStamp = "861b2f73-621f-401d-ae7f-90386fb8ee33",
Name = "Admin", Name = "Admin",
NormalizedName = "ADMIN" NormalizedName = "ADMIN"
}); });
@@ -151,7 +151,7 @@ namespace ConstructorApp.DataAccessLayer.Migrations
{ {
Id = 1, Id = 1,
AccessFailedCount = 0, AccessFailedCount = 0,
ConcurrencyStamp = "b899157c-b38b-43f9-8fdf-f04d21a0370c", ConcurrencyStamp = "49a67b10-c6cd-45a8-a985-a0f3a0fc638b",
ConfirmCode = 0, ConfirmCode = 0,
Email = "admin@example.com", Email = "admin@example.com",
EmailConfirmed = true, EmailConfirmed = true,
@@ -161,9 +161,9 @@ namespace ConstructorApp.DataAccessLayer.Migrations
LockoutEnabled = false, LockoutEnabled = false,
NormalizedEmail = "ADMIN@EXAMPLE.COM", NormalizedEmail = "ADMIN@EXAMPLE.COM",
NormalizedUserName = "ADMIN", NormalizedUserName = "ADMIN",
PasswordHash = "AQAAAAIAAYagAAAAEDNJ/hC+Ey7MpD2q6eaGnJn6CQmUyNUgiZiUCdHqiAhGJsnhm+Q3VY+xhEZALFzeOA==", PasswordHash = "AQAAAAIAAYagAAAAEN1z37odF5cuQmrziBf4IXBIfLIAFvlO6rQM8GKxsuyQWTBG8Bv6bkA+61SWFl1R5g==",
PhoneNumberConfirmed = false, PhoneNumberConfirmed = false,
SecurityStamp = "6d0581e4-af84-4438-aa89-17362a9302f4", SecurityStamp = "553407f9-7fee-4c07-b1e7-4523592d191f",
TwoFactorEnabled = false, TwoFactorEnabled = false,
UserName = "admin" UserName = "admin"
}); });

View File

@@ -388,12 +388,12 @@ namespace ConstructorApp.DataAccessLayer.Migrations
migrationBuilder.InsertData( migrationBuilder.InsertData(
table: "AspNetRoles", table: "AspNetRoles",
columns: new[] { "Id", "ConcurrencyStamp", "Name", "NormalizedName" }, columns: new[] { "Id", "ConcurrencyStamp", "Name", "NormalizedName" },
values: new object[] { 1, "3abf73f8-a18f-4452-9c3f-d8abf48c18c5", "Admin", "ADMIN" }); values: new object[] { 1, "861b2f73-621f-401d-ae7f-90386fb8ee33", "Admin", "ADMIN" });
migrationBuilder.InsertData( migrationBuilder.InsertData(
table: "AspNetUsers", table: "AspNetUsers",
columns: new[] { "Id", "AccessFailedCount", "ConcurrencyStamp", "ConfirmCode", "Email", "EmailConfirmed", "FirstName", "ImageUrl", "LastName", "LockoutEnabled", "LockoutEnd", "NormalizedEmail", "NormalizedUserName", "PasswordHash", "PhoneNumber", "PhoneNumberConfirmed", "SecurityStamp", "TwoFactorEnabled", "UserName" }, columns: new[] { "Id", "AccessFailedCount", "ConcurrencyStamp", "ConfirmCode", "Email", "EmailConfirmed", "FirstName", "ImageUrl", "LastName", "LockoutEnabled", "LockoutEnd", "NormalizedEmail", "NormalizedUserName", "PasswordHash", "PhoneNumber", "PhoneNumberConfirmed", "SecurityStamp", "TwoFactorEnabled", "UserName" },
values: new object[] { 1, 0, "b899157c-b38b-43f9-8fdf-f04d21a0370c", 0, "admin@example.com", true, "Admin", "/SeedData/defaultuser.png", "Admin", false, null, "ADMIN@EXAMPLE.COM", "ADMIN", "AQAAAAIAAYagAAAAEDNJ/hC+Ey7MpD2q6eaGnJn6CQmUyNUgiZiUCdHqiAhGJsnhm+Q3VY+xhEZALFzeOA==", null, false, "6d0581e4-af84-4438-aa89-17362a9302f4", false, "admin" }); values: new object[] { 1, 0, "49a67b10-c6cd-45a8-a985-a0f3a0fc638b", 0, "admin@example.com", true, "Admin", "/SeedData/defaultuser.png", "Admin", false, null, "ADMIN@EXAMPLE.COM", "ADMIN", "AQAAAAIAAYagAAAAEN1z37odF5cuQmrziBf4IXBIfLIAFvlO6rQM8GKxsuyQWTBG8Bv6bkA+61SWFl1R5g==", null, false, "553407f9-7fee-4c07-b1e7-4523592d191f", false, "admin" });
migrationBuilder.InsertData( migrationBuilder.InsertData(
table: "CompanyInfo", table: "CompanyInfo",

View File

@@ -55,7 +55,7 @@ namespace ConstructorApp.DataAccessLayer.Migrations
new new
{ {
Id = 1, Id = 1,
ConcurrencyStamp = "3abf73f8-a18f-4452-9c3f-d8abf48c18c5", ConcurrencyStamp = "861b2f73-621f-401d-ae7f-90386fb8ee33",
Name = "Admin", Name = "Admin",
NormalizedName = "ADMIN" NormalizedName = "ADMIN"
}); });
@@ -148,7 +148,7 @@ namespace ConstructorApp.DataAccessLayer.Migrations
{ {
Id = 1, Id = 1,
AccessFailedCount = 0, AccessFailedCount = 0,
ConcurrencyStamp = "b899157c-b38b-43f9-8fdf-f04d21a0370c", ConcurrencyStamp = "49a67b10-c6cd-45a8-a985-a0f3a0fc638b",
ConfirmCode = 0, ConfirmCode = 0,
Email = "admin@example.com", Email = "admin@example.com",
EmailConfirmed = true, EmailConfirmed = true,
@@ -158,9 +158,9 @@ namespace ConstructorApp.DataAccessLayer.Migrations
LockoutEnabled = false, LockoutEnabled = false,
NormalizedEmail = "ADMIN@EXAMPLE.COM", NormalizedEmail = "ADMIN@EXAMPLE.COM",
NormalizedUserName = "ADMIN", NormalizedUserName = "ADMIN",
PasswordHash = "AQAAAAIAAYagAAAAEDNJ/hC+Ey7MpD2q6eaGnJn6CQmUyNUgiZiUCdHqiAhGJsnhm+Q3VY+xhEZALFzeOA==", PasswordHash = "AQAAAAIAAYagAAAAEN1z37odF5cuQmrziBf4IXBIfLIAFvlO6rQM8GKxsuyQWTBG8Bv6bkA+61SWFl1R5g==",
PhoneNumberConfirmed = false, PhoneNumberConfirmed = false,
SecurityStamp = "6d0581e4-af84-4438-aa89-17362a9302f4", SecurityStamp = "553407f9-7fee-4c07-b1e7-4523592d191f",
TwoFactorEnabled = false, TwoFactorEnabled = false,
UserName = "admin" UserName = "admin"
}); });

View File

@@ -7,6 +7,6 @@
}, },
"AllowedHosts": "*", "AllowedHosts": "*",
"ConnectionStrings": { "ConnectionStrings": {
"mssql": "Server=mssql_container;initial Catalog=CONSTRUCTOR;User ID=sa;Password=13579spP!!!!;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True" "mssql": "Server=mssql_container;initial Catalog=CONSTRUCTOR;User ID=sa;Password=XeFu*t7VXFE&s%)_HwKDk!;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True"
} }
} }

View File

@@ -34,6 +34,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="wwwroot\Images\" />
<Folder Include="wwwroot\SeedData\" /> <Folder Include="wwwroot\SeedData\" />
</ItemGroup> </ItemGroup>

View File

@@ -40,6 +40,17 @@ namespace ConstructorAppUI.Controllers
[HttpGet] [HttpGet]
public IActionResult CreateProject() public IActionResult CreateProject()
{ {
ViewBag.StatusList = Enum.GetValues(typeof(ProjectStatus))
.Cast<ProjectStatus>()
.Select(e => new SelectListItem
{
Value = ((int)e).ToString(), // INT OLARAK VALUE
Text = e.GetType()
.GetMember(e.ToString())
.First()
.GetCustomAttribute<DisplayAttribute>()?.Name ?? e.ToString()
}).ToList();
return View(); return View();
} }
@@ -116,9 +127,7 @@ namespace ConstructorAppUI.Controllers
return View(values); return View(values);
} }
return View(new UpdateProjectDto());
return View();
} }
[HttpPost] [HttpPost]

View File

@@ -116,7 +116,5 @@ namespace ConstructorAppUI.Controllers
return RedirectToAction("Index", "ProjectGallery", new { id = projectId }); return RedirectToAction("Index", "ProjectGallery", new { id = projectId });
} }
} }
} }

View File

@@ -4,15 +4,13 @@
Layout = null; Layout = null;
} }
<!DOCTYPE html>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<!-- Head --> <!-- Head -->
<head> <head>
<title>Constructor Web-App Login</title> <title>PLK Construct Login</title>
<!-- Meta-Tags --> <!-- Meta-Tags -->
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">

View File

@@ -83,7 +83,13 @@
<input type="file" class="form-control" name="FloorPlanFile" id="FloorPlanFile"> <input type="file" class="form-control" name="FloorPlanFile" id="FloorPlanFile">
<span asp-validation-for="FloorPlanUrl" class="text-danger"></span> <span asp-validation-for="FloorPlanUrl" class="text-danger"></span>
</div> </div>
<div class="form-group">
<label for="Status">Proje Durumu</label>
<select asp-for="Status" class="form-control" asp-items="@(ViewBag.StatusList as List<SelectListItem>)">
<option value="">Durum Seçiniz</option>
</select>
<span asp-validation-for="Status" class="text-danger"></span>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -46,10 +46,10 @@
</div> </div>
<!-- Görsel CoverUrl --> <!-- Görsel CoverUrl -->
<div class="form-group"> <div class="form-group">
<label for="ImageFile">Kapak Görseli</label><br /> <label for="CoverFile">Kapak Görseli</label><br />
<span class="badge badge-danger">Tema Bütünlüğü için Görsel Boyutu 775x524 olmalıdır.</span> <span class="badge badge-danger">Tema Bütünlüğü için Görsel Boyutu 775x524 olmalıdır.</span>
<input type="file" class="form-control" name="CoverFile" id="ImageFile"> <input type="file" class="form-control" name="CoverFile" id="CoverFile">
@if (!string.IsNullOrEmpty(Model.CoverUrl)) @if (Model != null && !string.IsNullOrEmpty(Model.CoverUrl))
{ {
<img src="@Model.CoverUrl" alt="Görsel" class="img-fluid mt-2" style="width: 100px; height: 100px;"> <img src="@Model.CoverUrl" alt="Görsel" class="img-fluid mt-2" style="width: 100px; height: 100px;">
} }
@@ -85,10 +85,10 @@
<!-- Görsel FloorPlanFile --> <!-- Görsel FloorPlanFile -->
<div class="form-group"> <div class="form-group">
<label for="ImageFile">Kat Planı</label><br /> <label for="FloorPlanFile">Kat Planı</label><br />
<span class="badge badge-danger">Tema Bütünlüğü için Görsel Boyutu 775x524 olmalıdır.</span> <span class="badge badge-danger">Tema Bütünlüğü için Görsel Boyutu 775x524 olmalıdır.</span>
<input type="file" class="form-control" name="FloorPlanFile" id="FloorPlanFile"> <input type="file" class="form-control" name="FloorPlanFile" id="FloorPlanFile">
@if (!string.IsNullOrEmpty(Model.FloorPlanUrl)) @if (Model != null && !string.IsNullOrEmpty(Model.FloorPlanUrl))
{ {
<img src="@Model.FloorPlanUrl" alt="Görsel" class="img-fluid mt-2" style="width: 100px; height: 100px;"> <img src="@Model.FloorPlanUrl" alt="Görsel" class="img-fluid mt-2" style="width: 100px; height: 100px;">
} }

View File

@@ -1,7 +1,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>AdminLTE 3 | Dashboard</title> <title>PLK Construct | Admin Panel</title>
<!-- Google Font: Source Sans Pro --> <!-- Google Font: Source Sans Pro -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">

View File

@@ -1,9 +1,12 @@
<head> <head>
<title>Home</title>
<meta charset="utf-8"> <meta charset="utf-8">
<title>PLK Construct | Müteahitler ve İnşaat Firmaları için Admin Panelli Dinamik Web Sitesi </title>
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0"> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0">
<meta name="keywords" content="yazılım geliştirme, web sitesi tasarımı, bilişim firması">
<meta name="description" content="Profesyonel yazılım geliştirme ve web tasarım hizmetleri sunuyoruz. İşletmeniz için modern ve etkili çözümler.">
<link rel="canonical" href="https://www.polikarbilisim.com">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="icon" href="images/favicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Montserrat:300,400,500,700,800"> <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Montserrat:300,400,500,700,800">
<link rel="stylesheet" href="~/WebTheme/css/bootstrap.css"> <link rel="stylesheet" href="~/WebTheme/css/bootstrap.css">
<link rel="stylesheet" href="~/WebTheme/css/fonts.css"> <link rel="stylesheet" href="~/WebTheme/css/fonts.css">

View File

@@ -7,7 +7,7 @@
}, },
"AllowedHosts": "*", "AllowedHosts": "*",
"ConnectionStrings": { "ConnectionStrings": {
"mssql": "Server=SABI\\SQLEXPRESS;initial Catalog=CONSTRUCTOR;User ID=sa;Password=13579spP!!!!;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True" "mssql": "Server=SABI;initial Catalog=CONSTRUCTOR;User ID=sa;Password=13579spP!!!!;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True"
}, },
"ApiSettings": { "ApiSettings": {
"BaseUrl": "https://localhost:7040" "BaseUrl": "https://localhost:7040"

View File

@@ -7,12 +7,12 @@
}, },
"AllowedHosts": "*", "AllowedHosts": "*",
"ConnectionStrings": { "ConnectionStrings": {
"mssql": "Server=mssql_container;initial Catalog=CONSTRUCTOR;User ID=sa;Password=13579spP!!!!;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True" "mssql": "Server=mssql_container;initial Catalog=CONSTRUCTOR;User ID=sa;Password=XeFu*t7VXFE&s%)_HwKDk!;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True"
}, },
"ApiSettings": { "ApiSettings": {
"BaseUrl": "https://dev.triada.polikarbilisim.com" "BaseUrl": "https://dev.cond.polikarbilisim.com"
}, },
"SignalRHubSettings": { "SignalRHubSettings": {
"BaseUrl": "https://dev.triada.polikarbilisim.com" "BaseUrl": "https://dev.cond.polikarbilisim.com"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 471 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

1
README.md Normal file
View File

@@ -0,0 +1 @@
# ConstructorApp