├── .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 |
--------------------------------------------------------------------------------