Skip to content

Commit eda62d8

Browse files
Merge branch 'master' into lab-3
2 parents 4a74761 + b29dda2 commit eda62d8

File tree

153 files changed

+4739
-4
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+4739
-4
lines changed

.editorconfig

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ csharp_new_line_before_members_in_object_initializers = false
5555
# SA1502: Element should not be on a single line
5656
dotnet_diagnostic.SA1502.severity = silent
5757

58+
# Nested Classes
59+
dotnet_diagnostic.CA1034.severity = none
60+
5861
dotnet_style_prefer_auto_properties = true:suggestion
5962
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning
6063
dotnet_style_null_propagation = true:warning
@@ -88,4 +91,13 @@ dotnet_diagnostic.SA1500.severity = error
8891
csharp_style_namespace_declarations = file_scoped:warning
8992

9093
# Disable XML docs
91-
dotnet_diagnostic.CS1591.severity = none
94+
dotnet_diagnostic.CS1591.severity = none
95+
96+
dotnet_diagnostic.CA1062.severity = none
97+
dotnet_diagnostic.CA1034.severity = none
98+
99+
100+
dotnet_diagnostic.CA2012.severity = none
101+
102+
[/src/Lab5/ATM.Infrastructure.DataAccess/Migrations/*.cs]
103+
dotnet_diagnostic.SA1649.severity = none

Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
<TargetFramework>net7.0</TargetFramework>
44
<ImplicitUsings>disable</ImplicitUsings>
55
<Nullable>enable</Nullable>
6+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
67
</PropertyGroup>
78

89
<PropertyGroup>

Directory.Packages.props

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,16 @@
55
</PropertyGroup>
66
<ItemGroup>
77
<PackageVersion Include="coverlet.collector" Version="6.0.0" />
8+
<PackageVersion Include="Itmo.Dev.Platform.Postgres" Version="1.1.75" />
9+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
10+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
811
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.7.2" />
912
<PackageVersion Include="SourceKit.Analyzers.Collections" Version="1.0.4" />
1013
<PackageVersion Include="SourceKit.Analyzers.Enumerable" Version="1.0.4" />
1114
<PackageVersion Include="SourceKit.Analyzers.MemberAccessibility" Version="1.0.4" />
1215
<PackageVersion Include="SourceKit.Analyzers.Nullable" Version="1.0.4" />
1316
<PackageVersion Include="SourceKit.Analyzers.Properties" Version="1.0.4" />
17+
<PackageVersion Include="Spectre.Console" Version="0.48.1-preview.0.5" />
1418
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.507" />
1519
<PackageVersion Include="xunit" Version="2.5.0" />
1620
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.0" />

Itmo.ObjectOrientedProgramming.sln

Lines changed: 67 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab3", "src\Lab3\Lab3.cspro
2121
EndProject
2222
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab4", "src\Lab4\Lab4.csproj", "{A53D3DBD-FA2D-47B4-90A9-B44AF07ADE71}"
2323
EndProject
24-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Lab5", "Lab5", "{55C309C9-B7DE-4F64-AFDE-A33F9C2AB2D4}"
25-
EndProject
2624
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab2.Tests", "tests\Lab2.Tests\Lab2.Tests.csproj", "{25D0E1F0-760B-4E76-B0D9-3EF274B35AF6}"
2725
EndProject
2826
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab3.Tests", "tests\Lab3.Tests\Lab3.Tests.csproj", "{7E5E46DB-EF55-47E6-822A-6AE20BF2FCD9}"
@@ -32,6 +30,33 @@ EndProject
3230
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab5.Tests", "tests\Lab5.Tests\Lab5.Tests.csproj", "{FA627A62-AD7A-4A72-B15C-EC8AEFD206DB}"
3331
EndProject
3432
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lab3.Console", "src\Lab3.Console\Lab3.Console.csproj", "{9654EFB5-5367-4DAD-8F18-58E113384AA0}"
33+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Lab5", "Lab5", "{99CB5FCA-AC39-4AD0-B4FF-A8C051CC2809}"
34+
EndProject
35+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Presentation", "Presentation", "{08E62A91-F7B4-4FE8-A1F8-BFD64F7E3A9E}"
36+
EndProject
37+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Application", "Application", "{D6F0AF28-4B74-4CEF-BAE0-631C60979762}"
38+
EndProject
39+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Infrastructure", "Infrastructure", "{A882AA78-975B-4BF0-9193-5A0C5365974C}"
40+
EndProject
41+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutomatedTellerMachine", "src\Lab5\AutomatedTellerMachine\AutomatedTellerMachine.csproj", "{9BAA271C-E0CC-42C8-83E7-FC398D53874F}"
42+
EndProject
43+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ATM.Application", "src\Lab5\ATM.Application\ATM.Application.csproj", "{6A71BA8C-6A36-4B80-9E97-4F99C8BFF1E9}"
44+
EndProject
45+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ATM.Application.Models", "src\Lab5\ATM.Application.Models\ATM.Application.Models.csproj", "{8469CC97-19D1-4ABA-9213-99F03DA8BBF2}"
46+
EndProject
47+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ATM.Application.Abstractions", "src\Lab5\ATM.Application.Abstractions\ATM.Application.Abstractions.csproj", "{249A7B78-E81D-4127-901F-207159D59BCB}"
48+
EndProject
49+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ATM.Application.Contracts", "src\Lab5\ATM.Application.Contracts\ATM.Application.Contracts.csproj", "{D1EA8947-0596-48FF-A5AF-B6B51C63A484}"
50+
EndProject
51+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ATM.Infrastructure.DataAccess", "src\Lab5\ATM.Infrastructure.DataAccess\ATM.Infrastructure.DataAccess.csproj", "{9B57FEE1-2A6D-49D8-8C48-AA3993BD1F82}"
52+
EndProject
53+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docker", "docker", "{E078567B-7E99-44F0-BE59-861B99056106}"
54+
ProjectSection(SolutionItems) = preProject
55+
src\Lab5\.env = src\Lab5\.env
56+
src\Lab5\docker-compose.yaml = src\Lab5\docker-compose.yaml
57+
EndProjectSection
58+
EndProject
59+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ATM.Presentation.Console", "src\Lab5\ATM.Presentation.Console\ATM.Presentation.Console.csproj", "{581A4324-47EC-4DF7-9839-F58450EA54F0}"
3560
EndProject
3661
Global
3762
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -44,12 +69,23 @@ Global
4469
{433B9342-A6BF-4194-8F08-727AADAE7504} = {8ED774F4-D429-4B82-B768-50DCA8EFF609}
4570
{43B4CD48-18D5-4EDE-80CB-86460F4C64CB} = {8ED774F4-D429-4B82-B768-50DCA8EFF609}
4671
{A53D3DBD-FA2D-47B4-90A9-B44AF07ADE71} = {8ED774F4-D429-4B82-B768-50DCA8EFF609}
47-
{55C309C9-B7DE-4F64-AFDE-A33F9C2AB2D4} = {8ED774F4-D429-4B82-B768-50DCA8EFF609}
4872
{25D0E1F0-760B-4E76-B0D9-3EF274B35AF6} = {792FFE57-F1A0-47A4-9E2A-80F75FF2F8DB}
4973
{7E5E46DB-EF55-47E6-822A-6AE20BF2FCD9} = {792FFE57-F1A0-47A4-9E2A-80F75FF2F8DB}
5074
{17689E4A-FE4F-4893-8E28-3BA911DEC8D8} = {792FFE57-F1A0-47A4-9E2A-80F75FF2F8DB}
5175
{FA627A62-AD7A-4A72-B15C-EC8AEFD206DB} = {792FFE57-F1A0-47A4-9E2A-80F75FF2F8DB}
5276
{9654EFB5-5367-4DAD-8F18-58E113384AA0} = {8ED774F4-D429-4B82-B768-50DCA8EFF609}
77+
{99CB5FCA-AC39-4AD0-B4FF-A8C051CC2809} = {8ED774F4-D429-4B82-B768-50DCA8EFF609}
78+
{08E62A91-F7B4-4FE8-A1F8-BFD64F7E3A9E} = {99CB5FCA-AC39-4AD0-B4FF-A8C051CC2809}
79+
{D6F0AF28-4B74-4CEF-BAE0-631C60979762} = {99CB5FCA-AC39-4AD0-B4FF-A8C051CC2809}
80+
{A882AA78-975B-4BF0-9193-5A0C5365974C} = {99CB5FCA-AC39-4AD0-B4FF-A8C051CC2809}
81+
{9BAA271C-E0CC-42C8-83E7-FC398D53874F} = {99CB5FCA-AC39-4AD0-B4FF-A8C051CC2809}
82+
{6A71BA8C-6A36-4B80-9E97-4F99C8BFF1E9} = {D6F0AF28-4B74-4CEF-BAE0-631C60979762}
83+
{8469CC97-19D1-4ABA-9213-99F03DA8BBF2} = {D6F0AF28-4B74-4CEF-BAE0-631C60979762}
84+
{249A7B78-E81D-4127-901F-207159D59BCB} = {D6F0AF28-4B74-4CEF-BAE0-631C60979762}
85+
{D1EA8947-0596-48FF-A5AF-B6B51C63A484} = {D6F0AF28-4B74-4CEF-BAE0-631C60979762}
86+
{9B57FEE1-2A6D-49D8-8C48-AA3993BD1F82} = {A882AA78-975B-4BF0-9193-5A0C5365974C}
87+
{E078567B-7E99-44F0-BE59-861B99056106} = {21E20419-0C74-46BC-9D7D-A24CEEC29ACC}
88+
{581A4324-47EC-4DF7-9839-F58450EA54F0} = {08E62A91-F7B4-4FE8-A1F8-BFD64F7E3A9E}
5389
EndGlobalSection
5490
GlobalSection(ProjectConfigurationPlatforms) = postSolution
5591
{EABA4888-E6C1-4ACC-856E-FBD34CEA3EDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -92,5 +128,33 @@ Global
92128
{9654EFB5-5367-4DAD-8F18-58E113384AA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
93129
{9654EFB5-5367-4DAD-8F18-58E113384AA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
94130
{9654EFB5-5367-4DAD-8F18-58E113384AA0}.Release|Any CPU.Build.0 = Release|Any CPU
131+
{9BAA271C-E0CC-42C8-83E7-FC398D53874F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
132+
{9BAA271C-E0CC-42C8-83E7-FC398D53874F}.Debug|Any CPU.Build.0 = Debug|Any CPU
133+
{9BAA271C-E0CC-42C8-83E7-FC398D53874F}.Release|Any CPU.ActiveCfg = Release|Any CPU
134+
{9BAA271C-E0CC-42C8-83E7-FC398D53874F}.Release|Any CPU.Build.0 = Release|Any CPU
135+
{6A71BA8C-6A36-4B80-9E97-4F99C8BFF1E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
136+
{6A71BA8C-6A36-4B80-9E97-4F99C8BFF1E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
137+
{6A71BA8C-6A36-4B80-9E97-4F99C8BFF1E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
138+
{6A71BA8C-6A36-4B80-9E97-4F99C8BFF1E9}.Release|Any CPU.Build.0 = Release|Any CPU
139+
{8469CC97-19D1-4ABA-9213-99F03DA8BBF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
140+
{8469CC97-19D1-4ABA-9213-99F03DA8BBF2}.Debug|Any CPU.Build.0 = Debug|Any CPU
141+
{8469CC97-19D1-4ABA-9213-99F03DA8BBF2}.Release|Any CPU.ActiveCfg = Release|Any CPU
142+
{8469CC97-19D1-4ABA-9213-99F03DA8BBF2}.Release|Any CPU.Build.0 = Release|Any CPU
143+
{249A7B78-E81D-4127-901F-207159D59BCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
144+
{249A7B78-E81D-4127-901F-207159D59BCB}.Debug|Any CPU.Build.0 = Debug|Any CPU
145+
{249A7B78-E81D-4127-901F-207159D59BCB}.Release|Any CPU.ActiveCfg = Release|Any CPU
146+
{249A7B78-E81D-4127-901F-207159D59BCB}.Release|Any CPU.Build.0 = Release|Any CPU
147+
{D1EA8947-0596-48FF-A5AF-B6B51C63A484}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
148+
{D1EA8947-0596-48FF-A5AF-B6B51C63A484}.Debug|Any CPU.Build.0 = Debug|Any CPU
149+
{D1EA8947-0596-48FF-A5AF-B6B51C63A484}.Release|Any CPU.ActiveCfg = Release|Any CPU
150+
{D1EA8947-0596-48FF-A5AF-B6B51C63A484}.Release|Any CPU.Build.0 = Release|Any CPU
151+
{9B57FEE1-2A6D-49D8-8C48-AA3993BD1F82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
152+
{9B57FEE1-2A6D-49D8-8C48-AA3993BD1F82}.Debug|Any CPU.Build.0 = Debug|Any CPU
153+
{9B57FEE1-2A6D-49D8-8C48-AA3993BD1F82}.Release|Any CPU.ActiveCfg = Release|Any CPU
154+
{9B57FEE1-2A6D-49D8-8C48-AA3993BD1F82}.Release|Any CPU.Build.0 = Release|Any CPU
155+
{581A4324-47EC-4DF7-9839-F58450EA54F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
156+
{581A4324-47EC-4DF7-9839-F58450EA54F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
157+
{581A4324-47EC-4DF7-9839-F58450EA54F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
158+
{581A4324-47EC-4DF7-9839-F58450EA54F0}.Release|Any CPU.Build.0 = Release|Any CPU
95159
EndGlobalSection
96160
EndGlobal

src/Lab2/Bios/BaseBios.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Collections.ObjectModel;
4+
using Itmo.ObjectOrientedProgramming.Lab2.Cpu;
5+
6+
namespace Itmo.ObjectOrientedProgramming.Lab2.Bios;
7+
8+
public class BaseBios : IBios
9+
{
10+
public BaseBios(string version, BiosType biosType)
11+
{
12+
var supportedProcessors = new List<Type>
13+
{
14+
typeof(BaseCpu),
15+
};
16+
17+
Version = version;
18+
BiosType = biosType;
19+
SupportedProcessors = supportedProcessors.AsReadOnly();
20+
}
21+
22+
public BiosType BiosType { get; }
23+
public ReadOnlyCollection<Type> SupportedProcessors { get; }
24+
public string Version { get; }
25+
public ValidationResult Validate()
26+
{
27+
return new ValidationResult.Success();
28+
}
29+
}

src/Lab2/Bios/BiosType.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace Itmo.ObjectOrientedProgramming.Lab2.Bios;
2+
3+
public enum BiosType
4+
{
5+
UEFI,
6+
Legacy,
7+
}

src/Lab2/Bios/IBios.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using System;
2+
using System.Collections.ObjectModel;
3+
4+
namespace Itmo.ObjectOrientedProgramming.Lab2.Bios;
5+
6+
public interface IBios : IValidatable
7+
{
8+
public BiosType BiosType { get; }
9+
public ReadOnlyCollection<Type> SupportedProcessors { get; }
10+
public string Version { get; }
11+
}

src/Lab2/Computer/BuildResult.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
namespace Itmo.ObjectOrientedProgramming.Lab2.Computer;
2+
3+
public abstract record BuildResult
4+
{
5+
public abstract bool ToBoolean();
6+
7+
public record Success(string Message, Computer Computer) : BuildResult
8+
{
9+
public override bool ToBoolean() => true;
10+
}
11+
12+
public record Warning(string Message, Computer Computer) : BuildResult
13+
{
14+
public override bool ToBoolean() => true;
15+
}
16+
17+
public record Failure(string Message) : BuildResult
18+
{
19+
public override bool ToBoolean() => false;
20+
}
21+
}

src/Lab2/Computer/Computer.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using Itmo.ObjectOrientedProgramming.Lab2.Frame;
2+
3+
namespace Itmo.ObjectOrientedProgramming.Lab2.Computer;
4+
5+
public class Computer
6+
{
7+
public Computer(IFrame frame)
8+
{
9+
Frame = frame;
10+
}
11+
12+
public IFrame Frame { get; }
13+
}

0 commit comments

Comments
 (0)