Şimdi projemize Bakım Tipleri ekleme ile devam edebiliriz. Bakım Tipi ekleme işini Admin rolüne sahip olan kullanıcılar yapabilecek. Bakım Tipi ekleme, bakım tipleri için fiyat verme, bakım tipi güncelleme, detay görüntüleme, bakım tipi silme gibi işlemleri ele alacağız.
Dersin Video versiyonunu da izlemenizi öneririm.
İlk önce Bakım Tipi için bir model oluşturmalıyız. Müşteri bizden hizmet aldığında kendi CNC tezgahı için 100 saatlik çalışma bakımı, 500 saatlik çalışma bakımı, kaçak-basınç kontrolleri, sürücü fan ve klima temizlikleri vs gibi hizmetler aldığını düşünelim. Bunların her biri bir bakım tipi.
Şimdi öncelikle projemde yeni bir klasör oluşturuyorum ve adını Models verdim. Benim projemdeki tüm modellerim burada yer alacak. Buraya add diyerek yeni bir class ekliyorum. Class adını BakimTipi veriyorum. İçerisine üç tane property tanımlayacağım. Biri BakimAdi, diğeri BakimFiyati olacak. Bir de tabi Id alanı tanımlayacağım.
BakimTipi.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace GursoyCNCBakim.Models
{
public class BakimTipi
{
public int Id { get; set; }
[Required]
public string BakimAdi { get; set; }
[Required]
public double BakimFiyati { get; set; }
}
}
Burada BakimAdi ve BakimFiyati alanlarının boş geçilmesini istemediğim için Required attribute tanımlaması yaptım. Çünkü her bir bakımın adı ve fiyatı olmalı mutlaka.
Buradan ApplicationDbContext classıma gidiyor ve bu modelimi oraya tanımlıyorum.
using System;
using System.Collections.Generic;
using System.Text;
using GursoyCNCBakim.Models;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
namespace GursoyCNCBakim.Data
{
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions< ApplicationDbContext > options)
: base(options)
{
}
public DbSet< BakimTipi > BakimTipi { get; set; }
}
}
Not: Kodları video ders üzerinden daha detaylı takip edebilirsiniz.
Bu işlemler bittikten sonra benim bu değişikliği database tarafına yansıtmam gerek. Package Manager Console’a geliyorum ve burada ilgili migration oluşturma işlemimi yapıyorum.
Add-migration EkleBakimTipiDb şeklinde yazıyorum. Burada migration ismini anlamlı verin ki, ne yaptığını anlayın. Ben ekleme işlemi yaptığını vurgulamak istediğim için Ekle ibaresini başında kullandım. Hatta normalde ingilizce tercih ederim, bu bir eğitim videosu mümkün olduğunca global olmayan hususlar haricinde yer alan kısımlar açık anlaşılsın diye Türkçe devam edeceğim.
Bunu çalıştırınca migration dosyam oluşturuluyor.
using Microsoft.EntityFrameworkCore.Migrations;
namespace GursoyCNCBakim.Data.Migrations
{
public partial class EkleBakimTipiDb : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "BakimTipi",
columns: table => new
{
Id = table.Column< int >(nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
BakimAdi = table.Column< string >(nullable: false),
BakimFiyati = table.Column< double >(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_BakimTipi", x => x.Id);
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "BakimTipi");
}
}
}
Not: Kodları video ders üzerinden daha detaylı takip edebilirsiniz.
Akabinde değişikliği yansıtmak için package manager console tarafında update-database yazıyorum.
Değişiklikler görüleceği üzere yansıyor.

Index Razor Page Sayfasının Eklenmesi
İlk modelimizi oluşturduk ve db tarafına yansıttık. Şimdi temel CRUD işlemleri yapabilmek için BakimTipine ilişkin Index sayfamızı oluşturalım. Şu an projemi çalıştırdığımda ben Gizlilik linkini görebiliyorum.

Bu linki değiştirelim ve buraya Bakım Tipi yazalım. Buraya tıklanıldığında Bakım Tipi sayfası açılsın ve Bakım Tiplerimiz listelensin. Admin bu kısımda Bakım Tipi ekleme, detay görüntüleme, silme, güncelleme gibi işlemler yapabilsin.
Öncelikle Pages klasörü altında BakımTipleri adında bir klasör oluşturuyorum. Akabinde az önce açmış olduğum sayfadaki linki düzenlemek için _Layout.cshtml dosyam üzerinde değişiklik yapıyorum.
Yapılan değişiklik:
_Layout.cshtml Tüm kodları:
< !DOCTYPE html >
< head >
@ViewData["Title"] - Gursoy CNC Bakim Teknik Servis
< /head >
< body >
@RenderBody()
@RenderSection("Scripts", required: false)
< /body >
< /html >
Daha sonra BakımTipleri klasörümde sağ tıklıyor ve Add Razor Page diyerek boş bir Razor Page ekliyorum, adını da Index veriyorum. Seçeneklerimde Generate PageModel class ve Use Layout page seçili. Add diyorum. Sayfam ilgili model page ile eklenmiş oluyor. Index sayfamda içerik kısmında Bakım Tipleri yazıyorum.
@page
@model GursoyCNCBakim.Pages.BakimTipleri.IndexModel
@{
ViewData["Title"] = "Index";
Layout = "~/Pages/Shared/_Layout.cshtml";
}
Bakım Tipleri
Çalıştırdığımda istediğim gibi eklendiğini görüyorum.

Dersin video versiyonunu takip etmenizi tavsiye ederim, bir sonraki derste görüşmek üzere.