using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AppLogic { public class VTNZ_StoreFront : IStoreFront { string _storefrontName; string _storefrontAddress; string _storefrontPhoneNumber; string[] _storefrontOpenDays; TimeSpan[] _storefrontTimeOpen; List _storeProducts; public string GetName => _storefrontName; public string GetAddress => _storefrontAddress; public string[] GetOpenDays => _storefrontOpenDays; public TimeSpan[] GetOpenTime => _storefrontTimeOpen; public string GetPhoneNumber => _storefrontPhoneNumber; public List GetProducts => _storeProducts; public VTNZ_StoreFront(string name, string location, string phone, string[] workingDays, TimeSpan[] dayLengths) { _storefrontName = name; _storefrontAddress = location; _storefrontPhoneNumber = phone; _storefrontOpenDays = workingDays; _storefrontTimeOpen = dayLengths; _storeProducts = new List { new WofInspectionWrap(new VTNZ_Immutable.General("Wof", 25)), new ModifiedInspectionWrap(new VTNZ_Immutable.ModifiedInspection()), new PrePurchaseInspectionWrap(new VTNZ_Immutable.PrePurchaseInspection()), new CoFInspectionWrap(new VTNZ_Immutable.CoFInspection()) }; } public override string ToString() { return _storefrontName; } } public class WofInspectionWrap : IProduct { VTNZ_Immutable.General _inspection; public string Name => _inspection.Name; public decimal Value => _inspection.Value; public WofInspectionWrap(VTNZ_Immutable.General inspection) { this._inspection = inspection; } public override string ToString() { return Name + (Name.Length < 27 ? new string(' ', 27 - Name.Length) : "") + Value; } } public class ModifiedInspectionWrap : IProduct { VTNZ_Immutable.ModifiedInspection _inspection; public string Name => _inspection.InspectionType; public decimal Value => _inspection.Value; public ModifiedInspectionWrap(VTNZ_Immutable.ModifiedInspection inspection) { this._inspection = inspection; } public override string ToString() { return Name + (Name.Length < 27 ? new string(' ', 27 - Name.Length) : "")+ Value; } } public class PrePurchaseInspectionWrap : IProduct { VTNZ_Immutable.PrePurchaseInspection _inspection; public string Name => _inspection.Name; public decimal Value => _inspection.Value; public PrePurchaseInspectionWrap(VTNZ_Immutable.PrePurchaseInspection inspection) { this._inspection = inspection; } public override string ToString() { return Name + (Name.Length < 27 ? new string(' ', 27 - Name.Length) : "")+ Value; } } public class CoFInspectionWrap : IProduct { VTNZ_Immutable.CoFInspection _inspection; public string Name => _inspection.Name; public decimal Value => _inspection.Value; public CoFInspectionWrap(VTNZ_Immutable.CoFInspection inspection) { this._inspection = inspection; } public override string ToString() { return Name + (Name.Length < 27 ? new string(' ', 27 - Name.Length) : "") + Value; } } }