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);
        }
Exemple #4
0
        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);
        }
        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 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);
        }
Exemple #9
0
        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);
                }
            }
        }
Exemple #10
0
        // 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";
        }
Exemple #11
0
        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));
        }
Exemple #12
0
        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.
        }