How 27044-sanjeevi/csharp-assignments-jul-2026 works
Purpose and Topology
This is a C# starter repository containing three independent console-assignment applications: contact management, OOP demonstrations, and inventory management. The root solution, CSharp_Assignments.sln, is the primary development entry point; each assignment also has its own executable project and Program.cs.
Runtime Entry and Application Bootstrap
Each application starts in its project entry point, then delegates to an application runner/controller flow:
• src/BasicContactManagerAssignment1/Program.cs
• src/Assignment2BasicsOfOOPs/Program.cs
• src/Assignment3InventoryManagement/Program.cs
ApplicationRunner.cs exists in assignments 2 and 3 as a likely composition/bootstrap boundary:
• src/Assignment2BasicsOfOOPs/ApplicationRunner.cs
• src/Assignment3InventoryManagement/ApplicationRunner.cs
The material runtime is .NET/C# console applications; no web runtime, database, or remote service is represented in the tree.
Console Presentation and Control Flow
All assignments follow an interactive console architecture: console I/O and views collect/display user-facing data, controllers coordinate commands and navigation, and services perform domain operations.
• src/Assignment3InventoryManagement/View/ConsoleView.cs
• src/Assignment3InventoryManagement/Controller/MainController.cs
• src/Assignment3InventoryManagement/IO/IConsoleIO.cs
The control boundary is deliberately explicit: UI-facing classes should not own persistence or domain rules, while controllers/services mediate those interactions.
Contact Management Domain
Assignment 1 implements a basic contact-management flow. The controller coordinates the console UI, validation, manager service, and repository around ContactInfo.
• src/BasicContactManagerAssignment1/Controller/ContactController.cs
• src/BasicContactManagerAssignment1/Services/ContactManager.cs
• src/BasicContactManagerAssignment1/Models/ContactInfo.cs
Persistence is abstracted as a repository implementation, creating a separate storage boundary even though no external database provider is visible:
• src/BasicContactManagerAssignment1/Persistence/Repository.cs
• src/BasicContactManagerAssignment1/Validation/ContactValidator.cs
OOP Demonstration Domain
Assignment 2 groups three domains—bank accounts, employees, and shapes—under a main controller and separate domain controllers/services. It is structured to exercise inheritance/polymorphism and domain-specific validation.
• src/Assignment2BasicsOfOOPs/Controller/MainController.cs
• src/Assignment2BasicsOfOOPs/Services/BankService.cs
• src/Assignment2BasicsOfOOPs/Models/BankAccount.cs
Representative subtype hierarchies include account types, employee roles, and shapes:
• src/Assignment2BasicsOfOOPs/Models/CheckingAccount.cs
• src/Assignment2BasicsOfOOPs/Models/Developer.cs
• src/Assignment2BasicsOfOOPs/Models/Shape.cs
Inventory Management Pipeline
Assignment 3 is the most explicitly layered application. MainController drives user operations; InventoryService exposes inventory behavior through an interface; Repository supplies storage through IRepository; validation gates product input.
• src/Assignment3InventoryManagement/Controller/MainController.cs
• src/Assignment3InventoryManagement/Services/IInventoryService.cs
• src/Assignment3InventoryManagement/Persistence/IRepository.cs
Primary flow: console input → controller → validation/service → repository → Product results → console view. Sorting is modeled as a domain-level option:
• src/Assignment3InventoryManagement/Models/Product.cs
• src/Assignment3InventoryManagement/Validation/IProductValidation.cs
• src/Assignment3InventoryManagement/Models/Enum/SortField.cs
Quality and Delivery Infrastructure
GitHub Actions provides build/test/coverage automation:
• .github/workflows/BuildTestCoverage.yml
The repository reserves separated acceptance and unit-test roots, while contributor workflow emphasizes project-per-assignment development and pull requests:
• tests/acceptance/Directory.Build.props
• tests/unit/Directory.Build.props
• README.md
Main entry points: Controller/MainController.cs OOP Main Controller · Controller/MainController.cs Inventory Main Controller · CSharp_Assignments.sln C# Assignments Solution · ConsoleView.cs Console View
Components 26
Assignment 1 · Contacts
- Contact App Entry
src/BasicContactManagerAssignment1/Program.cs - Contact Controller
src/BasicContactManagerAssignment1/Controller/ContactController.cs - Contact Validator
src/BasicContactManagerAssignment1/Validation/ContactValidator.cs - Contact Manager
src/BasicContactManagerAssignment1/Services/ContactManager.cs - Contact Repository · Storage boundary without an external provider.
src/BasicContactManagerAssignment1/Persistence/Repository.cs - Contact Info
src/BasicContactManagerAssignment1/Models/ContactInfo.cs
Assignment 2 · OOP
- OOP App Entry
src/Assignment2BasicsOfOOPs/Program.cs - Application Runner
src/Assignment2BasicsOfOOPs/ApplicationRunner.cs - OOP Main Controller · Coordinates bank, employee, and shape demonstrations.
src/Assignment2BasicsOfOOPs/Controller/MainController.cs - Bank Service
src/Assignment2BasicsOfOOPs/Services/BankService.cs - Bank Account Hierarchy · Base account with specialized account types.
src/Assignment2BasicsOfOOPs/Models/BankAccount.cs - Checking Account
src/Assignment2BasicsOfOOPs/Models/CheckingAccount.cs - Developer Role
src/Assignment2BasicsOfOOPs/Models/Developer.cs - Shape Hierarchy
src/Assignment2BasicsOfOOPs/Models/Shape.cs
Assignment 3 · Inventory
- Inventory App Entry
src/Assignment3InventoryManagement/Program.cs - Application Runner
src/Assignment3InventoryManagement/ApplicationRunner.cs - Console View
src/Assignment3InventoryManagement/View/ConsoleView.cs - Console I/O Contract
src/Assignment3InventoryManagement/IO/IConsoleIO.cs - Inventory Main Controller
src/Assignment3InventoryManagement/Controller/MainController.cs - Product Validation Contract
src/Assignment3InventoryManagement/Validation/IProductValidation.cs - Inventory Service Contract
src/Assignment3InventoryManagement/Services/IInventoryService.cs - Repository Contract
src/Assignment3InventoryManagement/Persistence/IRepository.cs - Product
src/Assignment3InventoryManagement/Models/Product.cs - Sort Field
src/Assignment3InventoryManagement/Models/Enum/SortField.cs
Delivery
- Build, Test & Coverage
.github/workflows/BuildTestCoverage.yml
Other components
- C# Assignments Solution · Primary development entry point.
CSharp_Assignments.sln
Connections 26
- C# Assignments Solution → Contact App Entry: includes
- C# Assignments Solution → OOP App Entry: includes
- C# Assignments Solution → Inventory App Entry: includes
- Contact App Entry → Contact Controller: starts
- Contact Controller → Contact Validator: validates input
- Contact Controller → Contact Manager: coordinates
- Contact Manager → Contact Repository: persists contacts
- Contact Manager → Contact Info: manages
- OOP App Entry → Application Runner: starts
- Application Runner → OOP Main Controller: composes
- OOP Main Controller → Bank Service: dispatches bank operations
- Bank Service → Bank Account Hierarchy: operates on
- Checking Account → Bank Account Hierarchy: inherits
- OOP Main Controller → Developer Role: demonstrates roles
- OOP Main Controller → Shape Hierarchy: demonstrates polymorphism
- Inventory App Entry → Application Runner: starts
- Application Runner → Console View: composes
- Console View → Console I/O Contract: uses
- Console View → Inventory Main Controller: sends commands
- Inventory Main Controller → Product Validation Contract: validates input
- Inventory Main Controller → Inventory Service Contract: invokes
- Inventory Service Contract → Repository Contract: loads and saves
- Inventory Service Contract → Product: manages
- Inventory Main Controller → Sort Field: selects sorting
- Product → Console View: results displayed
- Build, Test & Coverage → C# Assignments Solution: builds and tests