C# ASP.NET Controller içerisinde private method tanımlama

Chucker

Kilopat
Katılım
25 Ağustos 2016
Mesajlar
471
Çözümler
3
Daha fazla  
Cinsiyet
Erkek
Update ve create işlemleri için yazdığım kodlar birbirini tekrar ediyor ve bunun için private bir method oluşturmak aklıma geldi fakat bunu Controller içerisinde yapmak tavsiye edilen bir şey midir bilemedim. Action filter kullanmak daha mı mantıklı olur acaba?
 
Update ve create işlemleri için yazdığım kodlar birbirini tekrar ediyor ve bunun için private bir method oluşturmak aklıma geldi fakat bunu Controller içerisinde yapmak tavsiye edilen bir şey midir bilemedim. Action filter kullanmak daha mı mantıklı olur acaba?
Action metotlar private olamaz. Tekrar ediyorsa, kodu farklı classda yazıp action içerisinden metodu çağırabilirsin.
 
Action metotlar private olamaz. Tekrar ediyorsa, kodu farklı classda yazıp action içerisinden metodu çağırabilirsin.
Action metotları private yapmaya çalışmıyorum, amacım bazı action metotlar içerisinde aynı şeyler yapılıyor örneğin validasyon kontrolü gibi, bu şekilde tekrar eden yapıları controller içerisinde tanımladığım private normal bir metot ile kullanabilir miyim?
 
Action metotları private yapmaya çalışmıyorum, amacım bazı action metotlar içerisinde aynı şeyler yapılıyor örneğin validasyon kontrolü gibi, bu şekilde tekrar eden yapıları controller içerisinde tanımladığım private normal bir metot ile kullanabilir miyim?
Evet onları kullanabilirsin. Uyguladığın validation işlemleri nelerdir?
 
Create ve Update için yaptığım işlemler;
C#:
        [HttpPost]
        public async Task<IActionResult> CreateOneBookAsync([FromBody] BookDtoForInsertion bookDto)
        {
            if (bookDto is null)
                return BadRequest(); // 400

            if (!ModelState.IsValid)
                return UnprocessableEntity(ModelState);


            var book = await _manager.BookService.CreateOneBookAsync(bookDto);

            return StatusCode(201, book); // CreatedAtRoute()
        }

        [HttpPut("{id:int}")]
        public async Task<IActionResult> UpdateOneBookAsync([FromRoute(Name = "id")] int id,
            [FromBody] BookDtoForUpdate bookDto)
        {
            if (bookDto is null)
                return BadRequest(); // 400

            if (!ModelState.IsValid)
                return UnprocessableEntity(ModelState);

            await _manager.BookService.UpdateOneBookAsync(id, bookDto, false);
            return NoContent(); // 204
        }
gördüğünüz gibi hocam iki action için de null olma ve valid olma durumlarını kontrol ediyorum ama sanırım private bir metot yeterli olmayacak. Zaten şuan bir kurs üzerinden ilerliyorum ve bir sonraki konu Action Filters. Orada bu sorunu çözecek muhtemelen fakat yine de controller içerisinde actionlar hariç bir metot yazıp yazamadığımız kafamı kurcalayan bir soruydu teşekkür ederim.
 

Geri
Yukarı