public void Run() { var personNumber = int.Parse(Console.ReadLine()); var persons = new List <Person3>(); for (int i = 0; i < personNumber; i++) { string[] line = Console.ReadLine().Split(' '); var firstName = line[0]; var lastName = line[1]; var age = int.Parse(line[2]); var salary = decimal.Parse(line[3]); var person = new Person3(firstName, lastName, age, salary); persons.Add(person); } var team = new Team("SoftUni"); foreach (var person in persons) { team.AddPlayer(person); } Console.WriteLine($"First team has {team.First.Count} players."); Console.WriteLine($"Reserve team has {team.Reserve.Count} players."); }
public async Task TryUpdateModel_NonSettableCollectionModel_WithPrefix_GetsBound() { // Arrange var operationContext = ModelBindingTestHelper.GetOperationBindingContext(request => { request.QueryString = QueryString.Create("prefix.Address[0].Street", "SomeStreet"); }); var modelState = new ModelStateDictionary(); var model = new Person3(); // Act var result = await TryUpdateModel(model, "prefix", operationContext, modelState); // Assert Assert.True(result); // Model Assert.NotNull(model.Address); Assert.Equal(1, model.Address.Count); Assert.Equal("SomeStreet", model.Address[0].Street); // ModelState Assert.True(modelState.IsValid); Assert.Equal(1, modelState.Keys.Count); var key = Assert.Single(modelState.Keys, k => k == "prefix.Address[0].Street"); Assert.NotNull(modelState[key].Value); Assert.Equal("SomeStreet", modelState[key].Value.AttemptedValue); Assert.Equal("SomeStreet", modelState[key].Value.RawValue); Assert.Empty(modelState[key].Errors); Assert.Equal(ModelValidationState.Valid, modelState[key].ValidationState); }
/// <summary> /// Run the application. /// </summary> public override BoolMessageItem Execute() { Console.WriteLine("===================================================="); Console.WriteLine("Entity "); // Example 1 : Using Entity base class. IEntity entity = new Person() { Name = "kishore" }; Console.WriteLine("Id, Persistant and Audit fields."); Console.WriteLine("These fields are set by EntityService if using CommonLibrary Entity-Model Services."); Console.WriteLine("Id ", entity.Id); Console.WriteLine("IsPersistant ", entity.IsPersistant()); Console.WriteLine("CreateDate ", entity.CreateDate); Console.WriteLine("CreateUser ", entity.CreateUser); Console.WriteLine("UpdateDate ", entity.UpdateDate); Console.WriteLine("UpdateUser ", entity.UpdateUser); Console.WriteLine("UpdateComment ", entity.UpdateComment); // Example 2 : Using Entity<T> generic base class to get the parameterless CRUD methods. // 1st initialize the repositories. EntityRegistration.Register <Person2>(new RepositoryInMemory <Person2>("Id"), false); var p2 = new Person2() { Name = "kishore" }; p2.Create(); p2.Name = "updated"; p2.Update(); p2.GetAll(); p2.Save(); p2.Delete(); // Example 3 : Implement IEntityVersionable to get versioning on the entities. // Wrap the real repository w/ the RepositoryVersionable decorator to get versioning behaviour. EntityRegistration.Register <Person3>(new RepositoryVersioned <Person3>(new RepositoryInMemory <Person3>("Id,Version,VersionRefId")), false); var p3 = new Person3(); p3.Create(); p3.Name = "updated"; p3.Update(); p3.GetAll(); var p4 = new Person4(); p4.Name = "kishore"; p4.Phone = "111-111-1111"; p4.RegisterDate = DateTime.Today; p4.About = "artist"; p4.Age = 30; p4.Email = "*****@*****.**"; bool isValid = p4.IsValid; return(BoolMessageItem.True); }
private static void GetTypeMethodExample() { Person3 p = new Person3(); /* We can start considering reflection by looking at the GetType method. All objects * in a C# program expose this method, which will return a reference to the type that * defines the object. */ Type type = p.GetType(); Console.WriteLine("Person3 type: {0}", type.ToString()); }
private void InfluenciingBinarySerializationAndDeserialiation() { Console.WriteLine("Changing OnSerializing, OnSerialized, OnDeserializing and OnDeserialized methods of Serializable class"); Person3 person = new Person3 { ID = 2, Name = "Mayank2" }; IFormatter formatter = new BinaryFormatter(); using (MemoryStream stream = new MemoryStream()) { formatter.Serialize(stream, person); stream.Position = 0; formatter.Deserialize(stream); } }
public async Task TryUpdateModel_NonSettableCollectionModel_WithPrefix_GetsBound() { // Arrange var operationContext = ModelBindingTestHelper.GetOperationBindingContext(request => { request.QueryString = QueryString.Create("prefix.Address[0].Street", "SomeStreet"); }); var modelState = new ModelStateDictionary(); var model = new Person3 { Address = { new Address { Street = "Old street", City = "Redmond", }, new Address { Street = "Older street", City = "Toronto", }, }, }; // Act var result = await TryUpdateModel(model, "prefix", operationContext, modelState); // Assert Assert.True(result); // Model (collection is cleared and new members created from scratch). Assert.NotNull(model.Address); Assert.Equal(1, model.Address.Count); Assert.Equal("SomeStreet", model.Address[0].Street); Assert.Null(model.Address[0].City); // ModelState Assert.True(modelState.IsValid); var entry = Assert.Single(modelState); Assert.Equal("prefix.Address[0].Street", entry.Key); var state = entry.Value; Assert.NotNull(state.Value); Assert.Equal("SomeStreet", state.Value.AttemptedValue); Assert.Equal("SomeStreet", state.Value.RawValue); Assert.Empty(state.Errors); Assert.Equal(ModelValidationState.Valid, state.ValidationState); }
public async Task ActionParameter_NonSettableCollectionModel_EmptyPrefix_GetsBound() { // Arrange var argumentBinder = ModelBindingTestHelper.GetArgumentBinder(); var parameter = new ParameterDescriptor() { Name = "prefix", ParameterType = typeof(Person3) }; var operationContext = ModelBindingTestHelper.GetOperationBindingContext(request => { request.QueryString = QueryString.Create("Address[0].Street", "SomeStreet"); }); var modelState = new ModelStateDictionary(); var model = new Person3(); // Act var modelBindingResult = await argumentBinder.BindModelAsync(parameter, modelState, operationContext); // Assert Assert.NotNull(modelBindingResult); Assert.True(modelBindingResult.IsModelSet); // Model Assert.NotNull(modelBindingResult.Model); var boundModel = Assert.IsType <Person3>(modelBindingResult.Model); Assert.Equal(1, boundModel.Address.Count); Assert.Equal("SomeStreet", boundModel.Address[0].Street); // ModelState Assert.True(modelState.IsValid); Assert.Equal(1, modelState.Keys.Count); var key = Assert.Single(modelState.Keys, k => k == "Address[0].Street"); Assert.NotNull(modelState[key].Value); Assert.Equal("SomeStreet", modelState[key].Value.AttemptedValue); Assert.Equal("SomeStreet", modelState[key].Value.RawValue); Assert.Empty(modelState[key].Errors); Assert.Equal(ModelValidationState.Valid, modelState[key].ValidationState); }
public void Run() { var personNumber = int.Parse(Console.ReadLine()); var builder = new StringBuilder(); var persons = new List <Person3>(); for (int i = 0; i < personNumber; i++) { string[] line = Console.ReadLine().Split(' '); var firstName = line[0]; var lastName = line[1]; var age = int.Parse(line[2]); var salary = decimal.Parse(line[3]); try { var person = new Person3(firstName, lastName, age, salary); persons.Add(person); } catch (ArgumentException error) { persons.Add(null); builder.AppendLine(error.Message); } } var salaryRaisePercent = decimal.Parse(Console.ReadLine()); Console.Write(builder); foreach (var person in persons) { if (person != null) { person.RaiseSalary(salaryRaisePercent); Console.WriteLine(person); } } }
// ref: // https://channel9.msdn.com/Shows/On-NET/C-9-Language-Features?ocid=player // https://devblogs.microsoft.com/dotnet/c-9-0-on-the-record/ static void Main(string[] args) { var p1 = new Person("fred", "smith"); var fn = p1.FirstName; //p1.FirstName = "andy"; // --> error, readonly init // Can create a new object setting some props: 'with' keyword var p1new = p1 with { FirstName = "andy" }; var p2 = new Person2 { FirstName = "fred", LastName = "smith" }; //p2.FirstName = "dd";// --> error, readonly init var p3 = new Person3 { FirstName = "fred", LastName = "smith" }; p3.FirstName = "andy"; }
public async Task Create3Async() { ExpectException.Throws <ArgumentNullException>("*", () => _db.Persons3.CreateAsync(null)); var id = Guid.NewGuid(); var v = new Person3 { Id = id, Name = "Michelle", Birthday = new DateTime(1979, 08, 12), Salary = 181000m }; v = await _db.Persons3.CreateAsync(v); Assert.IsNotNull(v); Assert.AreNotEqual(id, v.Id); Assert.AreEqual("Michelle", v.Name); Assert.AreEqual(new DateTime(1979, 08, 12), v.Birthday); Assert.AreEqual(181000m, v.Salary); Assert.IsNotNull(v.ChangeLog); Assert.IsNotNull(v.ChangeLog.CreatedBy); Assert.IsNotNull(v.ChangeLog.CreatedDate); Assert.IsNull(v.ChangeLog.UpdatedBy); Assert.IsNull(v.ChangeLog.UpdatedDate); Assert.IsNotNull(await _db.Persons3.GetAsync(v.Id)); }
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. }