19 Ağustos 2021 Perşembe

C# Linq Select'in içerisinde istenilen tüm işlemleri yapmak

 List<TaskDto> tasks = pagedAndFilteredTasks.Select(o =>
            {
                var assigneds = ObjectMapper.Map<List<TaskAssignedDto>>(o.Assigneds.ToList());

                return new TaskDto
                { 
                    Subject = o.Subject,
                    Content = o.Content,
                    IsImportant = o.IsImportant,
                    IsPrivate = o.IsPrivate,
                    TaskType = o.TaskType,
                    ActionTime = o.ActionTime,
                    Id = o.Id,
                    Assigneds = assigneds
                };
            }).ToList();

Select süslü parantezinin içerisinde istediğimiz değişkeni oluşturup istediğimiz işlemleri uygulayıp aşağıda return ederken kullanabiliyoruz

25 Haziran 2021 Cuma

Typescript object array'i tekilleştirme

  const keys = ["question"];  //tekilleştirilecek olan field


        this.task.questions = this.task.questions.filter((s => o => (k => !s.has(k) && s.add(k)) (keys.map(k => o[k]).join('|'))) (new Set));




------------------------------------------------

bu kısımda da farklı fieldları olmayan diziyi tekilleştiriyor

var myArray = ['a', 1, 'a', 2, '1'];

let unique = [...new Set(myArray)];

11 Mayıs 2021 Salı

Typescript async for örneği

Selamlar!

Bazı durumlarda asenkron for işlemi gerekiyor. Bu işlemler için alttaki kodu kullanabilirsiniz:


for await (let dizininElemani of this.dizi) {         
                dizininElemani.property = "ben yeni value'yum";           
        }


İyi günler!

12 Nisan 2021 Pazartesi

Çalıştır kısmına istediğiniz ismi yazarak kendi uygulamanızı çalıştırma yöntemi

Merhabalar!

Bu yazımızda Başlat -> Çalıştır (Win + R) kısmından istediğimiz uygulamayı direk çalıştırabilme yöntemini anlatacağım.

  • Öncelikle Kayıt defteri'ni açıyoruz. (Veya başka bir yoluyla Win + R yaptıktan sonra regedit yazabilirsiniz)


  • Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths Yoluna gidiyoruz.


  • App Paths'a sağ klik atıp New -> Key diyoruz.



  • Çalıştır'a yazmak istediğimiz ismin sonuna .exe ekleyerek bir klasör oluşturuyoruz.  Örneğin ben bdoboss.exe yazıyorum.



  • Sağ tarafta oluşan (Default) isimli nesneye çift klik atıyoruz ve "Value data:" şeklinde istediği alana programımızın tüm uzantısını yazıyoruz. (Örnek olması için yazıyorum bendeki uzantı şu şekilde: C:\Users\DEVELOPER01\source\repos\virDeneme\virDeneme\bin\Debug\netcoreapp3.1\virDeneme.exe )


  • Yine sağdaki boş bir alana sağ klik atıp New -> String Value seçeneğini seçiyoruz.



  • New Value #1 şeklinde oluşan ismine Path yazıyoruz.


  • Path'e çift klik atıp "Value data:" alanına az önceki tüm uzantısınız verdiğimiz programımızın sadece yolunu yazıyoruz. (Yine örnek olması için bendeki yolu yazıyorum: C:\Users\DEVELOPER01\source\repos\virDeneme\virDeneme\bin\Debug\netcoreapp3.1 )



  • Tebrikler! Artık Çalıştır'a ayarladığınız ismi yazarak programınızı çalıştırabilirsiniz!










27 Ocak 2021 Çarşamba

C# Kullanıcı arayüzü (UI) donmadan async metod kullanımı

Sayfamıza bir adet buton ve bir adet label ekleyelim.

Yeni thread açmadan async şekilde fonksiyon çalıştırma yöntemi:

private async void button1_Click(object sender, EventArgs e)     
{           
        var t = Task.Factory.StartNew(async () =>
                {
                     for (int i = 0i < 1000000i++)
                     {
                        await Task.Delay(1);
                        label1.Text = i.ToString();
                     }
                },CancellationToken.None,
                TaskCreationOptions.None,
                TaskScheduler.FromCurrentSynchronizationContext());
 }

------------------------------------------------------------------------------------------------

Yeni thread açarak (eski tarz) async metod çalıştırma yöntemi:

public
Form1()
{
     InitializeComponent();
     Control.CheckForIllegalCrossThreadCalls = false;
 }

private async void button1_Click(object sender, EventArgs e)
{
            await Task.Run(() =>
            {
                for (int i = 0; i < 1000000; i++)
                {
                    label1.Text = i.ToString();
                }
            });
}

Bu yöntem daha fazla thread oluşturarak işlemciyi daha fazla yoracaktır.