├── .gitignore ├── LICENSE ├── README.md ├── TEAMWORK.md ├── Teamwork └── README.md └── Topics ├── 00. Course-intro ├── README.md ├── imgs │ ├── ninja.jpg │ ├── pic00.png │ ├── pic01.png │ ├── pic02.png │ ├── pic03.png │ ├── pic04.png │ ├── pic05.png │ ├── pic06.png │ ├── pic07.png │ ├── pic08.png │ ├── pic09.png │ ├── pic10.png │ ├── pic11.png │ ├── pic12.png │ ├── pic13.png │ ├── pic14.png │ ├── pic15.png │ ├── pic16.png │ ├── pic17.png │ ├── pic18.jpg │ ├── pic18.png │ ├── pic19.png │ ├── pic20.png │ ├── pic21.png │ ├── pic22.png │ ├── pic23.png │ ├── pic24.png │ ├── pic25.png │ ├── pic26.png │ ├── pic27.png │ ├── pic28.png │ ├── pic29.png │ ├── pic30.png │ ├── pic31.png │ ├── pic32.png │ ├── pic33.png │ ├── pic34.png │ ├── pic35.png │ ├── pic36.png │ ├── pic37.png │ ├── pic38.png │ ├── pic39.png │ ├── pic40.png │ ├── pic41.png │ ├── pic42.png │ ├── pic43.png │ ├── pic44.png │ ├── pic45.png │ ├── pic46.png │ ├── pic47.png │ ├── pic48.png │ ├── pic49.png │ ├── pic50.png │ ├── pic51.png │ ├── pic52.png │ └── pic53.png └── index.html ├── 01. Defining-Classes-Part-1 ├── README.md ├── demos │ ├── CofeeSize │ │ ├── 7. CofeeSize.csproj │ │ └── CofeeSize.cs │ ├── Constants │ │ ├── 1. Constants.csproj │ │ ├── Constants.cs │ │ └── Constants.sln │ ├── Constructors │ │ ├── 3. Constructors.csproj │ │ ├── AlarmClock.cs │ │ ├── Constructors.cs │ │ ├── Person.cs │ │ └── Point.cs │ ├── Defining-Classes-Demos.sln │ ├── Defining-Properties │ │ ├── 5. Defining Properties.csproj │ │ ├── DefiningProperties.cs │ │ ├── Rectangle.cs │ │ └── UserProfile.cs │ ├── DogMeeting │ │ ├── 2. Dog Meeting.csproj │ │ ├── Dog.cs │ │ └── DogMeeting.cs │ ├── Enums │ │ ├── 6. Enums.csproj │ │ └── EnumsExample.cs │ ├── Keep-the-Object-State │ │ ├── 8. Protect the Object State.csproj │ │ ├── Person.cs │ │ └── ProtectTheObjectStateDemo.cs │ └── Methods │ │ ├── 4. Methods.csproj │ │ └── MethodsExample.cs ├── homework │ └── README.md ├── imgs │ ├── pic00.png │ ├── pic01.png │ ├── pic02.png │ ├── pic03.png │ ├── pic04.png │ ├── pic05.png │ ├── pic06.png │ ├── pic07.png │ ├── pic08.png │ ├── pic09.png │ ├── pic10.png │ ├── pic11.png │ ├── pic12.png │ ├── pic13.png │ ├── pic14.png │ ├── pic15.png │ ├── pic16.png │ ├── pic17.png │ ├── pic18.png │ ├── pic19.png │ ├── pic20.png │ ├── pic21.png │ ├── pic22.png │ ├── pic23.png │ ├── pic24.png │ ├── pic25.png │ ├── pic26.png │ ├── pic27.png │ ├── pic28.png │ ├── pic29.png │ ├── pic30.png │ ├── pic31.png │ ├── pic32.png │ ├── pic33.png │ ├── pic34.png │ ├── pic35.png │ ├── pic36.png │ ├── pic37.png │ ├── pic38.png │ ├── pic39.png │ ├── pic40.png │ ├── pic41.png │ ├── pic42.png │ ├── pic43.png │ ├── pic44.png │ ├── pic45.png │ ├── pic46.png │ ├── pic47.png │ └── pic48.png └── index.html ├── 02. Defining-Classes-Part-2 ├── README.md ├── demos │ ├── Attributes │ │ ├── 09. Attributes.csproj │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── UsingAttributes.cs │ ├── Custom-Attributes │ │ ├── 10. Custom Attributes.csproj │ │ └── CustomAttributesDemo.cs │ ├── Defining-Classes.sln │ ├── Generic-Classes │ │ ├── 03. Generic Classes.csproj │ │ ├── GenericList.cs │ │ └── GenericListExample.cs │ ├── Generic-Constraints │ │ ├── 04. Generic Constraints.csproj │ │ └── GenericConstraints.cs │ ├── Generic-Methods │ │ ├── 05. Generic Methods.csproj │ │ └── GenericMethod.cs │ ├── Indexers │ │ ├── 07. Indexers.csproj │ │ └── Indexer.cs │ ├── Live demo - Generic List │ │ ├── CustomDataStructures.sln │ │ ├── CustomDataStructures │ │ │ ├── CustomDataStructures.csproj │ │ │ ├── GenericList{T}.cs │ │ │ └── Properties │ │ │ │ └── AssemblyInfo.cs │ │ └── Demos │ │ │ ├── App.config │ │ │ ├── Demos.csproj │ │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ │ └── Startup.cs │ ├── Namespaces │ │ ├── 06. Namespaces.csproj │ │ ├── SofiaUniversity.Data │ │ │ ├── Faculty.cs │ │ │ ├── Professor.cs │ │ │ ├── Specialty.cs │ │ │ └── Student.cs │ │ ├── SofiaUniversity.UI │ │ │ ├── ProfessorAdminForm .cs │ │ │ ├── ProfessorAdminForm .resx │ │ │ ├── StudentAdminForm.cs │ │ │ └── StudentAdminForm.resx │ │ └── SofiaUniversity │ │ │ └── AdministrationSystem.cs │ ├── Overloading-Operators │ │ ├── 08. Operators.csproj │ │ ├── Fraction.cs │ │ └── TestFractions.cs │ ├── StaticMembers │ │ ├── 01. Static Members.csproj │ │ └── SqrtPrecalculated.cs │ └── Structures │ │ ├── 02. Structures.csproj │ │ ├── Color.cs │ │ ├── Edges.cs │ │ ├── Point.cs │ │ ├── Square.cs │ │ └── StructuresExample.cs ├── homework │ └── README.md ├── imgs │ ├── pic00.png │ ├── pic01.png │ ├── pic02.png │ ├── pic03.png │ ├── pic04.png │ ├── pic05.png │ ├── pic06.png │ ├── pic07.png │ ├── pic08.png │ ├── pic09.png │ ├── pic10.png │ ├── pic11.png │ ├── pic12.png │ ├── pic13.png │ ├── pic14.png │ ├── pic15.png │ ├── pic16.png │ ├── pic17.png │ ├── pic18.png │ ├── pic19.png │ ├── pic20.png │ ├── pic21.png │ ├── pic22.png │ ├── pic23.png │ ├── pic24.png │ ├── pic25.png │ ├── pic26.png │ ├── pic27.png │ ├── pic28.png │ ├── pic29.png │ ├── pic30.png │ ├── pic31.png │ ├── pic32.png │ ├── pic33.png │ ├── pic34.png │ ├── pic35.png │ ├── pic36.png │ ├── pic37.png │ ├── pic38.png │ ├── pic39.png │ └── pic40.png └── index.html ├── 03. Extension-Methods-Delegates-Lambda-LINQ ├── README.md ├── demos │ ├── Action-And-Func │ │ ├── 07. Action-And-Func.csproj │ │ ├── ActionAndFunc.cs │ │ ├── App.config │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── Annonymous-Types │ │ ├── 02. Annonymous-Types.csproj │ │ └── AnnonymousTypes.cs │ ├── Delegates-Example │ │ ├── 03. Delegates-Example.csproj │ │ └── DelegatesExample.cs │ ├── DynamicType │ │ ├── 09. DynamicType.csproj │ │ ├── App.config │ │ ├── Dynamic.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── Student.cs │ ├── Events │ │ ├── 05. Events.csproj │ │ ├── App.config │ │ ├── ListWithChangedEvent.cs │ │ ├── Program.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── Extension-Methods-Delegates-Lambda-LINQ.sln │ ├── Extension-Methods │ │ ├── 01. Extension-Methods.csproj │ │ ├── ExtensionMethods.cs │ │ └── Extensions.cs │ ├── LINQ-Extenstion-Methods │ │ ├── 08. LINQ-Extenstion-Methods.csproj │ │ ├── App.config │ │ ├── Course.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── Student.cs │ │ └── StudentsRepository.cs │ ├── LINQ-Queries │ │ ├── 10. LINQ-Queries.csproj │ │ └── LINQQueries.cs │ ├── LambdaExpressions │ │ ├── 06. Lambda-Expressions.csproj │ │ ├── Pet.cs │ │ └── Program.cs │ ├── MulticastDelegates │ │ ├── 04. MulticastDelegates.csproj │ │ └── MultiDelegates.cs │ └── Settings.StyleCop ├── homework │ └── README.md ├── imgs │ ├── linqto.png │ ├── pic00.png │ ├── pic01.png │ ├── pic02.png │ ├── pic03.png │ ├── pic04.png │ ├── pic05.png │ ├── pic06.png │ ├── pic07.png │ ├── pic08.png │ ├── pic09.png │ ├── pic10.png │ ├── pic11.png │ ├── pic12.png │ ├── pic13.png │ ├── pic14.png │ ├── pic15.png │ ├── pic16.png │ ├── pic17.png │ ├── pic18.png │ ├── pic19.png │ ├── pic20.png │ ├── pic21.png │ ├── pic22.png │ ├── pic23.png │ ├── pic24.png │ ├── pic25.png │ ├── pic26.png │ ├── pic27.png │ ├── pic28.png │ ├── pic29.png │ ├── pic30.png │ ├── pic31.png │ ├── pic32.png │ ├── pic33.png │ ├── pic34.png │ ├── pic35.png │ ├── pic36.png │ ├── pic37.png │ ├── pic38.png │ ├── pic39.png │ ├── pic40.png │ ├── pic41.png │ ├── pic42.png │ └── pic43.png └── index.html ├── 04. OOP-Principles-Part-1 ├── README.md ├── demos │ ├── Abstract-Classes │ │ ├── 4. Abstract-Classes.csproj │ │ ├── AbstractClasses.cs │ │ ├── Animal.cs │ │ ├── Cat.cs │ │ ├── Cheetah.cs │ │ ├── Kitten.cs │ │ ├── Tomcat.cs │ │ └── Turtle.cs │ ├── Class-Diagrams │ │ ├── 5. Class-Diagrams.csproj │ │ ├── Color.cs │ │ ├── FiguresClassDiagram.cd │ │ ├── FiguresExample.cs │ │ ├── FilledRectangle.cs │ │ ├── FilledSquare.cs │ │ ├── ISufraceCalculatable.cs │ │ ├── Point.cs │ │ ├── Rectangle.cs │ │ ├── Shape.cs │ │ └── Square.cs │ ├── Encapsulation │ │ ├── 6. Encapsulation.csproj │ │ ├── Person.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── Inheritance-and-Accessibility │ │ ├── 2. Inheritance-and-Accessibility.csproj │ │ ├── Creature.cs │ │ ├── Dog.cs │ │ ├── InheritanceAndAccessibility.cs │ │ └── Mammal.cs │ ├── Interfaces-and-Implementation │ │ ├── 3. Interfaces.csproj │ │ ├── Circle.cs │ │ ├── IMovable.cs │ │ ├── IResizable.cs │ │ ├── IShape.cs │ │ ├── PlayWithInterfaces.cs │ │ ├── Rectangle.cs │ │ └── Square.cs │ ├── OOP-Principles-Demos.sln │ └── Simple-Inheritance │ │ ├── 1. Simple-Inheritance.csproj │ │ ├── Cat.cs │ │ ├── Dog.cs │ │ ├── Mammal.cs │ │ └── SimpleInheritance.cs ├── homework │ └── README.md ├── imgs │ ├── abstraction-example.png │ ├── abstraction.png │ ├── data-types.png │ ├── encapsulation.png │ ├── hierarchies.png │ ├── inheritance-example.png │ ├── inheritance-type.png │ ├── pic00.png │ ├── pic01.png │ ├── pic02.png │ ├── pic03.png │ ├── pic04.png │ ├── pic05.png │ ├── pic06.png │ ├── pic07.png │ ├── pic08.png │ ├── pic09.png │ ├── pic10.png │ ├── pic11.png │ ├── pic12.png │ ├── pic13.png │ ├── pic14.png │ ├── pic15.png │ ├── pic16.png │ ├── pic17.png │ ├── pic18.png │ ├── pic19.png │ ├── pic20.png │ ├── pic21.png │ ├── pic22.png │ ├── pic23.png │ ├── pic24.png │ ├── pic25.png │ ├── pic26.png │ ├── pic27.png │ ├── pic28.png │ ├── pic29.png │ ├── pic30.png │ ├── pic31.png │ ├── pic32.png │ ├── pic33.png │ ├── pic34.png │ ├── pic35.png │ ├── pic36.png │ └── uml.png └── index.html ├── 05. OOP-Principles-Part-2 ├── README.md ├── demos │ ├── 5. Controls-Hierarchy │ │ ├── 5. Controls-Hierarchy.csproj │ │ ├── App.config │ │ ├── Button.cs │ │ ├── Conrol.cs │ │ ├── Container.cs │ │ ├── ControlsHierarchy.cs │ │ ├── IControl.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── Surface.cs │ ├── OOP-Principles-Demos.sln │ ├── Polymorphism │ │ ├── 2. Polymorphism.csproj │ │ ├── Circle.cs │ │ ├── Figure.cs │ │ ├── Polymorphism.cs │ │ ├── Rectangle.cs │ │ └── Square.cs │ ├── Settings.StyleCop │ ├── Simple-Exception-Class │ │ ├── 3. Simple-Exception-Class.csproj │ │ ├── InvalidCalculationException.cs │ │ └── SimpleExceptionClass.cs │ ├── User-Defined-Exception │ │ ├── 4. User-Defined-Exception.csproj │ │ ├── ParseFileException.cs │ │ ├── SumOfLines.cs │ │ └── test.txt │ └── Virtual-Methods │ │ ├── 1. Virtual-Methods.csproj │ │ ├── Circle.cs │ │ ├── Figure.cs │ │ ├── Line.cs │ │ ├── SpecialFigure.cs │ │ └── VirtualMethods.cs ├── homework │ └── README.md ├── imgs │ ├── calc-classes.png │ ├── pic00.png │ ├── pic01.png │ ├── pic02.png │ ├── pic03.png │ ├── pic04.png │ ├── pic05.png │ ├── pic06.png │ ├── pic07.png │ ├── pic08.png │ ├── pic09.png │ ├── pic10.png │ ├── pic11.png │ ├── pic12.png │ ├── pic13.png │ ├── pic14.png │ ├── pic15.png │ ├── pic16.png │ ├── pic17.png │ ├── pic18.png │ ├── pic19.png │ ├── pic20.png │ ├── pic21.png │ ├── pic22.png │ ├── pic23.png │ ├── pic24.png │ ├── pic25.png │ ├── pic26.png │ ├── pic27.png │ ├── pic28.png │ ├── pic29.png │ └── polymorphism.png └── index.html ├── 06. Common-Type-System ├── README.md ├── demos │ ├── Boxing-and-Unboxing │ │ ├── 08. BoxingAndUnboxing.csproj │ │ └── BoxingAndUnboxing.cs │ ├── BoxingUnboxingPrimitiveTypes │ │ ├── 07. BoxingUnboxingPrimitiveTypes.csproj │ │ └── BoxingUnboxing.cs │ ├── CTS-Demos.sln │ ├── DynamicTypes │ │ ├── 12. DynamicTypes.csproj │ │ └── DynamicTypesExample.cs │ ├── Implementing-IComparable │ │ ├── 04. Implementing IComparable.csproj │ │ └── Implementing IComparable.cs │ ├── ImplementingIEnumerable │ │ ├── 05. ImplementingIEnumerable.csproj │ │ ├── ImplementingIEnumerable.cs │ │ ├── LinkedList.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── Is-and-as-Operators │ │ ├── 02. Is and As Operators.csproj │ │ └── IsAndAsOperators.cs │ ├── NullableTypes │ │ ├── 11. NullableTypes.csproj │ │ └── NullableTypes.cs │ ├── ObjectCloning │ │ ├── 03. Object Cloning.csproj │ │ ├── LinkedList.cs │ │ └── ObjectCloning.cs │ ├── PassingOutParameters │ │ ├── 10. PassingOutParameters.csproj │ │ └── PassingOutParameters.cs │ ├── PassingRefParameters │ │ ├── 09. PassingRefParameters.csproj │ │ └── PassingRefParameters.cs │ ├── System.Object-Overloading │ │ ├── 01. System.Object Overloading.csproj │ │ ├── OverloadingSystemObject.cs │ │ └── Student.cs │ └── Value-And-Reference-Types │ │ ├── 06. Value-And-Reference-Types.csproj │ │ └── ValueAndReferenceTypes.cs ├── homework │ └── README.md ├── imgs │ ├── boxing.png │ ├── memory.png │ ├── net-framework.png │ ├── pic00.png │ ├── pic01.png │ ├── pic02.png │ ├── pic03.png │ ├── pic04.png │ ├── pic05.png │ ├── pic06.png │ ├── pic07.png │ ├── pic08.png │ ├── pic09.png │ ├── pic10.png │ ├── pic11.png │ ├── pic12.png │ ├── pic13.png │ ├── pic14.png │ ├── pic15.png │ ├── pic16.png │ ├── pic17.png │ ├── pic18.png │ ├── pic19.png │ ├── pic20.png │ ├── pic21.png │ ├── pic22.png │ ├── pic23.png │ ├── pic24.png │ ├── pic25.png │ ├── pic26.png │ ├── pic27.png │ ├── pic28.png │ ├── pic29.png │ ├── pic30.png │ ├── pic31.png │ ├── pic32.png │ ├── pic33.png │ ├── pic34.png │ ├── pic35.png │ ├── pic36.png │ ├── pic37.png │ ├── pic38.png │ ├── pic39.png │ ├── pic40.png │ ├── pic41.png │ ├── pic42.png │ ├── pic43.png │ ├── pic44.png │ ├── pic45.png │ ├── pic46.png │ ├── pic47.png │ ├── pic48.png │ ├── pic49.png │ ├── pic50.png │ ├── pic51.png │ ├── pic52.png │ ├── pic53.png │ ├── pic54.png │ ├── pic55.png │ ├── pic56.png │ ├── pic57.png │ ├── pic58.png │ ├── pic59.png │ ├── pic60.png │ ├── pic61.png │ └── pic62.png └── index.html ├── 07. OOP-Workshop ├── Cosmetics-Workshop │ ├── .saveme │ ├── Cosmetics │ │ ├── Cosmetics-Skeleton │ │ │ ├── Cosmetics.sln │ │ │ └── Cosmetics │ │ │ │ ├── App.config │ │ │ │ ├── Cart │ │ │ │ └── ShoppingCart.cs │ │ │ │ ├── Common │ │ │ │ ├── GenderType.cs │ │ │ │ ├── GlobalErrorMessages.cs │ │ │ │ ├── UsageType.cs │ │ │ │ └── Validator.cs │ │ │ │ ├── Contracts │ │ │ │ ├── ICategory.cs │ │ │ │ ├── ICommand.cs │ │ │ │ ├── ICosmeticsFactory.cs │ │ │ │ ├── IEngine.cs │ │ │ │ ├── IProduct.cs │ │ │ │ ├── IShampoo.cs │ │ │ │ └── IToothPaste.cs │ │ │ │ ├── Cosmetics.csproj │ │ │ │ ├── CosmeticsProgram.cs │ │ │ │ ├── Engine │ │ │ │ ├── Command.cs │ │ │ │ ├── CosmeticsEngine.cs │ │ │ │ └── CosmeticsFactory.cs │ │ │ │ ├── Products │ │ │ │ └── Shampoo.cs │ │ │ │ └── Properties │ │ │ │ └── AssemblyInfo.cs │ │ ├── imgs │ │ │ ├── category-class-interfaces.png │ │ │ ├── category-class.png │ │ │ ├── category-print.png │ │ │ ├── diff-checker-1.png │ │ │ ├── diff-checker-2.png │ │ │ ├── errors-2.png │ │ │ ├── initial_errors.png │ │ │ ├── list-getter.png │ │ │ ├── points-yeah.png │ │ │ ├── product-print.png │ │ │ └── validator.png │ │ ├── test.000.001.in.txt │ │ └── test.000.001.out.txt │ ├── README.md │ └── imgs │ │ ├── category-class-interfaces.png │ │ ├── category-class.png │ │ ├── category-print.png │ │ ├── diff-checker-1.png │ │ ├── diff-checker-2.png │ │ ├── errors-2.png │ │ ├── initial_errors.png │ │ ├── list-getter.png │ │ ├── points-yeah.png │ │ ├── product-print.png │ │ └── validator.png └── Societies-Workshop │ ├── Societies.ConsoleClient │ ├── App.config │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Societies.ConsoleClient.csproj │ └── Startup.cs │ ├── Societies.Core │ ├── Contracts │ │ ├── IBeverage.cs │ │ ├── IBuilding.cs │ │ ├── IConsumable.cs │ │ ├── ICustomCollection.cs │ │ ├── IFood.cs │ │ ├── IHuman.cs │ │ ├── INameable.cs │ │ ├── IRestaurantBuilding.cs │ │ ├── IRestaurantOrder.cs │ │ └── IWaiter.cs │ ├── Infrastructure │ │ ├── Constants │ │ │ ├── CurrencyConstants.cs │ │ │ ├── GlobalConstants.cs │ │ │ └── ValidationConstants.cs │ │ ├── Enumerations │ │ │ ├── Common │ │ │ │ ├── BeverageType.cs │ │ │ │ └── FoodType.cs │ │ │ └── Human │ │ │ │ ├── EyesColorType.cs │ │ │ │ ├── FaceShapeType.cs │ │ │ │ ├── GenderType.cs │ │ │ │ ├── HairColorType.cs │ │ │ │ ├── RaceType.cs │ │ │ │ └── ReligionType.cs │ │ ├── Exceptions │ │ │ ├── MoneyOutOfRangeException.cs │ │ │ └── PriceOutOfRangeException.cs │ │ └── Utils │ │ │ ├── Cloner.cs │ │ │ └── DataGenerator.cs │ ├── Models │ │ ├── Buildings │ │ │ ├── Abstract │ │ │ │ └── Building.cs │ │ │ └── RestaurantBuilding.cs │ │ ├── Common │ │ │ ├── Abstract │ │ │ │ └── Consumable.cs │ │ │ ├── Beverage.cs │ │ │ ├── Food.cs │ │ │ └── RestaurantOrder.cs │ │ └── Humans │ │ │ ├── Abstract │ │ │ └── Human.cs │ │ │ ├── SoftwareEngineer.cs │ │ │ └── Waiter.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Societies.Core.csproj │ └── SocietiesClassDiagram.cd │ └── Societies.sln └── Exam-AuthorsSolutions ├── Dealership-AuthorSolution ├── Dealership.sln └── Dealership │ ├── Common │ ├── Constants.cs │ ├── Enums │ │ ├── Role.cs │ │ └── VehicleType.cs │ └── Validator.cs │ ├── Contracts │ ├── ICar.cs │ ├── IComment.cs │ ├── ICommentable.cs │ ├── IMotorcycle.cs │ ├── IPriceable.cs │ ├── ITruck.cs │ ├── IUser.cs │ └── IVehicle.cs │ ├── Dealership.csproj │ ├── Engine │ ├── Command.cs │ ├── DealershipEngine.cs │ ├── ICommand.cs │ └── IEngine.cs │ ├── Factories │ ├── DealershipFactory.cs │ └── IDealershipFactory.cs │ ├── Models │ ├── Car.cs │ ├── Comment.cs │ ├── Motorcycle.cs │ ├── Truck.cs │ ├── User.cs │ └── Vehicle.cs │ ├── Properties │ └── AssemblyInfo.cs │ └── Startup.cs └── FastAndFurious-AuthorSolution ├── FastAndFurious.ConsoleApplication ├── App.config ├── Common │ ├── Constants │ │ └── GlobalConstants.cs │ ├── Enums │ │ ├── EngineControlUnitType.cs │ │ ├── ExhaustType.cs │ │ ├── GenderType.cs │ │ ├── IntercoolerType.cs │ │ ├── MotorType.cs │ │ ├── NumberOfCylindersType.cs │ │ ├── TireType.cs │ │ ├── TransmissionType.cs │ │ ├── TunningPartGradeType.cs │ │ └── TurbochargerType.cs │ ├── Exceptions │ │ └── TunningDuplicationException.cs │ ├── Extensions │ │ └── IEnumerableExtensions.cs │ └── Utils │ │ ├── DataGenerator.cs │ │ └── MetricUnitsConverter.cs ├── Contracts │ ├── IAcceleratable.cs │ ├── IDriver.cs │ ├── IEngineControlUnit.cs │ ├── IExhaust.cs │ ├── IIdentifiable.cs │ ├── IIntercooler.cs │ ├── IMotor.cs │ ├── IMotorVehicle.cs │ ├── IRaceTrack.cs │ ├── ITireSet.cs │ ├── ITopSpeed.cs │ ├── ITransmission.cs │ ├── ITunningPart.cs │ ├── ITurbocharger.cs │ ├── IValuable.cs │ └── IWeightable.cs ├── Engine │ └── Engine.cs ├── FastAndFurious.ConsoleApplication.csproj ├── Models │ ├── Common │ │ └── IdentifiableObject.cs │ ├── Drivers │ │ ├── Abstract │ │ │ └── Driver.cs │ │ ├── DominicRendeto.cs │ │ ├── Jessi.cs │ │ ├── LetiSpaghetti.cs │ │ ├── Mia.cs │ │ ├── VinBenzin.cs │ │ └── Vince.cs │ ├── MotorVehicles │ │ ├── Abstract │ │ │ └── MotorVehicle.cs │ │ ├── AcuraIntegraTypeR.cs │ │ ├── MitsubishiEclipse.cs │ │ ├── MitsubishiLancerEvolution.cs │ │ ├── Nissan350Z.cs │ │ ├── NissanGTR.cs │ │ ├── NissanSkylineR34.cs │ │ └── SubaruImprezaWRX.cs │ ├── Motors │ │ ├── Abstract │ │ │ └── Motor.cs │ │ ├── CentaurPulseMotor.cs │ │ ├── HellcatMotor.cs │ │ ├── IronHorseMotor.cs │ │ ├── ShockblazePulsejetMotor.cs │ │ ├── StingrayMotor.cs │ │ └── TyphoonPulseEngine.cs │ ├── Tracks │ │ ├── Abstract │ │ │ └── RaceTrack.cs │ │ ├── IndianapolisRaceTrack.cs │ │ ├── MonacoRaceTrack.cs │ │ ├── StormblazeRaceTrack.cs │ │ └── TokioUndergroundRaceTrack.cs │ └── Tunnings │ │ ├── Abstract │ │ └── TunningPart.cs │ │ ├── EngineControlUnits │ │ ├── APREngineControlUnit.cs │ │ ├── Abstract │ │ │ └── EngineControlUnit.cs │ │ ├── DinanEngineControlUnit.cs │ │ └── SCTPerformanceEngineControlUnit.cs │ │ ├── ExhaustSystems │ │ ├── Abstract │ │ │ └── Exhaust.cs │ │ ├── BorlaExhaust.cs │ │ ├── MagnaflowExhaust.cs │ │ └── RemusExhaust.cs │ │ ├── Intercoolers │ │ ├── Abstract │ │ │ └── Intercooler.cs │ │ ├── EvolutionXPerformanceIntercooler.cs │ │ └── ViperGenieIntercooler.cs │ │ ├── Tires │ │ ├── Abstract │ │ │ └── TireSet.cs │ │ ├── FalkenAzenisTiresSet.cs │ │ ├── MichelinPilotTiresSet.cs │ │ └── YokohamaAdvanTiresSet.cs │ │ ├── Transmissions │ │ ├── Abstract │ │ │ └── Transmission.cs │ │ ├── BMShortShifter.cs │ │ ├── HurstCompetitionManualShifter.cs │ │ └── TWMPerformanceTransmission.cs │ │ └── Turbochargers │ │ ├── Abstract │ │ └── Turbocharger.cs │ │ ├── VortexR35SequentialTurbocharger.cs │ │ └── ZX8ParallelTwinTurbocharger.cs ├── Properties │ └── AssemblyInfo.cs └── Startup.cs └── FastAndFurious.sln /Topics/00. Course-intro/imgs/ninja.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/ninja.jpg -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic00.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic01.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic02.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic03.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic04.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic05.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic06.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic07.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic08.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic09.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic10.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic11.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic12.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic13.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic14.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic15.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic16.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic17.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic18.jpg -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic18.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic19.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic20.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic21.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic22.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic23.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic24.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic25.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic26.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic27.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic28.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic29.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic30.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic31.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic32.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic33.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic34.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic35.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic36.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic37.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic38.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic39.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic40.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic41.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic42.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic43.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic44.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic45.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic46.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic47.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic48.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic49.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic50.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic51.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic52.png -------------------------------------------------------------------------------- /Topics/00. Course-intro/imgs/pic53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/00. Course-intro/imgs/pic53.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/CofeeSize/CofeeSize.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public enum CoffeeSize 4 | { 5 | Small = 100, Normal = 150, Double = 300 6 | } 7 | 8 | public class Coffee 9 | { 10 | public CoffeeSize size; 11 | 12 | public Coffee(CoffeeSize size) 13 | { 14 | this.size = size; 15 | } 16 | 17 | public CoffeeSize Size 18 | { 19 | get { return size; } 20 | } 21 | } 22 | 23 | public class CoffeeMachine 24 | { 25 | 26 | static void Main() 27 | { 28 | Coffee normalCoffee = new Coffee(CoffeeSize.Normal); 29 | Coffee doubleCoffee = new Coffee(CoffeeSize.Double); 30 | 31 | Console.WriteLine("The {0} coffee is {1} ml.", 32 | normalCoffee.Size, (int)normalCoffee.Size); 33 | Console.WriteLine("The {0} coffee is {1} ml.", 34 | doubleCoffee.Size, (int)doubleCoffee.Size); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/Constants/Constants.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class Constants 4 | { 5 | public const double PI = 3.1415926535897932385; 6 | public readonly double Size; 7 | 8 | public Constants(int size) 9 | { 10 | this.Size = size; // Cannot be further modified! 11 | } 12 | 13 | static void Main() 14 | { 15 | Console.WriteLine(Constants.PI); 16 | Constants c = new Constants(5); 17 | Console.WriteLine(c.Size); 18 | 19 | //c.Size = 10; // Compilation error: readonly field 20 | //Console.WriteLine(Constants.Size); // compile error 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/Constructors/AlarmClock.cs: -------------------------------------------------------------------------------- 1 | public class AlarmClock 2 | { 3 | private int hours = 9; // Inline initialization 4 | private int minutes = 0; // Inline initialization 5 | 6 | // Parameterless constructor (intentionally left empty) 7 | public AlarmClock() 8 | { 9 | } 10 | 11 | // Constructor with parameters 12 | public AlarmClock(int hours, int minutes) 13 | { 14 | this.hours = hours; 15 | this.minutes = minutes; 16 | } 17 | 18 | public int Hours 19 | { 20 | get { return this.hours; } 21 | set { this.hours = value; } 22 | } 23 | 24 | public int Minutes 25 | { 26 | get { return this.minutes; } 27 | set { this.minutes = value; } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/Constructors/Person.cs: -------------------------------------------------------------------------------- 1 | public class Person 2 | { 3 | private string name; 4 | private int age; 5 | 6 | // Default constructor 7 | public Person() 8 | { 9 | this.name = null; 10 | this.age = 0; 11 | } 12 | 13 | // Constructor with parameters 14 | public Person(string name, int age) 15 | { 16 | this.name = name; 17 | this.age = age; 18 | } 19 | 20 | public string Name 21 | { 22 | get { return this.name; } 23 | set { this.name = value; } 24 | } 25 | 26 | public int Age 27 | { 28 | get { return this.age; } 29 | set { this.age = value; } 30 | } 31 | } -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/Constructors/Point.cs: -------------------------------------------------------------------------------- 1 | public class Point 2 | { 3 | private int xCoord; 4 | private int yCoord; 5 | private string name; 6 | 7 | public Point() : this(0, 0) // Reuse the constructor 8 | { 9 | } 10 | 11 | public Point(int xCoord, int yCoord) 12 | { 13 | this.xCoord = xCoord; 14 | this.yCoord = yCoord; 15 | this.name = string.Format( 16 | "Point({0},{1})", xCoord, yCoord); 17 | } 18 | 19 | public int XCoord 20 | { 21 | get { return this.xCoord; } 22 | set { this.xCoord = value; } 23 | } 24 | 25 | public int YCoord 26 | { 27 | get { return this.yCoord; } 28 | set { this.yCoord = value; } 29 | } 30 | 31 | public string Name 32 | { 33 | get { return this.name; } 34 | set { this.name = value; } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/Defining-Properties/DefiningProperties.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class PropertiesExample 4 | { 5 | static void Main() 6 | { 7 | Rectangle firstRect = new Rectangle(5.0f, 2.3f); 8 | Console.WriteLine("Rectangle 1 is {0}x{1} and has area {2}", 9 | firstRect.Height, firstRect.Width, firstRect.Area); 10 | 11 | Rectangle secondRect2 = new Rectangle(3.0f, 4.0f); 12 | Console.WriteLine("Rectangle 2 is {0}x{1} and has area {2}", 13 | secondRect2.Height, secondRect2.Width, secondRect2.Area); 14 | 15 | // Can't set a value to readonly property! 16 | //secondRect.Area = 20.3f; 17 | 18 | Console.WriteLine(); 19 | 20 | UserProfile profile = new UserProfile(91112, "Steve", "Balmer"); 21 | Console.WriteLine(profile); 22 | 23 | // Can't assign a private set property! 24 | // profile.UserId = 12345; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/Defining-Properties/Rectangle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class Rectangle 4 | { 5 | private float height; 6 | private float width; 7 | 8 | public Rectangle(float height, float width) 9 | { 10 | this.height = height; 11 | this.width = width; 12 | } 13 | 14 | public float Height 15 | { 16 | get { return height; } 17 | set { height = value; } 18 | } 19 | 20 | public float Width 21 | { 22 | get { return width; } 23 | set { width = value; } 24 | } 25 | 26 | public float Area 27 | { 28 | get 29 | { 30 | return height * width; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/Defining-Properties/UserProfile.cs: -------------------------------------------------------------------------------- 1 | public class UserProfile 2 | { 3 | public int UserId { get; private set; } 4 | public string FirstName { get; private set; } 5 | public string LastName { get; private set; } 6 | 7 | public UserProfile(int userId, string firstName, string lastName) 8 | { 9 | this.UserId = userId; 10 | this.FirstName = firstName; 11 | this.LastName = lastName; 12 | } 13 | 14 | public override string ToString() 15 | { 16 | return string.Format("Id: {0}, First name: {1}, Last name: {2}", 17 | this.UserId, this.FirstName, this.LastName); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/DogMeeting/Dog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class Dog 4 | { 5 | private string name; 6 | private string breed; 7 | 8 | public Dog() 9 | { 10 | } 11 | 12 | public Dog(string name, string breed) 13 | { 14 | this.name = name; 15 | this.breed = breed; 16 | } 17 | 18 | public string Name 19 | { 20 | get { return this.name; } 21 | set { this.name = value; } 22 | } 23 | 24 | public string Breed 25 | { 26 | get { return this.breed; } 27 | set { this.breed = value; } 28 | } 29 | 30 | public void SayBau() 31 | { 32 | Console.WriteLine("{0} said: Bauuuuuu!", 33 | this.name ?? "[unnamed dog]"); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/Enums/EnumsExample.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public enum DayOfWeek 4 | { 5 | Mon, Tue, Wed, Thu, Fri, Sat, Sun 6 | } 7 | 8 | class EnumExample 9 | { 10 | static void Main() 11 | { 12 | DayOfWeek day = DayOfWeek.Wed; 13 | Console.WriteLine(day); // Wed 14 | 15 | Console.WriteLine((int)day); // 2 16 | 17 | day = DayOfWeek.Mon; 18 | Console.WriteLine(++day); // Tue 19 | 20 | day = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), "Mon"); 21 | Console.WriteLine(day); // Mon 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/Keep-the-Object-State/ProtectTheObjectStateDemo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class ProtectTheObjectStateDemo 4 | { 5 | static void Main() 6 | { 7 | Console.Write("Enter your name: "); 8 | string name = Console.ReadLine(); 9 | 10 | Console.Write("Enter your age: "); 11 | int age = int.Parse(Console.ReadLine()); 12 | 13 | try 14 | { 15 | Person person = new Person(name, age); 16 | Console.WriteLine("Hello, {0}!", person.Name); 17 | Console.WriteLine("Your age is {0}.", person.Age); 18 | } 19 | catch (Exception ex) 20 | { 21 | Console.WriteLine("Cannot create person object: " + ex); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/demos/Methods/MethodsExample.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class Point 4 | { 5 | private int xCoord; 6 | private int yCoord; 7 | 8 | public Point(int xCoord, int yCoord) 9 | { 10 | this.xCoord = xCoord; 11 | this.yCoord = yCoord; 12 | } 13 | 14 | public double CalcDistance(Point p) 15 | { 16 | return Math.Sqrt( 17 | (p.xCoord - this.xCoord) * (p.xCoord - this.xCoord) + 18 | (p.yCoord - this.yCoord) * (p.yCoord - this.yCoord)); 19 | } 20 | } 21 | 22 | class TestMethods 23 | { 24 | static void Main() 25 | { 26 | Point p1 = new Point(2, 3); 27 | Point p2 = new Point(3, 4); 28 | System.Console.WriteLine(p1.CalcDistance(p2)); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic00.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic01.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic02.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic03.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic04.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic05.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic06.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic07.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic08.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic09.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic10.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic11.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic12.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic13.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic14.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic15.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic16.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic17.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic18.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic19.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic20.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic21.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic22.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic23.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic24.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic25.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic26.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic27.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic28.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic29.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic30.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic31.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic32.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic33.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic34.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic35.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic36.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic37.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic38.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic39.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic40.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic41.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic42.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic43.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic44.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic45.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic46.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic47.png -------------------------------------------------------------------------------- /Topics/01. Defining-Classes-Part-1/imgs/pic48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/01. Defining-Classes-Part-1/imgs/pic48.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Attributes/UsingAttributes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | class UsingAttributes 5 | { 6 | [DllImport("user32.dll", EntryPoint = "MessageBox")] 7 | public static extern int ShowMessageBox(int hWnd, 8 | string text, string caption, int type); 9 | 10 | static void Main() 11 | { 12 | ShowMessageBox(0, "Some text", "Some caption", 0); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Live demo - Generic List/Demos/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Namespaces/SofiaUniversity.Data/Faculty.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SofiaUniversity.Data 4 | { 5 | public struct Faculty 6 | { 7 | public string Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Namespaces/SofiaUniversity.Data/Professor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SofiaUniversity.Data 4 | { 5 | public class Professor 6 | { 7 | public string FirstName { get; set; } 8 | public string LastName { get; set; } 9 | public Faculty Faculty { get; set; } 10 | public string Subject { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Namespaces/SofiaUniversity.Data/Specialty.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SofiaUniversity.Data 4 | { 5 | public enum Specialty 6 | { 7 | ComputerScience, 8 | SoftwareEngineering, 9 | InformationSystems 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Namespaces/SofiaUniversity.Data/Student.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SofiaUniversity.Data 4 | { 5 | public class Student 6 | { 7 | public string FirstName { get; set; } 8 | public string LastName { get; set; } 9 | public Faculty Faculty { get; set; } 10 | public Specialty Specialty { get; set; } 11 | public int FacultyNumber { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Namespaces/SofiaUniversity.UI/ProfessorAdminForm .cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SofiUniversity.UI 4 | { 5 | public class ProfessorAdminForm : System.Windows.Forms.Form 6 | { 7 | // ... 8 | private void InitializeComponent() 9 | { 10 | this.SuspendLayout(); 11 | // 12 | // ProfessorAdminForm 13 | // 14 | this.ClientSize = new System.Drawing.Size(284, 262); 15 | this.Name = "ProfessorAdminForm"; 16 | this.Text = "Professors"; 17 | this.ResumeLayout(false); 18 | 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Namespaces/SofiaUniversity.UI/StudentAdminForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SofiUniversity.UI 4 | { 5 | public class StudentAdminForm : System.Windows.Forms.Form 6 | { 7 | // ... 8 | private void InitializeComponent() 9 | { 10 | this.SuspendLayout(); 11 | // 12 | // StudentAdminForm 13 | // 14 | this.ClientSize = new System.Drawing.Size(284, 262); 15 | this.Name = "StudentAdminForm"; 16 | this.Text = "Students"; 17 | this.ResumeLayout(false); 18 | 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Namespaces/SofiaUniversity/AdministrationSystem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SofiaUniversity 4 | { 5 | public class AdministrationSystem 6 | { 7 | static void Main() 8 | { 9 | // ... 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Overloading-Operators/TestFractions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class TestFractions 4 | { 5 | static void Main(string[] args) 6 | { 7 | Fraction f1 = (double)1 / 4; 8 | Console.WriteLine("f1 = {0}", f1); 9 | Fraction f2 = (double)7 / 10; 10 | Console.WriteLine("f2 = {0}", f2); 11 | Console.WriteLine("-f1 = {0}", -f1); 12 | Console.WriteLine("f1 + f2 = {0}", f1 + f2); 13 | Console.WriteLine("f1 - f2 = {0}", f1 - f2); 14 | Console.WriteLine("f1 * f2 = {0}", f1 * f2); 15 | Console.WriteLine("f1 / f2 = {0}", f1 / f2); 16 | Console.WriteLine("f1 / f2 as double = {0}", (double)(f1 / f2)); 17 | Console.WriteLine("-(f1+f2)*(f1-f2/f1) = {0}", -(f1 + f2) * (f1 - f2 / f1)); 18 | Console.WriteLine("++f1 = {0}", ++f1); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/StaticMembers/SqrtPrecalculated.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class SqrtPrecalculated 4 | { 5 | public const int MAX_VALUE = 10000; 6 | 7 | // Static field 8 | private static int[] sqrtValues; 9 | 10 | // Static constructor 11 | static SqrtPrecalculated() 12 | { 13 | sqrtValues = new int[MAX_VALUE + 1]; 14 | for (int i = 0; i < sqrtValues.Length; i++) 15 | { 16 | sqrtValues[i] = (int)Math.Sqrt(i); 17 | } 18 | } 19 | 20 | // Static method 21 | public static int GetSqrt(int value) 22 | { 23 | return sqrtValues[value]; 24 | } 25 | 26 | // The Main() method is always static 27 | static void Main() 28 | { 29 | Console.WriteLine(SqrtPrecalculated.GetSqrt(254)); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Structures/Color.cs: -------------------------------------------------------------------------------- 1 | public struct Color 2 | { 3 | public byte RedValue { get; set; } 4 | public byte GreenValue { get; set; } 5 | public byte BlueValue { get; set; } 6 | } 7 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Structures/Edges.cs: -------------------------------------------------------------------------------- 1 | public enum Edges 2 | { 3 | Straight, 4 | Rounded 5 | } 6 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Structures/Point.cs: -------------------------------------------------------------------------------- 1 | public struct Point 2 | { 3 | public int X { get; set; } 4 | public int Y { get; set; } 5 | } 6 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/demos/Structures/StructuresExample.cs: -------------------------------------------------------------------------------- 1 | public class StructuresExample 2 | { 3 | static void Main() 4 | { 5 | Square square = new Square( 6 | new Point() { X = 5, Y = -3 }, 7 | 7, 8 | new Color() { RedValue = 73, GreenValue = 158, BlueValue = 76 }, 9 | new Color() { RedValue = 0, GreenValue = 255, BlueValue = 133 }, 10 | Edges.Rounded 11 | ); 12 | System.Console.WriteLine(square); 13 | 14 | square.Edges = Edges.Straight; 15 | square.BorderColor = new Color() { 16 | RedValue=0, GreenValue=0, BlueValue=0 }; 17 | 18 | // Note: this will not compile (Point is value-type) 19 | //square.Location.X = square.Location.X + 10; 20 | 21 | Point location = square.Location; 22 | location.X += 10; 23 | square.Location = location; 24 | 25 | System.Console.WriteLine(square); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic00.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic01.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic02.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic03.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic04.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic05.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic06.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic07.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic08.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic09.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic10.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic11.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic12.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic13.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic14.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic15.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic16.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic17.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic18.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic19.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic20.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic21.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic22.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic23.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic24.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic25.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic26.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic27.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic28.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic29.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic30.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic31.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic32.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic33.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic34.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic35.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic36.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic37.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic38.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic39.png -------------------------------------------------------------------------------- /Topics/02. Defining-Classes-Part-2/imgs/pic40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/02. Defining-Classes-Part-2/imgs/pic40.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/demos/Action-And-Func/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/demos/Delegates-Example/DelegatesExample.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | // Declaration of a delegate 4 | public delegate void SimpleDelegate(string param); 5 | 6 | public class DelegatesExample 7 | { 8 | private static void TestMethod(string param) 9 | { 10 | Console.WriteLine("I was called by a delegate."); 11 | Console.WriteLine("I got parameter: {0}.", param); 12 | } 13 | 14 | private static void Main() 15 | { 16 | // Instantiate the delegate 17 | SimpleDelegate d = new SimpleDelegate(TestMethod); 18 | 19 | // The above can be written in a shorter way 20 | d = TestMethod; 21 | 22 | // Invocation of the method, pointed by delegate 23 | d("test"); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/demos/DynamicType/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/demos/DynamicType/Student.cs: -------------------------------------------------------------------------------- 1 | public class Student 2 | { 3 | public int Id { get; set; } 4 | 5 | public string Name { get; set; } 6 | 7 | public string SayName() 8 | { 9 | return "I am " + this.Name; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/demos/Events/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/demos/Extension-Methods/ExtensionMethods.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | public class ExtensionMethods 5 | { 6 | public static void Main() 7 | { 8 | var str = "Hello Extension Methods"; 9 | Console.WriteLine(str.WordCount()); 10 | 11 | var ints = new List { 1, 2, 3, 4, 5 }; 12 | Console.WriteLine(ints.ToString()); 13 | Console.WriteLine(ints.ToString()); 14 | 15 | ints.IncreaseWidth(5); 16 | Console.WriteLine(ints.ToString()); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/demos/LINQ-Extenstion-Methods/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/demos/LINQ-Extenstion-Methods/Course.cs: -------------------------------------------------------------------------------- 1 | public class Course 2 | { 3 | public int Id { get; set; } 4 | 5 | public string Name { get; set; } 6 | } 7 | -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/demos/LINQ-Extenstion-Methods/Student.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | public class Student 4 | { 5 | public int Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public List Courses { get; set; } 10 | 11 | public override string ToString() 12 | { 13 | return this.Id + "; Name: " + this.Name + "; Courses: " + this.Courses.Count; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/demos/LINQ-Queries/LINQQueries.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | 4 | class LINQQueries 5 | { 6 | static void Main() 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/demos/LambdaExpressions/Pet.cs: -------------------------------------------------------------------------------- 1 | public class Pet 2 | { 3 | public string Name { get; set; } 4 | 5 | public int Age { get; set; } 6 | } -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/linqto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/linqto.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic00.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic01.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic02.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic03.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic04.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic05.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic06.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic07.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic08.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic09.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic10.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic11.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic12.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic13.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic14.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic15.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic16.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic17.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic18.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic19.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic20.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic21.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic22.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic23.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic24.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic25.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic26.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic27.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic28.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic29.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic30.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic31.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic32.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic33.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic34.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic35.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic36.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic37.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic38.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic39.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic40.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic41.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic42.png -------------------------------------------------------------------------------- /Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/03. Extension-Methods-Delegates-Lambda-LINQ/imgs/pic43.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Abstract-Classes/Animal.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public abstract class Animal : IComparable 4 | { 5 | // Abstract methods --> should be implemented in the child classes 6 | public abstract string GetName(); 7 | public abstract int Speed { get; } 8 | 9 | // Non-abstract method 10 | public override string ToString() 11 | { 12 | return "I am " + this.GetName(); 13 | } 14 | 15 | // Interface method 16 | public int CompareTo(Animal other) 17 | { 18 | return this.Speed.CompareTo(other.Speed); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Abstract-Classes/Cat.cs: -------------------------------------------------------------------------------- 1 | public abstract class Cat : Animal 2 | { 3 | public string Breed { get; set; } 4 | public abstract void SayMyaau(); 5 | } 6 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Abstract-Classes/Cheetah.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class Cheetah : Animal 4 | { 5 | public override int Speed 6 | { 7 | get 8 | { 9 | return 100; 10 | } 11 | } 12 | 13 | public override string GetName() 14 | { 15 | return "cheetah"; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Abstract-Classes/Kitten.cs: -------------------------------------------------------------------------------- 1 | public class Kitten : Cat 2 | { 3 | public override int Speed 4 | { 5 | get 6 | { 7 | return 5; 8 | } 9 | } 10 | 11 | public override string GetName() 12 | { 13 | return "kitten"; 14 | } 15 | 16 | public override void SayMyaau() 17 | { 18 | System.Console.WriteLine("Kitten miau, miaau"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Abstract-Classes/Tomcat.cs: -------------------------------------------------------------------------------- 1 | public class Tomcat : Cat 2 | { 3 | public override int Speed 4 | { 5 | get 6 | { 7 | return 20; 8 | } 9 | } 10 | 11 | public override string GetName() 12 | { 13 | return "tomcat"; 14 | } 15 | 16 | public override void SayMyaau() 17 | { 18 | System.Console.WriteLine("Tomcat muaaaaaaaau"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Abstract-Classes/Turtle.cs: -------------------------------------------------------------------------------- 1 | public class Turtle : Animal 2 | { 3 | public override int Speed 4 | { 5 | get 6 | { 7 | return 1; 8 | } 9 | } 10 | 11 | public override string GetName() 12 | { 13 | return "turtle"; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Class-Diagrams/Color.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | struct Color 4 | { 5 | public byte RedValue { get; set; } 6 | public byte GreenValue { get; set; } 7 | public byte BlueValue { get; set; } 8 | 9 | public Color(byte redValue, byte greenValue, byte blueValue) 10 | : this() 11 | { 12 | this.RedValue = redValue; 13 | this.GreenValue = greenValue; 14 | this.BlueValue = blueValue; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Class-Diagrams/FiguresExample.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class FiguresExample 4 | { 5 | static void Main() 6 | { 7 | 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Class-Diagrams/FilledRectangle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class FilledRectangle : Rectangle 4 | { 5 | private Color Color { get; set; } 6 | 7 | public FilledRectangle(float width, float height, int x, int y, Color color) 8 | : base(width, height, x, y) 9 | { 10 | this.Color = color; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Class-Diagrams/FilledSquare.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class FilledSquare : Square 4 | { 5 | private Color Color { get; set; } 6 | 7 | public FilledSquare(float size, int x, int y, Color color) 8 | : base(size, x, y) 9 | { 10 | this.Color = color; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Class-Diagrams/ISufraceCalculatable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | interface ISufraceCalculatable 4 | { 5 | float CalculateSurface(); 6 | } 7 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Class-Diagrams/Point.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | struct Point 4 | { 5 | public int X { get; set; } 6 | public int Y { get; set; } 7 | 8 | public Point(int x, int y) : this() 9 | { 10 | this.X = x; 11 | this.Y = y; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Class-Diagrams/Rectangle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class Rectangle : Shape, ISufraceCalculatable 4 | { 5 | private float Width { get; set; } 6 | private float Height { get; set; } 7 | 8 | public Rectangle(float width, float height, int x, int y) 9 | : base (new Point(x,y)) 10 | { 11 | this.Width = width; 12 | this.Height = height; 13 | } 14 | 15 | public float CalculateSurface() 16 | { 17 | return this.Width * this.Height; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Class-Diagrams/Shape.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | abstract class Shape 4 | { 5 | protected Point Position { get; set; } 6 | 7 | public Shape(Point position) 8 | { 9 | this.Position = position; 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Class-Diagrams/Square.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class Square : Shape, ISufraceCalculatable 4 | { 5 | private float Size { get; set; } 6 | 7 | public Square(float size, int x, int y) 8 | : base (new Point(x,y)) 9 | { 10 | this.Size = size; 11 | } 12 | 13 | public float CalculateSurface() 14 | { 15 | return this.Size * this.Size; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Inheritance-and-Accessibility/Creature.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class Creature 4 | { 5 | protected string Name { get; private set; } 6 | 7 | public Creature(string name) 8 | { 9 | this.Name = name; 10 | } 11 | 12 | private void Talk() 13 | { 14 | Console.WriteLine("I am creature ..."); 15 | } 16 | 17 | protected void Walk() 18 | { 19 | Console.WriteLine("Walking, walking, walking ...."); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Inheritance-and-Accessibility/Dog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class Dog : Mammal 4 | { 5 | public string Breed { get; private set; } 6 | 7 | public Dog(string name, int age, string breed) : base(name, age) 8 | { 9 | this.Breed = breed; 10 | } 11 | 12 | internal void WagTail() 13 | { 14 | Console.WriteLine("{0} is {1} wagging his {2}-aged tail ...", 15 | this.Name, this.Breed, this.Age); 16 | //this.Walk(); // This will successfully compile - Walk() is protected 17 | //this.Talk(); // This will not compile - Talk() is private 18 | //this.Name = "Doggy"; // This will not compile - Name.set is private 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Inheritance-and-Accessibility/InheritanceAndAccessibility.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class InheritanceAndAccessibility 4 | { 5 | static void Main() 6 | { 7 | Dog joe = new Dog("Sharo", 6, "labrador"); 8 | joe.Sleep(); // Sleep() is public 9 | Console.WriteLine("Breed: " + joe.Breed); 10 | joe.WagTail(); // WagTail() is internal 11 | 12 | //joe.Talk(); // This will not compile - Talk() is private 13 | //joe.Walk(); // This will not compile - Walk() is protected 14 | //Console.WriteLine("Name: " + joe.Name); // Name is protected property 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Inheritance-and-Accessibility/Mammal.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class Mammal : Creature 4 | { 5 | public int Age { get; set; } 6 | 7 | public Mammal(string name, int age) : base(name) 8 | { 9 | this.Age = age; 10 | } 11 | 12 | public void Sleep() 13 | { 14 | Console.WriteLine("Shhh! {0} is sleeping!", this.Name); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Interfaces-and-Implementation/Circle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class Circle : IShape, IMovable 4 | { 5 | private int x, y, radius; 6 | 7 | public Circle(int x, int y, int radius) 8 | { 9 | this.x = x; 10 | this.y = y; 11 | this.radius = radius; 12 | } 13 | 14 | public void SetPosition(int x, int y) // From IShape 15 | { 16 | this.x = x; 17 | this.y = y; 18 | } 19 | 20 | public double CalculateSurface() // From IShape 21 | { 22 | return Math.PI * radius * radius; 23 | } 24 | 25 | public void Move(int deltaX, int deltaY) // From IMovable 26 | { 27 | this.x += deltaX; 28 | this.y += deltaY; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Interfaces-and-Implementation/IMovable.cs: -------------------------------------------------------------------------------- 1 | public interface IMovable 2 | { 3 | void Move(int deltaX, int deltaY); 4 | } 5 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Interfaces-and-Implementation/IResizable.cs: -------------------------------------------------------------------------------- 1 | public interface IResizable 2 | { 3 | void Resize(int weightX, int weightY); 4 | void ResizeByX(int weightX); 5 | void ResizeByY(int weightY); 6 | } 7 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Interfaces-and-Implementation/IShape.cs: -------------------------------------------------------------------------------- 1 | public interface IShape 2 | { 3 | void SetPosition(int x, int y); 4 | double CalculateSurface(); 5 | } 6 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Interfaces-and-Implementation/Square.cs: -------------------------------------------------------------------------------- 1 | public class Square : IShape 2 | { 3 | private int x, y, size; 4 | 5 | public Square(int x, int y, int size) 6 | { 7 | this.x = x; 8 | this.y = y; 9 | this.size = size; 10 | } 11 | 12 | // Derived from IShape 13 | public void SetPosition(int x, int y) 14 | { 15 | this.x = x; 16 | this.y = y; 17 | } 18 | 19 | // Derived from IShape 20 | public double CalculateSurface() 21 | { 22 | return size * size; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Simple-Inheritance/Cat.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class Cat : Mammal 4 | { 5 | public Cat(int age) : base(age) 6 | { 7 | } 8 | 9 | public void SayMyaau() 10 | { 11 | Console.WriteLine("Myaau..."); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Simple-Inheritance/Dog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class Dog : Mammal 4 | { 5 | public string Breed { get; set; } 6 | 7 | public Dog(int age, string breed) : base(age) 8 | { 9 | this.Breed = breed; 10 | } 11 | 12 | public void WagTail() 13 | { 14 | Console.WriteLine("Tail wagging..."); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Simple-Inheritance/Mammal.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class Mammal 4 | { 5 | public int Age { get; set; } 6 | 7 | public Mammal(int age) 8 | { 9 | this.Age = age; 10 | } 11 | 12 | public void Sleep() 13 | { 14 | Console.WriteLine("Shhh! I'm sleeping!"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/demos/Simple-Inheritance/SimpleInheritance.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class SimpleInheritance 4 | { 5 | static void Main() 6 | { 7 | Dog joe = new Dog(8, "Labrador"); 8 | joe.Sleep(); 9 | joe.WagTail(); 10 | Console.WriteLine("Joe is {0} years old dog of breed {1}.", 11 | joe.Age, joe.Breed); 12 | 13 | Console.WriteLine(); 14 | 15 | Cat dolly = new Cat(3); 16 | dolly.Sleep(); 17 | dolly.SayMyaau(); 18 | Console.WriteLine("Dolly is {0} years old cat.", dolly.Age); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/abstraction-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/abstraction-example.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/abstraction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/abstraction.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/data-types.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/data-types.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/encapsulation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/encapsulation.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/hierarchies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/hierarchies.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/inheritance-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/inheritance-example.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/inheritance-type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/inheritance-type.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic00.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic01.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic02.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic03.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic04.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic05.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic06.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic07.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic08.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic09.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic10.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic11.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic12.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic13.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic14.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic15.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic16.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic17.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic18.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic19.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic20.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic21.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic22.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic23.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic24.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic25.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic26.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic27.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic28.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic29.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic30.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic31.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic32.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic33.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic34.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic35.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/pic36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/pic36.png -------------------------------------------------------------------------------- /Topics/04. OOP-Principles-Part-1/imgs/uml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/04. OOP-Principles-Part-1/imgs/uml.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/5. Controls-Hierarchy/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/5. Controls-Hierarchy/Button.cs: -------------------------------------------------------------------------------- 1 | public class Button : Control 2 | { 3 | public override double Size 4 | { 5 | get 6 | { 7 | return 10; 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/5. Controls-Hierarchy/Conrol.cs: -------------------------------------------------------------------------------- 1 | public abstract class Control : IControl 2 | { 3 | public abstract double Size 4 | { 5 | get; 6 | } 7 | } -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/5. Controls-Hierarchy/Container.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | public class Container : Control 4 | { 5 | private readonly IEnumerable controls; 6 | 7 | public Container(IEnumerable controls) 8 | { 9 | this.controls = controls; 10 | } 11 | 12 | public IEnumerable Controls 13 | { 14 | get 15 | { 16 | return this.controls; 17 | } 18 | } 19 | 20 | public override double Size 21 | { 22 | get 23 | { 24 | double size = 0; 25 | foreach (IControl control in this.Controls) 26 | { 27 | size += control.Size; 28 | } 29 | 30 | return size; 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/5. Controls-Hierarchy/IControl.cs: -------------------------------------------------------------------------------- 1 | public interface IControl 2 | { 3 | double Size 4 | { 5 | get; 6 | } 7 | } -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/5. Controls-Hierarchy/Surface.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | public class Surface : Control 4 | { 5 | private readonly IEnumerable controls; 6 | 7 | public Surface(IEnumerable controls) 8 | { 9 | this.controls = controls; 10 | } 11 | 12 | public IEnumerable Controls 13 | { 14 | get 15 | { 16 | return this.controls; 17 | } 18 | } 19 | 20 | public override double Size 21 | { 22 | get 23 | { 24 | double size = 0; 25 | foreach (IControl control in this.Controls) 26 | { 27 | size += control.Size; 28 | } 29 | 30 | return size; 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/Polymorphism/Circle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class Circle : Figure 4 | { 5 | public double Radius { get; set; } 6 | 7 | public override double CalcSurface() 8 | { 9 | return Math.PI * this.Radius * this.Radius; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/Polymorphism/Figure.cs: -------------------------------------------------------------------------------- 1 | public abstract class Figure 2 | { 3 | public abstract double CalcSurface(); 4 | } 5 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/Polymorphism/Polymorphism.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public static class Polymorphism 4 | { 5 | public static void Main() 6 | { 7 | Figure[] figures = 8 | { 9 | new Square { Size = 3 }, 10 | new Circle { Radius = 2 }, 11 | new Rectangle { Width = 2, Height = 3 }, 12 | new Circle { Radius = 3.5 }, 13 | new Square { Size = 2.5 }, 14 | new Square { Size = 4 }, 15 | }; 16 | 17 | foreach (Figure figure in figures) 18 | { 19 | Console.WriteLine( 20 | "Figure = {0} surface = {1:F2}", 21 | figure.GetType().Name.PadRight(9, ' '), 22 | figure.CalcSurface()); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/Polymorphism/Rectangle.cs: -------------------------------------------------------------------------------- 1 | public class Rectangle : Figure 2 | { 3 | public double Width { get; set; } 4 | 5 | public double Height { get; set; } 6 | 7 | public override double CalcSurface() 8 | { 9 | return this.Width * this.Height; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/Polymorphism/Square.cs: -------------------------------------------------------------------------------- 1 | public class Square : Figure 2 | { 3 | public double Size { get; set; } 4 | 5 | public override double CalcSurface() 6 | { 7 | return this.Size * this.Size; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/Simple-Exception-Class/InvalidCalculationException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | public class InvalidCalculationException : ApplicationException 4 | { 5 | public InvalidCalculationException(string msg) 6 | : base(msg) 7 | { 8 | } 9 | 10 | public InvalidCalculationException(string msg, Exception innerEx) 11 | : base(msg, innerEx) 12 | { 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/User-Defined-Exception/test.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 6 | 6 7 | 7 8 | 8 9 | 9 10 | 10 11 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/Virtual-Methods/Circle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | internal class Circle : Figure 4 | { 5 | public override void Draw() 6 | { 7 | Console.WriteLine("I am a circle:"); 8 | Console.WriteLine(" --- "); 9 | Console.WriteLine("| |"); 10 | Console.WriteLine(" --- "); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/Virtual-Methods/Figure.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | internal abstract class Figure 4 | { 5 | public virtual void Draw() 6 | { 7 | Console.WriteLine("I am a figure of unknown kind:"); 8 | Console.WriteLine(this.GetType().Name); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/Virtual-Methods/Line.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class Line : Figure 4 | { 5 | public override void Draw() 6 | { 7 | Console.WriteLine("I am a line:"); 8 | Console.WriteLine("-----"); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/Virtual-Methods/SpecialFigure.cs: -------------------------------------------------------------------------------- 1 | internal class SpecialFigure : Figure 2 | { 3 | } 4 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/demos/Virtual-Methods/VirtualMethods.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | internal static class VirtualMethods 4 | { 5 | private static void Main() 6 | { 7 | Figure[] figures = 8 | { 9 | new Line(), 10 | new Circle(), 11 | new Line(), 12 | new SpecialFigure(), 13 | new Line(), 14 | }; 15 | foreach (var f in figures) 16 | { 17 | f.Draw(); 18 | Console.WriteLine(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/calc-classes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/calc-classes.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic00.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic01.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic02.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic03.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic04.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic05.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic06.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic07.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic08.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic09.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic10.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic11.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic12.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic13.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic14.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic15.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic16.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic17.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic18.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic19.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic20.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic21.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic22.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic23.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic24.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic25.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic26.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic27.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic28.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/pic29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/pic29.png -------------------------------------------------------------------------------- /Topics/05. OOP-Principles-Part-2/imgs/polymorphism.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/05. OOP-Principles-Part-2/imgs/polymorphism.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/demos/BoxingUnboxingPrimitiveTypes/BoxingUnboxing.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class BoxingUnboxing 4 | { 5 | static void Main(string[] args) 6 | { 7 | int value1 = 1; 8 | object obj = value1; // boxing performed 9 | 10 | value1 = 12345; // only stack value is changed 11 | 12 | int value2 = (int)obj; // unboxing performed 13 | Console.WriteLine(value2); // prints 1 14 | 15 | long value3 = (long)(int)obj; // unboxing 16 | long value4 = (long)obj; // InvalidCastException 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/demos/ImplementingIEnumerable/ImplementingIEnumerable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class ImplementingIEnumerable 4 | { 5 | static void Main() 6 | { 7 | LinkedList list = 8 | new LinkedList("1st element", 9 | new LinkedList("2nd element", 10 | new LinkedList("3rd element"))); 11 | foreach (var item in list) 12 | { 13 | Console.WriteLine(item); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/demos/ImplementingIEnumerable/LinkedList.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | 5 | class LinkedList : IEnumerable 6 | { 7 | public T Value { get; set; } 8 | public LinkedList NextNode { get; private set; } 9 | 10 | public LinkedList(T value, LinkedList nextNode = null) 11 | { 12 | this.Value = value; 13 | this.NextNode = nextNode; 14 | } 15 | 16 | IEnumerator IEnumerable.GetEnumerator() 17 | { 18 | // Call the generic version of the method 19 | return this.GetEnumerator(); 20 | } 21 | 22 | public IEnumerator GetEnumerator() 23 | { 24 | LinkedList currentNode = this; 25 | while (currentNode != null) 26 | { 27 | yield return currentNode.Value; 28 | currentNode = currentNode.NextNode; 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/demos/NullableTypes/NullableTypes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | class NullableTypes 4 | { 5 | static void Main() 6 | { 7 | int? x = 5; 8 | Console.WriteLine(x); 9 | 10 | x = 55; 11 | Console.WriteLine(x); 12 | 13 | //int i = x; // This will NOT compile 14 | int i = x.Value; 15 | Console.WriteLine(i); 16 | 17 | x = null; 18 | Console.WriteLine(x); 19 | 20 | //i = x.Value; // InvalidOperationException 21 | //Console.WriteLine(i); 22 | 23 | int y = 20; 24 | 25 | int? sum = x + y; 26 | Console.WriteLine(sum); 27 | 28 | int intSum = x.GetValueOrDefault() + y; 29 | Console.WriteLine(intSum); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/boxing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/boxing.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/memory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/memory.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/net-framework.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/net-framework.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic00.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic01.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic02.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic03.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic04.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic05.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic06.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic07.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic08.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic09.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic10.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic11.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic12.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic13.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic14.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic15.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic16.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic17.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic18.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic19.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic20.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic21.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic22.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic23.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic24.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic25.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic26.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic27.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic28.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic29.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic30.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic31.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic32.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic33.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic34.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic35.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic36.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic37.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic38.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic39.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic40.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic41.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic42.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic43.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic44.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic45.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic46.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic47.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic48.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic49.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic50.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic51.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic52.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic53.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic54.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic55.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic56.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic57.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic58.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic59.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic60.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic61.png -------------------------------------------------------------------------------- /Topics/06. Common-Type-System/imgs/pic62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/06. Common-Type-System/imgs/pic62.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/.saveme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/.saveme -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/Common/GenderType.cs: -------------------------------------------------------------------------------- 1 | namespace Cosmetics.Common 2 | { 3 | public enum GenderType 4 | { 5 | Men, 6 | Women, 7 | Unisex 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/Common/GlobalErrorMessages.cs: -------------------------------------------------------------------------------- 1 | namespace Cosmetics.Common 2 | { 3 | public class GlobalErrorMessages 4 | { 5 | public const string StringCannotBeNullOrEmpty = "{0} cannot be null or empty!"; 6 | public const string ObjectCannotBeNull = "{0} cannot be null!"; 7 | public const string InvalidStringLength = "{0} must be between {1} and {2} symbols long!"; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/Common/UsageType.cs: -------------------------------------------------------------------------------- 1 | namespace Cosmetics.Common 2 | { 3 | public enum UsageType 4 | { 5 | EveryDay, 6 | Medical 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/Contracts/ICategory.cs: -------------------------------------------------------------------------------- 1 | namespace Cosmetics.Contracts 2 | { 3 | public interface ICategory 4 | { 5 | string Name { get; } 6 | 7 | void AddCosmetics(IProduct cosmetics); 8 | 9 | void RemoveCosmetics(IProduct cosmetics); 10 | 11 | string Print(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/Contracts/ICommand.cs: -------------------------------------------------------------------------------- 1 | namespace Cosmetics.Contracts 2 | { 3 | using System.Collections.Generic; 4 | 5 | interface ICommand 6 | { 7 | string Name { get; } 8 | 9 | IList Parameters { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/Contracts/ICosmeticsFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Cosmetics.Contracts 2 | { 3 | using System.Collections.Generic; 4 | 5 | using Cosmetics.Common; 6 | using Cart; 7 | using Products; 8 | 9 | public interface ICosmeticsFactory 10 | { 11 | ICategory CreateCategory(string name); 12 | 13 | Shampoo CreateShampoo(string name, string brand, decimal price, GenderType gender, uint milliliters, UsageType usage); 14 | 15 | IToothpaste CreateToothpaste(string name, string brand, decimal price, GenderType gender, IList ingredients); 16 | 17 | ShoppingCart ShoppingCart(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/Contracts/IEngine.cs: -------------------------------------------------------------------------------- 1 | namespace Cosmetics.Contracts 2 | { 3 | public interface IEngine 4 | { 5 | void Start(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/Contracts/IProduct.cs: -------------------------------------------------------------------------------- 1 | namespace Cosmetics.Contracts 2 | { 3 | using Cosmetics.Common; 4 | 5 | public interface IProduct 6 | { 7 | string Name { get; } 8 | 9 | string Brand { get; } 10 | 11 | decimal Price { get; } 12 | 13 | GenderType Gender { get; } 14 | 15 | string Print(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/Contracts/IShampoo.cs: -------------------------------------------------------------------------------- 1 | namespace Cosmetics.Contracts 2 | { 3 | using Cosmetics.Common; 4 | 5 | public interface IShampoo : IProduct 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/Contracts/IToothPaste.cs: -------------------------------------------------------------------------------- 1 | namespace Cosmetics.Contracts 2 | { 3 | using System.Collections.Generic; 4 | 5 | public interface IToothpaste : IProduct 6 | { 7 | string Ingredients { get; } 8 | } 9 | } -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/Cosmetics-Skeleton/Cosmetics/CosmeticsProgram.cs: -------------------------------------------------------------------------------- 1 | using Cosmetics.Engine; 2 | namespace Cosmetics 3 | { 4 | public class CosmeticsProgram 5 | { 6 | public static void Main() 7 | { 8 | CosmeticsEngine.Instance.Start(); 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/category-class-interfaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/category-class-interfaces.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/category-class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/category-class.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/category-print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/category-print.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/diff-checker-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/diff-checker-1.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/diff-checker-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/diff-checker-2.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/errors-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/errors-2.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/initial_errors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/initial_errors.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/list-getter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/list-getter.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/points-yeah.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/points-yeah.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/product-print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/product-print.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/validator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/Cosmetics/imgs/validator.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/category-class-interfaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/category-class-interfaces.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/category-class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/category-class.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/category-print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/category-print.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/diff-checker-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/diff-checker-1.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/diff-checker-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/diff-checker-2.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/errors-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/errors-2.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/initial_errors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/initial_errors.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/list-getter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/list-getter.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/points-yeah.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/points-yeah.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/product-print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/product-print.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/validator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TelerikAcademy/Object-Oriented-Programming/2d1a0e0b261a40a42b11abab2eb610d06c198597/Topics/07. OOP-Workshop/Cosmetics-Workshop/imgs/validator.png -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.ConsoleClient/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Contracts/IBeverage.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Contracts 2 | { 3 | using Infrastructure.Enumerations.Common; 4 | 5 | public interface IBeverage : IConsumable 6 | { 7 | int PortionSizeInMilliliters { get; set; } 8 | 9 | BeverageType Type { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Contracts/IBuilding.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Contracts 2 | { 3 | public interface IBuilding : INameable 4 | { 5 | string Address { get; } 6 | 7 | // TODO: Configurable 8 | int Capacity { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Contracts/IConsumable.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Contracts 2 | { 3 | using Infrastructure.Enumerations.Common; 4 | 5 | public interface IConsumable 6 | { 7 | decimal TotalPrice { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Contracts/ICustomCollection.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Contracts 2 | { 3 | using System.Collections.Generic; 4 | 5 | public interface ICustomCollection : IList 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Contracts/IFood.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Contracts 2 | { 3 | using Infrastructure.Enumerations.Common; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | public interface IFood : IConsumable 11 | { 12 | int PortionSizeInGrams { get; set; } 13 | 14 | FoodType Type { get; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Contracts/INameable.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Contracts 2 | { 3 | public interface INameable 4 | { 5 | string Name { get; } 6 | } 7 | } -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Contracts/IRestaurantBuilding.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Contracts 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | public interface IRestaurantBuilding : IBuilding 10 | { 11 | ICollection Clients { get; } 12 | ICollection Waiters { get; } 13 | 14 | void AcceptClient(IHuman human); 15 | void SendClientHome(IHuman human); 16 | 17 | void HireWaiter(IWaiter waiter); 18 | void FireWaiter(IWaiter waiter); 19 | 20 | void ProcessClientRequests(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Contracts/IRestaurantOrder.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Contracts 2 | { 3 | using System.Collections.Generic; 4 | 5 | public interface IRestaurantOrder 6 | { 7 | ICollection Foods { get; set; } 8 | ICollection Beverages { get; set; } 9 | decimal TotalOrderPrice { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Contracts/IWaiter.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Contracts 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | public interface IWaiter : IHuman 10 | { 11 | bool IsAvailable { get; } 12 | decimal Bakshishes { get; } 13 | decimal RestaurantProfits { get; } 14 | 15 | void GetOrder(IRestaurantOrder order, IHuman client); 16 | void ServeOrder(IHuman client); 17 | void RequestPayment(IHuman client); 18 | } 19 | } -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Constants/CurrencyConstants.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Constants 2 | { 3 | public class CurrencyConstants 4 | { 5 | public const decimal SoftwareEngineerBakshishPercentage = 0.15m; 6 | public const decimal SoftwareEngineerSalaryPerHour = 80m; 7 | } 8 | } -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Constants/GlobalConstants.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Constants 2 | { 3 | public class GlobalConstants 4 | { 5 | public const int DelimitersCount = 60; 6 | public const int VitalityRestorationRateWhileSleeping = 8; 7 | public const float VitalityRestorationRateWhileResting = 0.05f; 8 | } 9 | } -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Constants/ValidationConstants.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Constants 2 | { 3 | public class ValidationConstants 4 | { 5 | public const int SizeOfPortionInGramsMinValue = 0; 6 | public const int SizeOfPortionInGramsMaxValue = 5000; 7 | 8 | public const int VitalityLevelMaxValue = 100; 9 | public const int VitalityLevelMinValue = 0; 10 | 11 | public const int StarvationLevelMaxValue = 100; 12 | public const int StarvationLevelMinValue = 0; 13 | 14 | public const int ThirstLevelMaxValue = 100; 15 | public const int ThirstLevelMinValue = 0; 16 | 17 | public const decimal MoneyInEuroMaxValue = 999999; 18 | public const decimal MoneyInEuroMinValue = 0; 19 | } 20 | } -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Enumerations/Common/BeverageType.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Enumerations.Common 2 | { 3 | public enum BeverageType 4 | { 5 | GreenTea = 5, 6 | BlackTea = 4, 7 | WhiteTea = 12, 8 | Coffee = 13, 9 | Beer = 15, 10 | CoconutMilk = 9, 11 | MineralWater = 8, 12 | WellWater = 11 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Enumerations/Common/FoodType.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Enumerations.Common 2 | { 3 | public enum FoodType 4 | { 5 | FruitSalad = 10, 6 | VegetablesSalad = 12, 7 | Pizza = 20, 8 | Spaghetti = 30, 9 | Chocolate = 999 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Enumerations/Human/EyesColorType.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Enumerations.Human 2 | { 3 | public enum EyesColorType 4 | { 5 | NotSet = 0, 6 | Brown, 7 | Black, 8 | Gray, 9 | Blue, 10 | Green, 11 | Mixed 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Enumerations/Human/FaceShapeType.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Enumerations.Human 2 | { 3 | public enum FaceShapeType 4 | { 5 | NotSet = 0, 6 | Oblong, 7 | Square, 8 | Heart, 9 | Diamond 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Enumerations/Human/GenderType.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Enumerations.Human 2 | { 3 | public enum GenderType 4 | { 5 | NotSet = 0, 6 | Male, 7 | Female 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Enumerations/Human/HairColorType.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Enumerations.Human 2 | { 3 | public enum HairColorType 4 | { 5 | NotSet = 0, 6 | Black, 7 | Brown, 8 | White, 9 | Gray, 10 | Pink, 11 | Green, 12 | Blue 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Enumerations/Human/RaceType.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Enumerations.Human 2 | { 3 | public enum RaceType 4 | { 5 | NotSet =0, 6 | European, 7 | African, 8 | Asian, 9 | Indian 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Enumerations/Human/ReligionType.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Enumerations.Human 2 | { 3 | public enum ReligionType 4 | { 5 | NotSet = 0, 6 | Christianity, 7 | Hinduism, 8 | Islamism, 9 | Judaism, 10 | Atheism, 11 | Agnosticism 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Exceptions/MoneyOutOfRangeException.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Exceptions 2 | { 3 | using System; 4 | 5 | public class MoneyOutOfRangeException : ArgumentOutOfRangeException 6 | { 7 | public MoneyOutOfRangeException(string message, decimal moneyAmount) 8 | : base(message) 9 | { 10 | this.MoneyAmount = moneyAmount; 11 | } 12 | 13 | public decimal MoneyAmount { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Infrastructure/Exceptions/PriceOutOfRangeException.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Infrastructure.Exceptions 2 | { 3 | using System; 4 | 5 | public class PriceOutOfRangeException : ArgumentOutOfRangeException 6 | { 7 | public PriceOutOfRangeException(string message, decimal priceValue) 8 | : base(message) 9 | { 10 | this.PriceValue = priceValue; 11 | } 12 | 13 | public decimal PriceValue { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Models/Common/Beverage.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Models.Common 2 | { 3 | using Abstract; 4 | using Contracts; 5 | using Infrastructure.Enumerations.Common; 6 | 7 | public class Beverage : Consumable, IBeverage 8 | { 9 | public int PortionSizeInMilliliters { get; set; } 10 | 11 | public BeverageType Type { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /Topics/07. OOP-Workshop/Societies-Workshop/Societies.Core/Models/Common/Food.cs: -------------------------------------------------------------------------------- 1 | namespace Societies.Core.Models.Common 2 | { 3 | using Abstract; 4 | using Contracts; 5 | using Infrastructure.Enumerations.Common; 6 | using System; 7 | using System.Collections.Generic; 8 | using System.Linq; 9 | using System.Text; 10 | using System.Threading.Tasks; 11 | 12 | public class Food : Consumable, IFood 13 | { 14 | public int PortionSizeInGrams { get; set; } 15 | 16 | public FoodType Type { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Common/Enums/Role.cs: -------------------------------------------------------------------------------- 1 | namespace Dealership.Common.Enums 2 | { 3 | public enum Role 4 | { 5 | Normal = 0, 6 | VIP = 1, 7 | Admin = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Common/Enums/VehicleType.cs: -------------------------------------------------------------------------------- 1 | namespace Dealership.Common.Enums 2 | { 3 | public enum VehicleType 4 | { 5 | Motorcycle = 2, 6 | Car = 4, 7 | Truck = 8 8 | } 9 | } -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Contracts/ICar.cs: -------------------------------------------------------------------------------- 1 | namespace Dealership.Contracts 2 | { 3 | public interface ICar 4 | { 5 | int Seats { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Contracts/IComment.cs: -------------------------------------------------------------------------------- 1 | namespace Dealership.Contracts 2 | { 3 | public interface IComment 4 | { 5 | string Content { get; } 6 | 7 | string Author { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Contracts/ICommentable.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Dealership.Contracts 4 | { 5 | public interface ICommentable 6 | { 7 | IList Comments { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Contracts/IMotorcycle.cs: -------------------------------------------------------------------------------- 1 | namespace Dealership.Contracts 2 | { 3 | public interface IMotorcycle 4 | { 5 | string Category { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Contracts/IPriceable.cs: -------------------------------------------------------------------------------- 1 | namespace Dealership.Contracts 2 | { 3 | public interface IPriceable 4 | { 5 | decimal Price { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Contracts/ITruck.cs: -------------------------------------------------------------------------------- 1 | namespace Dealership.Contracts 2 | { 3 | public interface ITruck 4 | { 5 | int WeightCapacity { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Contracts/IUser.cs: -------------------------------------------------------------------------------- 1 | using Dealership.Common.Enums; 2 | using System.Collections.Generic; 3 | 4 | namespace Dealership.Contracts 5 | { 6 | public interface IUser 7 | { 8 | string Username { get; } 9 | 10 | string FirstName { get; } 11 | 12 | string LastName { get; } 13 | 14 | string Password { get; } 15 | 16 | Role Role { get; } 17 | 18 | IList Vehicles { get; } 19 | 20 | void AddVehicle(IVehicle vehicle); 21 | 22 | void RemoveVehicle(IVehicle vehicle); 23 | 24 | void AddComment(IComment commentToAdd, IVehicle vehicleToAddComment); 25 | 26 | void RemoveComment(IComment commentToRemove, IVehicle vehicleToRemoveComment); 27 | 28 | string PrintVehicles(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Contracts/IVehicle.cs: -------------------------------------------------------------------------------- 1 | namespace Dealership.Contracts 2 | { 3 | using Dealership.Common.Enums; 4 | 5 | public interface IVehicle : ICommentable, IPriceable 6 | { 7 | int Wheels { get; } 8 | 9 | VehicleType Type { get; } 10 | 11 | string Make { get; } 12 | 13 | string Model { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Engine/ICommand.cs: -------------------------------------------------------------------------------- 1 | namespace Dealership.Engine 2 | { 3 | using System.Collections.Generic; 4 | 5 | public interface ICommand 6 | { 7 | string Name { get; } 8 | 9 | List Parameters { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Engine/IEngine.cs: -------------------------------------------------------------------------------- 1 | namespace Dealership.Engine 2 | { 3 | public interface IEngine 4 | { 5 | void Start(); 6 | 7 | void Reset(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Factories/IDealershipFactory.cs: -------------------------------------------------------------------------------- 1 | using Dealership.Contracts; 2 | 3 | namespace Dealership.Factories 4 | { 5 | public interface IDealershipFactory 6 | { 7 | IUser CreateUser(string username, string firstName, string lastName, string password, string role); 8 | 9 | IComment CreateComment(string content); 10 | 11 | IVehicle CreateCar(string make, string model, decimal price, int seats); 12 | 13 | IVehicle CreateMotorcycle(string make, string model, decimal price, string category); 14 | 15 | IVehicle CreateTruck(string make, string model, decimal price, int weightCapacity); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/Dealership-AuthorSolution/Dealership/Startup.cs: -------------------------------------------------------------------------------- 1 | using Dealership.Engine; 2 | using System; 3 | using System.IO; 4 | 5 | namespace Dealership 6 | { 7 | public class Startup 8 | { 9 | public static void Main() 10 | { 11 | DealershipEngine.Instance.Start(); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Enums/EngineControlUnitType.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Common.Enums 2 | { 3 | public enum EngineControlUnitType 4 | { 5 | NotSet = 0, 6 | Stock, 7 | Performance, 8 | Pro 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Enums/ExhaustType.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Common.Enums 2 | { 3 | public enum ExhaustType 4 | { 5 | NotSet = 0, 6 | NickelChromePlated, 7 | StainlessSteel, 8 | CeramicCoated 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Enums/GenderType.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Common.Enums 2 | { 3 | public enum GenderType 4 | { 5 | NotSet = 0, 6 | Female, 7 | Male 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Enums/IntercoolerType.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Common.Enums 2 | { 3 | public enum IntercoolerType 4 | { 5 | NotSet = 0, 6 | AirToLiquidIntercooler, 7 | ChargeAirIntercooler 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Enums/MotorType.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Common.Enums 2 | { 3 | public enum MotorType 4 | { 5 | NotSet = 0, 6 | ReciprocatingMotor, 7 | TurboPropellerMotor, 8 | SteamMotor, 9 | PulseDetonationMotor, 10 | PulseJet, 11 | RamJet, 12 | ScramJet, 13 | SabreReactionMotor 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Enums/NumberOfCylindersType.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Common.Enums 2 | { 3 | public enum CylinderType 4 | { 5 | NotSet = 0, 6 | V6, 7 | V8, 8 | V12, 9 | V16 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Enums/TireType.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Common.Enums 2 | { 3 | public enum TireType 4 | { 5 | NotSet = 0, 6 | AllSeasonTire, 7 | AllTerrainTire, 8 | LowProfileTire, 9 | OffRoadTire, 10 | WinterTire, 11 | MudTire, 12 | PerformanceTire, 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Enums/TransmissionType.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Common.Enums 2 | { 3 | public enum TransmissionType 4 | { 5 | NotSet = 0, 6 | ManualShortShifter, 7 | SemiManualShifter, 8 | StockShifter 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Enums/TunningPartGradeType.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Common.Enums 2 | { 3 | public enum TunningGradeType 4 | { 5 | NotSet = 0, 6 | LowGrade, 7 | MidGrade, 8 | HighGrade 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Enums/TurbochargerType.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Common.Enums 2 | { 3 | public enum TurbochargerType 4 | { 5 | NotSet = 0, 6 | TwinTurbo, 7 | TwinScroll, 8 | SequentialTurbo 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Extensions/IEnumerableExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using FastAndFurious.ConsoleApplication.Contracts; 5 | 6 | namespace FastAndFurious.ConsoleApplication.Common.Extensions 7 | { 8 | public static class IEnumerableExtensions 9 | { 10 | public static T GetById(this IEnumerable collection, int id) where T : IIdentifiable 11 | { 12 | return collection.FirstOrDefault(x => x.Id == id); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Utils/DataGenerator.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Common.Utils 4 | { 5 | public static class DataGenerator 6 | { 7 | private static int idCounter; 8 | 9 | static DataGenerator() 10 | { 11 | idCounter = 0; 12 | } 13 | 14 | public static int GenerateId() 15 | { 16 | return Interlocked.Increment(ref idCounter); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Common/Utils/MetricUnitsConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Common.Utils 4 | { 5 | public static class MetricUnitsConverter 6 | { 7 | private const int MinutesInHour = 60; 8 | private const int SecondsInMinute = 60; 9 | private const decimal MetersInAKilometer = 1000m; 10 | 11 | public static int GetMetersPerSecondFrom(int kilometersPerHour) 12 | { 13 | var expression = (kilometersPerHour * MetersInAKilometer) / (MinutesInHour * SecondsInMinute); 14 | var metersPerSecond = Convert.ToInt32(Math.Ceiling(expression)); 15 | 16 | return metersPerSecond; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/IAcceleratable.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Contracts 2 | { 3 | public interface IAccelerateable 4 | { 5 | /// 6 | /// Defines the acceleration provided in meters per second squared (m/s^2) 7 | /// 8 | int Acceleration { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/IDriver.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using FastAndFurious.ConsoleApplication.Common.Enums; 3 | 4 | namespace FastAndFurious.ConsoleApplication.Contracts 5 | { 6 | public interface IDriver : IIdentifiable 7 | { 8 | string Name { get; } 9 | 10 | GenderType Gender { get; } 11 | 12 | IMotorVehicle ActiveVehicle { get; } 13 | 14 | IEnumerable Vehicles { get; } 15 | 16 | void AddVehicle(IMotorVehicle vehicle); 17 | 18 | void SetActiveVehicle(IMotorVehicle vehicle); 19 | 20 | bool RemoveVehicle(IMotorVehicle vehicle); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/IEngineControlUnit.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Contracts 4 | { 5 | public interface IEngineControlUnit : ITunningPart, IAccelerateable, ITopSpeed, IWeightable, IValuable, IIdentifiable 6 | { 7 | EngineControlUnitType EngineControlUnitType { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/IExhaust.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Contracts 4 | { 5 | public interface IExhaust : ITunningPart, IAccelerateable, ITopSpeed, IWeightable, IValuable, IIdentifiable 6 | { 7 | ExhaustType ExhaustType { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/IIdentifiable.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Contracts 2 | { 3 | public interface IIdentifiable 4 | { 5 | int Id { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/IIntercooler.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Contracts 4 | { 5 | public interface IIntercooler : ITunningPart, IAccelerateable, ITopSpeed, IWeightable, IValuable, IIdentifiable 6 | { 7 | IntercoolerType IntercoolerType { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/IMotor.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Contracts 4 | { 5 | public interface IMotor : ITunningPart, IAccelerateable, ITopSpeed, IWeightable, IValuable, IIdentifiable 6 | { 7 | int Horsepower { get; } 8 | 9 | MotorType EngineType { get; } 10 | 11 | CylinderType CylinderType { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/IRaceTrack.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace FastAndFurious.ConsoleApplication.Contracts 5 | { 6 | public interface IRaceTrack : IIdentifiable 7 | { 8 | int TrackLengthInMeters { get; } 9 | 10 | int MaxParticipantsCount { get; } 11 | 12 | int MinParticipantsCount { get; } 13 | 14 | string TrackName { get; } 15 | 16 | IEnumerable Participants { get; } 17 | 18 | IEnumerable> FinishedRacesResults { get; } 19 | 20 | void AddParticipant(IDriver participant); 21 | 22 | bool RemoveParticipant(IDriver participant); 23 | 24 | void RunRace(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/ITireSet.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Contracts 4 | { 5 | public interface ITireSet : ITunningPart, IAccelerateable, ITopSpeed, IWeightable, IValuable, IIdentifiable 6 | { 7 | TireType TireType { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/ITopSpeed.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Contracts 2 | { 3 | public interface ITopSpeed 4 | { 5 | /// 6 | /// Defines the top speed provided in kilometers per hour (km/h). 7 | /// 8 | int TopSpeed { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/ITransmission.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Contracts 4 | { 5 | public interface ITransmission : ITunningPart, IAccelerateable, ITopSpeed, IWeightable, IValuable, IIdentifiable 6 | { 7 | TransmissionType TransmissionType { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/ITunningPart.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Contracts 4 | { 5 | public interface ITunningPart : IAccelerateable, ITopSpeed, IWeightable, IValuable, IIdentifiable 6 | { 7 | TunningGradeType GradeType { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/ITurbocharger.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Contracts 4 | { 5 | public interface ITurbocharger : ITunningPart, IAccelerateable, ITopSpeed, IWeightable, IValuable, IIdentifiable 6 | { 7 | TurbochargerType TurbochargerType { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/IValuable.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Contracts 2 | { 3 | public interface IValuable 4 | { 5 | decimal Price { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Contracts/IWeightable.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication.Contracts 2 | { 3 | public interface IWeightable 4 | { 5 | int Weight { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Models/Common/IdentifiableObject.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Utils; 2 | using FastAndFurious.ConsoleApplication.Contracts; 3 | 4 | namespace FastAndFurious.ConsoleApplication.Models.Common 5 | { 6 | public class IdentifiableObject : IIdentifiable 7 | { 8 | private readonly int id; 9 | 10 | public IdentifiableObject() 11 | { 12 | this.id = DataGenerator.GenerateId(); 13 | } 14 | 15 | public int Id 16 | { 17 | get 18 | { 19 | return this.id; 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Models/Drivers/DominicRendeto.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | using FastAndFurious.ConsoleApplication.Models.Drivers.Abstract; 3 | 4 | namespace FastAndFurious.ConsoleApplication.Models.Drivers 5 | { 6 | public class DominicRendeto : Driver 7 | { 8 | private const string DominicRendetoDriverName = "Dominic Rendeto"; 9 | 10 | public DominicRendeto() 11 | : base(DominicRendetoDriverName, GenderType.Male) 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Models/Drivers/Jessi.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | using FastAndFurious.ConsoleApplication.Models.Drivers.Abstract; 3 | 4 | namespace FastAndFurious.ConsoleApplication.Models.Drivers 5 | { 6 | public class Jessi : Driver 7 | { 8 | private const string JessiDriverName = "Jessi"; 9 | 10 | public Jessi() 11 | : base(JessiDriverName, GenderType.Female) 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Models/Drivers/LetiSpaghetti.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | using FastAndFurious.ConsoleApplication.Models.Drivers.Abstract; 3 | 4 | namespace FastAndFurious.ConsoleApplication.Models.Drivers 5 | { 6 | public class LetiSpaghetti : Driver 7 | { 8 | public const string LetiSpaghettiDriverName = "Leti Spaghetti"; 9 | 10 | public LetiSpaghetti() 11 | : base(LetiSpaghettiDriverName, GenderType.Female) 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Models/Drivers/Mia.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | using FastAndFurious.ConsoleApplication.Models.Drivers.Abstract; 3 | 4 | namespace FastAndFurious.ConsoleApplication.Models.Drivers 5 | { 6 | public class Mia : Driver 7 | { 8 | private const string MiaRendetoDriverName = "Mia"; 9 | 10 | public Mia() 11 | : base(MiaRendetoDriverName, GenderType.Female) 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Models/Drivers/VinBenzin.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | using FastAndFurious.ConsoleApplication.Models.Drivers.Abstract; 3 | 4 | namespace FastAndFurious.ConsoleApplication.Models.Drivers 5 | { 6 | public class VinBenzin : Driver 7 | { 8 | public const string VinBenzinDriverName = "Vin Benzin"; 9 | 10 | public VinBenzin() : base(VinBenzinDriverName, GenderType.Male) 11 | { 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Models/Drivers/Vince.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Common.Enums; 2 | using FastAndFurious.ConsoleApplication.Models.Drivers.Abstract; 3 | 4 | namespace FastAndFurious.ConsoleApplication.Models.Drivers 5 | { 6 | public class Vince : Driver 7 | { 8 | public const string VinceDriverName = "Vince"; 9 | 10 | public Vince() 11 | : base(VinceDriverName, GenderType.Male) 12 | { 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Models/MotorVehicles/Nissan350Z.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Models.MotorVehicles.Abstract; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Models.MotorVehicles 4 | { 5 | public class Nissan350Z : MotorVehicle 6 | { 7 | private const int Nissan350ZWeightInGrams = 1280000; 8 | private const int Nissan350ZAcceleration = 55; 9 | private const int Nissan350ZTopSpeed = 220; 10 | private const decimal Nissan350ZPriceInUSADollars = 25999; 11 | 12 | public Nissan350Z() 13 | : base( 14 | Nissan350ZPriceInUSADollars, 15 | Nissan350ZWeightInGrams, 16 | Nissan350ZTopSpeed, 17 | Nissan350ZAcceleration) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Models/MotorVehicles/NissanGTR.cs: -------------------------------------------------------------------------------- 1 | using FastAndFurious.ConsoleApplication.Models.MotorVehicles.Abstract; 2 | 3 | namespace FastAndFurious.ConsoleApplication.Models.MotorVehicles 4 | { 5 | public class NissanGTR : MotorVehicle 6 | { 7 | private const int NissanGTRWeightInGrams = 1850000; 8 | private const int NissanGTRAcceleration = 45; 9 | private const int NissanGTRTopSpeed = 300; 10 | private const decimal NissanGTRPriceInUSADollars = 125000; 11 | 12 | public NissanGTR() 13 | : base( 14 | NissanGTRPriceInUSADollars, 15 | NissanGTRWeightInGrams, 16 | NissanGTRTopSpeed, 17 | NissanGTRAcceleration) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Topics/Exam-AuthorsSolutions/FastAndFurious-AuthorSolution/FastAndFurious.ConsoleApplication/Startup.cs: -------------------------------------------------------------------------------- 1 | namespace FastAndFurious.ConsoleApplication 2 | { 3 | public class Startup 4 | { 5 | public static void Main(string[] args) 6 | { 7 | var engine = new FastAndFurious.ConsoleApplication.Engine.Engine(); 8 | engine.Start(); 9 | } 10 | } 11 | } 12 | --------------------------------------------------------------------------------