ASP NET CORE RAZOR PAGE BAKIM TEKNİK SERVİS PROJESİ 038 BAKIM HİZMETİ GET HANDLER METODU

Bu dersimizde artık bakım kayıtları ile ilgili işlemlere başlayalım. Yöneticimiz sisteme girdiğinde bir kullanıcıya ait makineleri göster dediğinde bu makinelere ilişkin bakım hizmetleri seçebilsin istiyorum. Yani herhangi bir kişinin bir alışveriş sitesine girdiğinde ürünleri alışveriş sepetine atması gibi hayal edin. Zaten biz önceki derslerde bakım ile ilgili bir kart yani bir sepet oluşturduk aslında. Yönetici herhangi bir makineyi seçecek, buna ilişkin bakım tiplerini seçebilecek ve bir bakım özet sayfasında eklemek istediği bakımları, bunların fiyatları görebilecek. İsterse eklediğini tekrar kaldırabilecek. Yöneticinin ayrıca bakımları listelediği alanı da bir combobox yapalım, böylelikle combobox nasıl kullanılıyor onu da görmüş oluruz.

Detaylı anlatım ve kod takibi için videoya mutlaka bakınız.

 Projemize dönelim. Öncelikle projemde Pages klasörü altında yeni bir klasör oluşturuyorum. Bu klasörün adını Bakimlar veriyorum. Akabinde bu klasör içine geliyor yeni bir razor page ekliyorum. Ayarlarım bu noktada varsayılan şekli ile kalıyor, ismini Create veriyorum.

Buradan pagemodel tarafına geçiyor ve kodlarımı yazmaya başlıyorum.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using GursoyCNCBakim.Data;
using GursoyCNCBakim.Models;
using GursoyCNCBakim.Models.ViewModel;
using GursoyCNCBakim.Utility;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;

namespace GursoyCNCBakim.Pages.Bakimlar
{
    [Authorize(Roles = StatikRoller.AdminKullanici)]
    public class CreateModel : PageModel
    {
        

        private readonly ApplicationDbContext _db;

        [BindProperty]
        public MakineBakimHizmetiViewModel MakineBakimHizmetiViewModel { get; set; }

        public CreateModel(ApplicationDbContext db)
        {
            _db = db;
        }

        public async Task< IActionResult > OnGet(int makineId)
        {
            MakineBakimHizmetiViewModel = new MakineBakimHizmetiViewModel
            {
                Makine = await _db.Makine.Include(a => a.ApplicationUser).FirstOrDefaultAsync(a => a.Id == makineId),
                BakimHizmetiGenel = new Models.BakimHizmetiGenel()
            };

            List< String> BakimHizmetiKartIciBakimTipleriListesi = _db.BakimHizmetKart.Include(a => a.BakimTipi).Where(a => a.MakineId == makineId).Select(a => a.BakimTipi.BakimAdi).ToList();

            IQueryable< BakimTipi> BakimListesi = from x in _db.BakimTipi where !(BakimHizmetiKartIciBakimTipleriListesi.Contains(x.BakimAdi)) select x;

            MakineBakimHizmetiViewModel.BakimTipleriListesi = BakimListesi.ToList();

            MakineBakimHizmetiViewModel.BakimHizmetKart = _db.BakimHizmetKart.Include(a => a.BakimTipi).Where(a => a.MakineId == makineId).ToList();

            MakineBakimHizmetiViewModel.BakimHizmetiGenel.ToplamFiyat = 0;

            foreach (var item in MakineBakimHizmetiViewModel.BakimHizmetKart)
            {
                MakineBakimHizmetiViewModel.BakimHizmetiGenel.ToplamFiyat += item.BakimTipi.BakimFiyati;
            }

            return Page();

        }
    }
}

Bir sonraki derste görüşmek üzere.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir