public async Task TryUpdateModel_NonSettableArrayModel_WithPrefix_GetsBound() { // Arrange var operationContext = ModelBindingTestHelper.GetOperationBindingContext(request => { request.QueryString = QueryString.Create("prefix.Address[0].Street", "SomeStreet"); }); var modelState = operationContext.ActionContext.ModelState; var model = new Person5(); // Act var result = await TryUpdateModel(model, "prefix", operationContext); // Assert Assert.True(result); // Model Assert.NotNull(model.Address); // Arrays should not be updated. Assert.Equal(0, model.Address.Length); // ModelState Assert.True(modelState.IsValid); Assert.Empty(modelState); }
public async Task TryUpdateModel_NonSettableArrayModel_EmptyPrefix_IsNotBound() { // Arrange var testContext = ModelBindingTestHelper.GetTestContext(request => { request.QueryString = QueryString.Create("Address[0].Street", "SomeStreet"); }); var modelState = testContext.ModelState; var model = new Person5(); // Act var result = await TryUpdateModelAsync(model, string.Empty, testContext); // Assert Assert.True(result); // Model Assert.NotNull(model.Address); // Arrays should not be updated. Assert.Empty(model.Address); // ModelState Assert.True(modelState.IsValid); Assert.Empty(modelState); }
public void Update(Person5 person) { using (var context = new DTO.EF.Test5Entities()) { try { context.Entry(person).State = EntityState.Modified; context.SaveChanges(); } catch (Exception ex) { throw; } finally { context.Dispose(); } } }
public static void Main(string[] args) { /* * OBJECT ORIENTED PROGRAMMING - NESNE TABANLI PROGRAMLAMA * * CLASS : Yapmak istediğimiz işlemleri gruplara ayırıp daha düzenli ve profesyonel kodlar yazabilmek için kullanılan yapıdır. * PARENT / SUPER CLASS : Miras veren class' dır. * CHILD / SUB CLASS : Miras veren class' dır. * * ERİŞİM BELİRLEYİCİLER : Class veya instancelara nasıl erişebileceğimizi belirlerler. * * I) public : Her yerden erişim sağlanır. * II) private : Sadece tanımlandığı sınıfta erişim sağlanır. * III) internal : Sadece tanımlandığı projede erişim sağlanır. * IV) protected : Sadece tanımlandığı sınıfta veya mirasçı sınıfta erişim sağlanır. * V) protected internal : protected' dan farkı tanımlamanın aynı projede olmasına gerek yoktur. * VI) private protected : Sadece kendinden türetilmiş nesneler üzerinden kullanılabilir. * * Not : Eğer bir üye üzerinde yapılan değişiklik başka yapıları da etkiliyorsa veya zarar veriyorsa, o üye private tanımlanmalıdır, * Not : Private verilerin değerlerini alan ve ayarlayan metotlar public olmalıdır. */ //------------------------------------------------------------------------------------------------ CLASS ÇAĞRILDIĞI KISIM ------------------------------------------------------------------------------------------------- // KONU 1 : FIELD TANIMLAMA // INSTANCE : Bir class' dan üretilen nesnedir. Person p1 = new Person(); p1._Name = "Ali"; p1._Surname = "YILDIRIM"; p1._Age = 35; p1._Gender = 'e'; //Console.WriteLine($"{p1._Name} {p1._Surname} {p1._Age} {p1._Gender}"); //-------------------------------------------------------------------------------------------------------------------------------------------------------- // KONU 2 : ENCAPSULATION (KAPSÜLLEME) Person2 p2 = new Person2 { Name = "Ayşe", Surname = "KARATAŞ", Age = 15, Gender = 'k' }; // Üstte yazdığımız şekil dışında bu şekildede yazabiliriz. //Console.WriteLine($"{p2._Name} {p2._Surname} {p2._Age} {p2._Gender}"); //-------------------------------------------------------------------------------------------------------------------------------------------------------- // KONU 3 : INHERITANCE (KALITIM / MİRASLAMA) Person3 p3 = new Person3(); p3.Name = "Mehmet"; p3.Surname = "ATEŞ"; p3.FullName(p3.Name, p3.Surname); p3.Greetings(); //Console.WriteLine($"{p3.Name} {p3.Surname}"); Person4 p4 = new Person4(); p1._Name = "Tuana"; p1._Surname = "DEMİR"; p4.Age = 22; p4.FullName(p4.Name, p4.Surname); p4.Greetings(); //Console.WriteLine($"{p4.Name} {p4.Surname} {p4.Age}"); //-------------------------------------------------------------------------------------------------------------------------------------------------------- // KONU 4 : INHERITANCE (KALITIM / MİRASLAMA) Person5 p5 = new Person5(); p5.Greetings(); Person6 p6 = new Person6(); p6.Greetings(); //-------------------------------------------------------------------------------------------------------------------------------------------------------- // KONU 5 : ABSTRACT CLASS //Person7 p7 = new Person7(); >>> Abstract class' dan intance oluşturulamaz. Person8 p8 = new Person8(); p8.Greetings(); p8.GreetingsTR(); //-------------------------------------------------------------------------------------------------------------------------------------------------------- // KONU 6 : CONSTRUCTOR VE DESTRUCTOR METOTLAR Tructor tructor = new Tructor(); // Class' dan instance ürettiğim için constructor metodum otomatik çalışacak. string Name = "Gözde"; // Overload constructor metodum için parametre oluşturdum. Tructor tructor2 = new Tructor(Name); // Class' dan instance ürettiğim ve parametre oluşturduğum için overload constructor metodum otomatik çalışacak. }