Compare commits

..

2 Commits

Author SHA1 Message Date
3805d07494 Organizasyon Tablosu Eklendi. 2025-08-15 00:08:26 +03:00
663784484e görsel 2025-08-11 11:51:35 +03:00
13 changed files with 883 additions and 25 deletions

View File

@@ -9,29 +9,33 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Bunifu.UI.WinForms" Version="9.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.7" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.7">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.8" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.8">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations\" />
</ItemGroup>
<ItemGroup>
<Compile Update="FrmAddKullanici.cs">
<SubType>Form</SubType>
</Compile>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="FrmAddKullanici.resx">
<Generator></Generator>
</EmbeddedResource>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>

92
FrmLogin.Designer.cs generated
View File

@@ -35,24 +35,33 @@
label1 = new Label();
label2 = new Label();
fileSystemWatcher1 = new FileSystemWatcher();
pnlTop = new Panel();
btnExit = new Button();
label3 = new Label();
((System.ComponentModel.ISupportInitialize)fileSystemWatcher1).BeginInit();
pnlTop.SuspendLayout();
SuspendLayout();
//
// btnGiris
//
btnGiris.BackgroundImage = Properties.Resources.loginKapali;
btnGiris.BackgroundImageLayout = ImageLayout.Stretch;
btnGiris.FlatAppearance.BorderSize = 0;
btnGiris.FlatAppearance.MouseDownBackColor = Color.FromArgb(192, 255, 192);
btnGiris.FlatAppearance.MouseOverBackColor = Color.Lime;
btnGiris.FlatStyle = FlatStyle.Flat;
btnGiris.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
btnGiris.Location = new Point(149, 90);
btnGiris.Location = new Point(123, 154);
btnGiris.Name = "btnGiris";
btnGiris.Size = new Size(75, 32);
btnGiris.Size = new Size(62, 48);
btnGiris.TabIndex = 0;
btnGiris.Text = "Giriş";
btnGiris.UseVisualStyleBackColor = true;
btnGiris.Click += btnGiris_Click;
//
// btnVazgec
//
btnVazgec.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
btnVazgec.Location = new Point(230, 90);
btnVazgec.Location = new Point(218, 162);
btnVazgec.Name = "btnVazgec";
btnVazgec.Size = new Size(75, 32);
btnVazgec.TabIndex = 1;
@@ -62,25 +71,28 @@
//
// txtKullanici
//
txtKullanici.Location = new Point(135, 22);
txtKullanici.Font = new Font("Segoe UI", 12F);
txtKullanici.Location = new Point(123, 76);
txtKullanici.Name = "txtKullanici";
txtKullanici.Size = new Size(170, 23);
txtKullanici.Size = new Size(170, 29);
txtKullanici.TabIndex = 2;
//
// txtSifre
//
txtSifre.Location = new Point(135, 61);
txtSifre.Font = new Font("Segoe UI", 12F);
txtSifre.Location = new Point(123, 115);
txtSifre.Name = "txtSifre";
txtSifre.Size = new Size(170, 23);
txtSifre.Size = new Size(170, 29);
txtSifre.TabIndex = 3;
txtSifre.UseSystemPasswordChar = true;
//
// label1
//
label1.AutoSize = true;
label1.BackColor = SystemColors.ActiveCaption;
label1.BackColor = Color.Transparent;
label1.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
label1.Location = new Point(56, 25);
label1.ForeColor = Color.White;
label1.Location = new Point(43, 84);
label1.Name = "label1";
label1.Size = new Size(74, 15);
label1.TabIndex = 4;
@@ -89,9 +101,10 @@
// label2
//
label2.AutoSize = true;
label2.BackColor = SystemColors.ActiveCaption;
label2.BackColor = Color.Transparent;
label2.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
label2.Location = new Point(99, 64);
label2.ForeColor = Color.White;
label2.Location = new Point(86, 123);
label2.Name = "label2";
label2.Size = new Size(34, 15);
label2.TabIndex = 5;
@@ -102,25 +115,71 @@
fileSystemWatcher1.EnableRaisingEvents = true;
fileSystemWatcher1.SynchronizingObject = this;
//
// pnlTop
//
pnlTop.BackColor = Color.FromArgb(255, 128, 0);
pnlTop.Controls.Add(btnExit);
pnlTop.Controls.Add(label3);
pnlTop.Dock = DockStyle.Top;
pnlTop.Location = new Point(0, 0);
pnlTop.Name = "pnlTop";
pnlTop.Size = new Size(347, 38);
pnlTop.TabIndex = 6;
pnlTop.MouseDown += pnlTop_MouseDown;
//
// btnExit
//
btnExit.Anchor = AnchorStyles.Top | AnchorStyles.Right;
btnExit.BackColor = Color.Red;
btnExit.FlatAppearance.BorderSize = 0;
btnExit.FlatAppearance.MouseDownBackColor = Color.FromArgb(255, 192, 192);
btnExit.FlatAppearance.MouseOverBackColor = Color.FromArgb(255, 128, 128);
btnExit.FlatStyle = FlatStyle.Flat;
btnExit.Font = new Font("Segoe UI", 9F, FontStyle.Bold);
btnExit.ForeColor = Color.White;
btnExit.Location = new Point(289, 2);
btnExit.Name = "btnExit";
btnExit.Size = new Size(51, 35);
btnExit.TabIndex = 7;
btnExit.Text = "X";
btnExit.UseVisualStyleBackColor = false;
btnExit.Click += btnExit_Click;
//
// label3
//
label3.AutoSize = true;
label3.Font = new Font("Segoe UI", 15F, FontStyle.Bold);
label3.ForeColor = Color.White;
label3.Location = new Point(12, 4);
label3.Name = "label3";
label3.Size = new Size(130, 28);
label3.TabIndex = 0;
label3.Text = "Login Formu";
//
// FrmLogin
//
AcceptButton = btnGiris;
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
BackColor = SystemColors.ActiveCaption;
BackColor = SystemColors.AppWorkspace;
CancelButton = btnVazgec;
ClientSize = new Size(316, 134);
ClientSize = new Size(347, 234);
ControlBox = false;
Controls.Add(pnlTop);
Controls.Add(label2);
Controls.Add(label1);
Controls.Add(txtSifre);
Controls.Add(txtKullanici);
Controls.Add(btnVazgec);
Controls.Add(btnGiris);
FormBorderStyle = FormBorderStyle.Fixed3D;
FormBorderStyle = FormBorderStyle.None;
Name = "FrmLogin";
StartPosition = FormStartPosition.CenterScreen;
Text = "Login";
Load += FrmLogin_Load;
((System.ComponentModel.ISupportInitialize)fileSystemWatcher1).EndInit();
pnlTop.ResumeLayout(false);
pnlTop.PerformLayout();
ResumeLayout(false);
PerformLayout();
}
@@ -134,5 +193,8 @@
private Label label1;
private Label label2;
private FileSystemWatcher fileSystemWatcher1;
private Panel pnlTop;
private Button btnExit;
private Label label3;
}
}

View File

@@ -3,6 +3,8 @@ using Microsoft.EntityFrameworkCore;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Buffers;
using System.Resources;
using DugunSalonu.Properties;
namespace DugunSalonu
{
@@ -10,9 +12,20 @@ namespace DugunSalonu
{
public FrmLogin()
{
InitializeComponent();
}
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool ReleaseCapture();
private void FrmLogin_Load(object sender, EventArgs e)
{
@@ -25,6 +38,7 @@ namespace DugunSalonu
private async void btnGiris_Click(object sender, EventArgs e)
{
try
{
using (dugunsalonuContext db = new dugunsalonuContext())
@@ -32,6 +46,8 @@ namespace DugunSalonu
var user = await db.kullanici.Where(k => k.kullaniciadi == txtKullanici.Text && k.aktif == true && k.parola == txtSifre.Text).FirstOrDefaultAsync();
if (user != null)
{
btnGiris.BackgroundImage = Resources.loginAcik;
Task.Delay(2000).Wait();
FrmAddKullanici f1 = new FrmAddKullanici();
f1.Show();
this.Hide();
@@ -46,6 +62,20 @@ namespace DugunSalonu
throw;
}
}
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void pnlTop_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
}
}

View File

@@ -0,0 +1,319 @@
// <auto-generated />
using System;
using DugunSalonu.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace DugunSalonu.Migrations
{
[DbContext(typeof(dugunsalonuContext))]
[Migration("20250814210347_mig12")]
partial class mig12
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.8")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("DugunSalonu.Models.Il", b =>
{
b.Property<int>("id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("id"));
b.Property<string>("adi")
.IsRequired()
.HasColumnType("text");
b.HasKey("id");
b.ToTable("il");
});
modelBuilder.Entity("DugunSalonu.Models.Ilce", b =>
{
b.Property<int>("id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("id"));
b.Property<int>("ILid")
.HasColumnType("integer")
.HasColumnName("ilid");
b.Property<string>("adi")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.HasKey("id");
b.HasIndex("ILid");
b.ToTable("ilce");
});
modelBuilder.Entity("DugunSalonu.Models.Kullanici", b =>
{
b.Property<int>("id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("id"));
b.Property<string>("adi")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property<bool>("admin")
.HasColumnType("boolean");
b.Property<bool>("aktif")
.HasColumnType("boolean");
b.Property<string>("ceptel")
.HasMaxLength(10)
.HasColumnType("character varying(10)");
b.Property<string>("eposta")
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property<string>("kullaniciadi")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property<string>("parola")
.IsRequired()
.HasColumnType("text");
b.Property<string>("soyadi")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.HasKey("id");
b.ToTable("kullanici");
});
modelBuilder.Entity("DugunSalonu.Models.Organizasyon", b =>
{
b.Property<int>("id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("id"));
b.Property<string>("aciklama")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("character varying(400)");
b.Property<string>("adi")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property<int>("ceptel")
.HasMaxLength(10)
.HasColumnType("integer");
b.Property<int?>("ceptel2")
.HasMaxLength(10)
.HasColumnType("integer");
b.Property<string>("damatyore")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("character varying(30)");
b.Property<decimal>("fiyat")
.HasColumnType("numeric(18,2)");
b.Property<string>("gelinyore")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("character varying(30)");
b.Property<int?>("iptal")
.HasColumnType("integer");
b.Property<string>("iptalaciklama")
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property<int?>("iptalkk")
.HasColumnType("integer");
b.Property<DateTime?>("iptalkts")
.HasColumnType("timestamp with time zone");
b.Property<int>("kk")
.HasColumnType("integer");
b.Property<DateTime>("kts")
.HasColumnType("timestamp with time zone");
b.Property<string>("organizasyondurum")
.IsRequired()
.HasMaxLength(10)
.HasColumnType("character varying(10)");
b.Property<string>("organizasyonsaati")
.IsRequired()
.HasColumnType("text");
b.Property<DateOnly>("organizasyontarihi")
.HasColumnType("date");
b.Property<DateOnly>("rezervasyontarihi")
.HasColumnType("date");
b.Property<string>("soyadi")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property<byte[]>("sozlesme")
.HasColumnType("bytea");
b.Property<DateOnly>("sozlesmetarihi")
.HasColumnType("date");
b.HasKey("id");
b.ToTable("organizasyon");
});
modelBuilder.Entity("DugunSalonu.Models.Referans", b =>
{
b.Property<string>("adi")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property<bool>("aktif")
.HasColumnType("boolean");
b.Property<int>("id")
.HasColumnType("integer");
b.Property<int>("kk")
.HasColumnType("integer");
b.Property<string>("kodu")
.IsRequired()
.HasMaxLength(20)
.HasColumnType("character varying(20)");
b.Property<DateTime>("kts")
.HasColumnType("timestamp with time zone");
b.Property<string>("turu")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.HasIndex("turu", "kodu")
.IsUnique();
b.ToTable("referans");
});
modelBuilder.Entity("DugunSalonu.Models.Salon", b =>
{
b.Property<int>("id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("id"));
b.Property<string>("CepTel")
.IsRequired()
.HasMaxLength(10)
.HasColumnType("character varying(10)");
b.Property<string>("adi")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("character varying(150)");
b.Property<string>("adres")
.HasMaxLength(250)
.HasColumnType("character varying(250)");
b.Property<string>("eposta")
.IsRequired()
.HasColumnType("text");
b.Property<int?>("ilceid")
.HasColumnType("integer");
b.Property<int?>("ilid")
.HasColumnType("integer");
b.Property<string>("telefon")
.HasColumnType("text");
b.Property<string>("vergidairesi")
.HasColumnType("text");
b.Property<string>("verginumarasi")
.HasColumnType("text");
b.Property<string>("webadres")
.HasColumnType("text");
b.HasKey("id");
b.HasIndex("ilid");
b.ToTable("salon");
});
modelBuilder.Entity("DugunSalonu.Models.Ilce", b =>
{
b.HasOne("DugunSalonu.Models.Il", "Il")
.WithMany("ilceler")
.HasForeignKey("ILid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Il");
});
modelBuilder.Entity("DugunSalonu.Models.Salon", b =>
{
b.HasOne("DugunSalonu.Models.Il", "il")
.WithMany("salons")
.HasForeignKey("ilid");
b.Navigation("il");
});
modelBuilder.Entity("DugunSalonu.Models.Il", b =>
{
b.Navigation("ilceler");
b.Navigation("salons");
});
#pragma warning restore 612, 618
}
}
}

View File

@@ -0,0 +1,55 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace DugunSalonu.Migrations
{
/// <inheritdoc />
public partial class mig12 : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "organizasyon",
columns: table => new
{
id = table.Column<int>(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
rezervasyontarihi = table.Column<DateOnly>(type: "date", nullable: false),
sozlesmetarihi = table.Column<DateOnly>(type: "date", nullable: false),
organizasyontarihi = table.Column<DateOnly>(type: "date", nullable: false),
organizasyonsaati = table.Column<string>(type: "text", nullable: false),
adi = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: false),
soyadi = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: false),
ceptel = table.Column<int>(type: "integer", maxLength: 10, nullable: false),
ceptel2 = table.Column<int>(type: "integer", maxLength: 10, nullable: true),
gelinyore = table.Column<string>(type: "character varying(30)", maxLength: 30, nullable: false),
damatyore = table.Column<string>(type: "character varying(30)", maxLength: 30, nullable: false),
aciklama = table.Column<string>(type: "character varying(400)", maxLength: 400, nullable: false),
organizasyondurum = table.Column<string>(type: "character varying(10)", maxLength: 10, nullable: false),
fiyat = table.Column<decimal>(type: "numeric(18,2)", nullable: false),
kts = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
kk = table.Column<int>(type: "integer", nullable: false),
sozlesme = table.Column<byte[]>(type: "bytea", nullable: true),
iptal = table.Column<int>(type: "integer", nullable: true),
iptalkk = table.Column<int>(type: "integer", nullable: true),
iptalkts = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
iptalaciklama = table.Column<string>(type: "character varying(200)", maxLength: 200, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_organizasyon", x => x.id);
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "organizasyon");
}
}
}

View File

@@ -17,7 +17,7 @@ namespace DugunSalonu.Migrations
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "9.0.7")
.HasAnnotation("ProductVersion", "9.0.8")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
@@ -109,6 +109,95 @@ namespace DugunSalonu.Migrations
b.ToTable("kullanici");
});
modelBuilder.Entity("DugunSalonu.Models.Organizasyon", b =>
{
b.Property<int>("id")
.ValueGeneratedOnAdd()
.HasColumnType("integer");
NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("id"));
b.Property<string>("aciklama")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("character varying(400)");
b.Property<string>("adi")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property<int>("ceptel")
.HasMaxLength(10)
.HasColumnType("integer");
b.Property<int?>("ceptel2")
.HasMaxLength(10)
.HasColumnType("integer");
b.Property<string>("damatyore")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("character varying(30)");
b.Property<decimal>("fiyat")
.HasColumnType("numeric(18,2)");
b.Property<string>("gelinyore")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("character varying(30)");
b.Property<int?>("iptal")
.HasColumnType("integer");
b.Property<string>("iptalaciklama")
.HasMaxLength(200)
.HasColumnType("character varying(200)");
b.Property<int?>("iptalkk")
.HasColumnType("integer");
b.Property<DateTime?>("iptalkts")
.HasColumnType("timestamp with time zone");
b.Property<int>("kk")
.HasColumnType("integer");
b.Property<DateTime>("kts")
.HasColumnType("timestamp with time zone");
b.Property<string>("organizasyondurum")
.IsRequired()
.HasMaxLength(10)
.HasColumnType("character varying(10)");
b.Property<string>("organizasyonsaati")
.IsRequired()
.HasColumnType("text");
b.Property<DateOnly>("organizasyontarihi")
.HasColumnType("date");
b.Property<DateOnly>("rezervasyontarihi")
.HasColumnType("date");
b.Property<string>("soyadi")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("character varying(50)");
b.Property<byte[]>("sozlesme")
.HasColumnType("bytea");
b.Property<DateOnly>("sozlesmetarihi")
.HasColumnType("date");
b.HasKey("id");
b.ToTable("organizasyon");
});
modelBuilder.Entity("DugunSalonu.Models.Referans", b =>
{
b.Property<string>("adi")

68
Models/Organizasyon.cs Normal file
View File

@@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.Design.Serialization;
using System.Data.SqlTypes;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DugunSalonu.Models
{
public class Organizasyon
{
[Key]
public int id { get; set; }
[Required]
public required DateOnly rezervasyontarihi { get; set; } = DateOnly.FromDateTime(DateTime.Now);
[Required]
public required DateOnly sozlesmetarihi { get; set; }
[Required]
public required DateOnly organizasyontarihi { get; set; }
[Required]
public required string organizasyonsaati { get; set; } //referans tablosundan alınacak.
[Required]
[MaxLength(50)]
public required string adi { get; set; }
[Required]
[MaxLength(50)]
public required string soyadi { get; set; }
public string adisoyadi { get { return $"{adi} {soyadi}"; } }
[Required]
[MaxLength(10)]
[MinLength(10)]
public required int ceptel { get; set; }
[MaxLength(10)]
[MinLength(10)]
public int? ceptel2 { get; set; }
[Required]
[MaxLength(30)]
public required string gelinyore { get; set; }
[Required]
[MaxLength(30)]
public required string damatyore { get; set; }
[Required]
[MaxLength(400)]
public required string aciklama { get; set; }
[Required]
[MaxLength(10)]
public required string organizasyondurum { get; set; } // referans tablosundan alınacak.
[Required]
public required Decimal fiyat { get; set; }
[Required]
public required DateTime kts { get; set; } = DateTime.UtcNow;
[Required]
public required int kk { get; set; }
public byte[]? sozlesme { get; set; }
public int? iptal { get; set; }
public int? iptalkk { get; set; }
public DateTime? iptalkts { get; set; }
[MaxLength(200)]
public string? iptalaciklama { get; set; }
}
}

View File

@@ -19,6 +19,7 @@ namespace DugunSalonu.Models
public DbSet<Referans> referans { get; set; }
public DbSet<Organizasyon> organizasyon { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
@@ -29,6 +30,13 @@ namespace DugunSalonu.Models
modelBuilder.Entity<Referans>().HasNoKey();
modelBuilder.Entity<Il>().HasMany<Ilce>(i => i.ilceler);
modelBuilder.Entity<Ilce>().HasOne<Il>(i => i.Il);
//fiyat için oluşturulan alanın tipini belirtmek için yapıldı.
modelBuilder.Entity<Organizasyon>(entity =>
{
entity.Property(e => e.fiyat)
.HasColumnType("numeric(18,2)"); // 18 basamak, 2 ondalık
});
/*
// kts alanı için default değer
modelBuilder.Entity<Referans>()

93
Properties/Resources.Designer.cs generated Normal file
View File

@@ -0,0 +1,93 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Bu kod araç tarafından oluşturuldu.
// Çalışma Zamanı Sürümü:4.0.30319.42000
//
// Bu dosyada yapılacak değişiklikler yanlış davranışa neden olabilir ve
// kod yeniden oluşturulursa kaybolur.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DugunSalonu.Properties {
using System;
/// <summary>
/// Yerelleştirilmiş dizeleri aramak gibi işlemler için, türü kesin olarak belirtilmiş kaynak sınıfı.
/// </summary>
// Bu sınıf ResGen veya Visual Studio gibi bir araç kullanılarak StronglyTypedResourceBuilder
// sınıfı tarafından otomatik olarak oluşturuldu.
// Üye eklemek veya kaldırmak için .ResX dosyanızı düzenleyin ve sonra da ResGen
// komutunu /str seçeneğiyle yeniden çalıştırın veya VS projenizi yeniden oluşturun.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Bu sınıf tarafından kullanılan, önbelleğe alınmış ResourceManager örneğini döndürür.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DugunSalonu.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Tümü için geçerli iş parçacığının CurrentUICulture özelliğini geçersiz kular
/// CurrentUICulture özelliğini tüm kaynak aramaları için geçersiz kılar.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// System.Drawing.Bitmap türünde yerelleştirilmiş bir kaynak arar.
/// </summary>
internal static System.Drawing.Bitmap login {
get {
object obj = ResourceManager.GetObject("login", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap türünde yerelleştirilmiş bir kaynak arar.
/// </summary>
internal static System.Drawing.Bitmap loginAcik {
get {
object obj = ResourceManager.GetObject("loginAcik", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap türünde yerelleştirilmiş bir kaynak arar.
/// </summary>
internal static System.Drawing.Bitmap loginKapali {
get {
object obj = ResourceManager.GetObject("loginKapali", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

130
Properties/Resources.resx Normal file
View File

@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="loginAcik" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\loginAcik.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="login" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\login.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="loginKapali" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\loginKapali.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

BIN
Resources/login.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
Resources/loginAcik.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
Resources/loginKapali.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB