/// <summary> /// Adds a new database entity to the appropriate list. /// </summary> /// <param name="databaseEntity"> /// The database entity. /// </param> public void AddNewEntity(IShopEntity databaseEntity) { switch (databaseEntity) { case Product product: this.ProductsList.Add(product); break; case Manufacturer manufacturer: this.ManufacturersList.Add(manufacturer); break; case Warehouse warehouse: this.WarehousesList.Add(warehouse); break; case Delivery delivery: this.DeliveriesList.Add(delivery); break; case Address address: this.AddressesList.Add(address); break; } }
/// <summary> /// Updates the appropriate JSON data file. /// </summary> /// <param name="databaseEntity"> /// The database entity. /// </param> public void UpdateJsonDatabase(IShopEntity databaseEntity) { DataContractJsonSerializer jsonFormatter; switch (databaseEntity) { case Product _: using (var fs = new FileStream("../../Database/products.json", FileMode.OpenOrCreate)) { jsonFormatter = new DataContractJsonSerializer(typeof(List <Product>)); jsonFormatter.WriteObject(fs, this.ProductsList); } break; case Manufacturer _: using (var fs = new FileStream("../../Database/manufacturers.json", FileMode.OpenOrCreate)) { jsonFormatter = new DataContractJsonSerializer(typeof(List <Manufacturer>)); jsonFormatter.WriteObject(fs, this.ManufacturersList); } break; case Warehouse _: using (var fs = new FileStream("../../Database/warehouses.json", FileMode.OpenOrCreate)) { jsonFormatter = new DataContractJsonSerializer(typeof(List <Warehouse>)); jsonFormatter.WriteObject(fs, this.WarehousesList); } break; case Delivery _: using (var fs = new FileStream("../../Database/deliveries.json", FileMode.OpenOrCreate)) { jsonFormatter = new DataContractJsonSerializer(typeof(List <Delivery>)); jsonFormatter.WriteObject(fs, this.DeliveriesList); } break; case Address _: using (var fs = new FileStream("../../Database/addresses.json", FileMode.OpenOrCreate)) { jsonFormatter = new DataContractJsonSerializer(typeof(List <Address>)); jsonFormatter.WriteObject(fs, this.AddressesList); } break; } }