7 changed files with 214 additions and 0 deletions
@ -0,0 +1,22 @@ |
|||||
|
namespace w230415_classes |
||||
|
{ |
||||
|
public class CinemaHall : Hall |
||||
|
{ |
||||
|
public CinemaHall() |
||||
|
{ |
||||
|
int iW = 10; |
||||
|
int iH = 3; |
||||
|
for (int iX = 0; iX < iW; iX++) |
||||
|
{ |
||||
|
for (int iY = 0; iY < iH; iY++) |
||||
|
{ |
||||
|
HallPlaceList.Add(new HallPlace() |
||||
|
{ |
||||
|
SeatPosition = iX, |
||||
|
SeatRow = iY |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,104 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
|
||||
|
namespace w230415_classes |
||||
|
{ |
||||
|
public class Hall |
||||
|
{ |
||||
|
public string Name { get; set; } |
||||
|
|
||||
|
protected List<HallPlace> HallPlaceList { get; set; } = new List<HallPlace>(); |
||||
|
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Read [R]
|
||||
|
/// </summary>
|
||||
|
/// <returns></returns>
|
||||
|
public List<HallPlace> GetNotBookedPlaceList() |
||||
|
{ |
||||
|
List<HallPlace> hpl = new List<HallPlace>(); |
||||
|
foreach (var item in HallPlaceList) |
||||
|
{ |
||||
|
if (item.FlagBooked) continue; |
||||
|
hpl.Add(item); |
||||
|
} |
||||
|
return hpl; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Read [R]
|
||||
|
/// </summary>
|
||||
|
/// <param name="iRow"></param>
|
||||
|
/// <param name="iPosition"></param>
|
||||
|
/// <returns></returns>
|
||||
|
public HallPlace? ReadPlace(int iRow, int iPosition) |
||||
|
{ |
||||
|
var el = HallPlaceList.FirstOrDefault(hp => hp.SeatPosition == iPosition && hp.SeatRow == iRow); |
||||
|
return el; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Update [U]
|
||||
|
/// </summary>
|
||||
|
/// <param name="iRow"></param>
|
||||
|
/// <param name="iPosition"></param>
|
||||
|
/// <returns></returns>
|
||||
|
public bool BookPlace(int iRow, int iPosition) |
||||
|
{ |
||||
|
var el = HallPlaceList.FirstOrDefault(hp => hp.SeatPosition == iPosition && hp.SeatRow == iRow); |
||||
|
if (el == null) |
||||
|
{ |
||||
|
return false; |
||||
|
} |
||||
|
if (el.FlagBooked) |
||||
|
{ |
||||
|
return false; |
||||
|
} |
||||
|
el.FlagBooked = true; |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Create [C]
|
||||
|
/// </summary>
|
||||
|
/// <param name="iRow"></param>
|
||||
|
/// <param name="iPosition"></param>
|
||||
|
/// <returns></returns>
|
||||
|
public bool AddPlace(int iRow, int iPosition) |
||||
|
{ |
||||
|
var el = HallPlaceList.FirstOrDefault(hp => hp.SeatPosition == iPosition && hp.SeatRow == iRow); |
||||
|
if (el != null) |
||||
|
{ |
||||
|
return false; |
||||
|
} |
||||
|
HallPlaceList.Add(new HallPlace() |
||||
|
{ |
||||
|
SeatPosition = iPosition, |
||||
|
SeatRow = iRow, |
||||
|
}); |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Delete [D]
|
||||
|
/// </summary>
|
||||
|
/// <param name="iRow"></param>
|
||||
|
/// <param name="iPosition"></param>
|
||||
|
/// <returns></returns>
|
||||
|
public bool DeletePlace(int iRow, int iPosition) |
||||
|
{ |
||||
|
var el = HallPlaceList.FirstOrDefault(hp => hp.SeatPosition == iPosition && hp.SeatRow == iRow); |
||||
|
if (el == null) |
||||
|
{ |
||||
|
return false; |
||||
|
} |
||||
|
return HallPlaceList.Remove(el); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,15 @@ |
|||||
|
namespace w230415_classes |
||||
|
{ |
||||
|
public class HallPlace |
||||
|
{ |
||||
|
public HallPlace() |
||||
|
{ |
||||
|
Uid = Guid.NewGuid().ToString("N"); |
||||
|
} |
||||
|
|
||||
|
public string Uid { get; set; } |
||||
|
public int SeatPosition { get; set; } |
||||
|
public int SeatRow { get; set; } |
||||
|
public bool FlagBooked { get; set; } |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,25 @@ |
|||||
|
|
||||
|
Microsoft Visual Studio Solution File, Format Version 12.00 |
||||
|
# Visual Studio Version 17 |
||||
|
VisualStudioVersion = 17.2.32616.157 |
||||
|
MinimumVisualStudioVersion = 10.0.40219.1 |
||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "w230415_classes", "w230415_classes.csproj", "{3B2A3797-78B5-42F6-9C7E-5F9F20838C3F}" |
||||
|
EndProject |
||||
|
Global |
||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
||||
|
Debug|Any CPU = Debug|Any CPU |
||||
|
Release|Any CPU = Release|Any CPU |
||||
|
EndGlobalSection |
||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
||||
|
{3B2A3797-78B5-42F6-9C7E-5F9F20838C3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
|
{3B2A3797-78B5-42F6-9C7E-5F9F20838C3F}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
|
{3B2A3797-78B5-42F6-9C7E-5F9F20838C3F}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
|
{3B2A3797-78B5-42F6-9C7E-5F9F20838C3F}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
|
EndGlobalSection |
||||
|
GlobalSection(SolutionProperties) = preSolution |
||||
|
HideSolutionNode = FALSE |
||||
|
EndGlobalSection |
||||
|
GlobalSection(ExtensibilityGlobals) = postSolution |
||||
|
SolutionGuid = {819D4FAE-A124-443D-B564-39D533244A18} |
||||
|
EndGlobalSection |
||||
|
EndGlobal |
||||
@ -0,0 +1,13 @@ |
|||||
|
<Project Sdk="Microsoft.NET.Sdk"> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<TargetFramework>net6.0</TargetFramework> |
||||
|
<ImplicitUsings>enable</ImplicitUsings> |
||||
|
<Nullable>enable</Nullable> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<Folder Include="Intf\" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
</Project> |
||||
@ -0,0 +1,21 @@ |
|||||
|
using w230415_classes; |
||||
|
|
||||
|
namespace w230415_console |
||||
|
{ |
||||
|
internal class Program |
||||
|
{ |
||||
|
static void Main(string[] args) |
||||
|
{ |
||||
|
CinemaHall ch = new CinemaHall(); |
||||
|
h_Process(ch); |
||||
|
} |
||||
|
|
||||
|
private static void h_Process(CinemaHall ch) |
||||
|
{ |
||||
|
foreach (var item in ch.GetNotBookedPlaceList()) |
||||
|
{ |
||||
|
Console.WriteLine($"{item.SeatRow}/{item.SeatPosition}: {item.Uid}"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,14 @@ |
|||||
|
<Project Sdk="Microsoft.NET.Sdk"> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<OutputType>Exe</OutputType> |
||||
|
<TargetFramework>net6.0</TargetFramework> |
||||
|
<ImplicitUsings>enable</ImplicitUsings> |
||||
|
<Nullable>enable</Nullable> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<ProjectReference Include="..\w230415\w230415_classes.csproj" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
</Project> |
||||
Loading…
Reference in new issue