diff --git a/University/University.sln b/University/University.sln index 620ab4a..3f08cdf 100644 --- a/University/University.sln +++ b/University/University.sln @@ -3,7 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.1.32319.34 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "University", "University\University.csproj", "{34B9CDDB-BFE5-48B9-AA3A-1A01D99A765D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "University", "University\University.csproj", "{34B9CDDB-BFE5-48B9-AA3A-1A01D99A765D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversityDataModels", "UniversityDataModels\UniversityDataModels.csproj", "{36B2DE4B-7689-4287-911E-892FCD27AE84}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UniversityContracts", "UniversityContracts\UniversityContracts.csproj", "{BACEFD46-1073-4730-BC42-15B0D0D359C9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,6 +19,14 @@ Global {34B9CDDB-BFE5-48B9-AA3A-1A01D99A765D}.Debug|Any CPU.Build.0 = Debug|Any CPU {34B9CDDB-BFE5-48B9-AA3A-1A01D99A765D}.Release|Any CPU.ActiveCfg = Release|Any CPU {34B9CDDB-BFE5-48B9-AA3A-1A01D99A765D}.Release|Any CPU.Build.0 = Release|Any CPU + {36B2DE4B-7689-4287-911E-892FCD27AE84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {36B2DE4B-7689-4287-911E-892FCD27AE84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {36B2DE4B-7689-4287-911E-892FCD27AE84}.Release|Any CPU.ActiveCfg = Release|Any CPU + {36B2DE4B-7689-4287-911E-892FCD27AE84}.Release|Any CPU.Build.0 = Release|Any CPU + {BACEFD46-1073-4730-BC42-15B0D0D359C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BACEFD46-1073-4730-BC42-15B0D0D359C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BACEFD46-1073-4730-BC42-15B0D0D359C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BACEFD46-1073-4730-BC42-15B0D0D359C9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/University/UniversityContracts/BindingModels/ActivityBindingModel.cs b/University/UniversityContracts/BindingModels/ActivityBindingModel.cs new file mode 100644 index 0000000..2c03e22 --- /dev/null +++ b/University/UniversityContracts/BindingModels/ActivityBindingModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.BindingModels +{ + public class ActivityBindingModel : IActivityModel + { + public int Id { get; } + public DateTime Date { get; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); + public int Number { get; } + } +} diff --git a/University/UniversityContracts/BindingModels/DisciplineBindingModel.cs b/University/UniversityContracts/BindingModels/DisciplineBindingModel.cs new file mode 100644 index 0000000..8e4db01 --- /dev/null +++ b/University/UniversityContracts/BindingModels/DisciplineBindingModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.BindingModels +{ + public class DisciplineBindingModel : IDisciplineModel + { + public int Id { get; } + public string Name { get; } = String.Empty; + public string Department { get; } = String.Empty; + } +} diff --git a/University/UniversityContracts/BindingModels/ExaminationResultBindingModel.cs b/University/UniversityContracts/BindingModels/ExaminationResultBindingModel.cs new file mode 100644 index 0000000..d4ec633 --- /dev/null +++ b/University/UniversityContracts/BindingModels/ExaminationResultBindingModel.cs @@ -0,0 +1,13 @@ +using UniversityDataModels.Enums; +using UniversityDataModels.Models; + +namespace UniversityContracts.BindingModels +{ + public class ExaminationResultBindingModel : IExaminationResultModel + { + public int Id { get; } + public string ExaminationForm { get; } = String.Empty; + public MarkType Mark { get; } = MarkType.Неизвестен; + public DateTime Date { get; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); + } +} diff --git a/University/UniversityContracts/BindingModels/ReportTypeBindingModel.cs b/University/UniversityContracts/BindingModels/ReportTypeBindingModel.cs new file mode 100644 index 0000000..92a2f30 --- /dev/null +++ b/University/UniversityContracts/BindingModels/ReportTypeBindingModel.cs @@ -0,0 +1,10 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.BindingModels +{ + public class ReportTypeBindingModel : IReportTypeModel + { + public int Id { get; } + public string Name { get; } = String.Empty; + } +} diff --git a/University/UniversityContracts/BindingModels/StatementBindingModel.cs b/University/UniversityContracts/BindingModels/StatementBindingModel.cs new file mode 100644 index 0000000..7e9201e --- /dev/null +++ b/University/UniversityContracts/BindingModels/StatementBindingModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.BindingModels +{ + public class StatementBindingModel : IStatementModel + { + public int Id { get; } + public DateTime Date { get; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); + public int HoursCount { get; } + } +} diff --git a/University/UniversityContracts/BindingModels/StudentBindingModel.cs b/University/UniversityContracts/BindingModels/StudentBindingModel.cs new file mode 100644 index 0000000..eb0c952 --- /dev/null +++ b/University/UniversityContracts/BindingModels/StudentBindingModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.BindingModels +{ + public class StudentBindingModel : IStudentModel + { + public int Id { get; } + public string Name { get; } = String.Empty; + public string RecordCardNumber { get; } = String.Empty; + } +} diff --git a/University/UniversityContracts/BuisnessLogicContracts/IActivityLogic.cs b/University/UniversityContracts/BuisnessLogicContracts/IActivityLogic.cs new file mode 100644 index 0000000..8c663cd --- /dev/null +++ b/University/UniversityContracts/BuisnessLogicContracts/IActivityLogic.cs @@ -0,0 +1,8 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.BuisnessLogicContracts +{ + public interface IActivityLogic + { + } +} diff --git a/University/UniversityContracts/BuisnessLogicContracts/IDisciplineLogic.cs b/University/UniversityContracts/BuisnessLogicContracts/IDisciplineLogic.cs new file mode 100644 index 0000000..360c2fd --- /dev/null +++ b/University/UniversityContracts/BuisnessLogicContracts/IDisciplineLogic.cs @@ -0,0 +1,9 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.BuisnessLogicContracts +{ + + public interface IDisciplineLogic + { + } +} diff --git a/University/UniversityContracts/BuisnessLogicContracts/IExaminationResultLogic.cs b/University/UniversityContracts/BuisnessLogicContracts/IExaminationResultLogic.cs new file mode 100644 index 0000000..e83817e --- /dev/null +++ b/University/UniversityContracts/BuisnessLogicContracts/IExaminationResultLogic.cs @@ -0,0 +1,8 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.BuisnessLogicContracts +{ + public interface IExaminationResultLogic + { + } +} diff --git a/University/UniversityContracts/BuisnessLogicContracts/IReportTypeLogic.cs b/University/UniversityContracts/BuisnessLogicContracts/IReportTypeLogic.cs new file mode 100644 index 0000000..660fef4 --- /dev/null +++ b/University/UniversityContracts/BuisnessLogicContracts/IReportTypeLogic.cs @@ -0,0 +1,9 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.BuisnessLogicContracts +{ + + public interface IReportTypeLogic + { + } +} diff --git a/University/UniversityContracts/BuisnessLogicContracts/IStatementLogic.cs b/University/UniversityContracts/BuisnessLogicContracts/IStatementLogic.cs new file mode 100644 index 0000000..94e7628 --- /dev/null +++ b/University/UniversityContracts/BuisnessLogicContracts/IStatementLogic.cs @@ -0,0 +1,8 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.BuisnessLogicContracts +{ + public interface IStatementLogic + { + } +} diff --git a/University/UniversityContracts/BuisnessLogicContracts/IStudentLogic.cs b/University/UniversityContracts/BuisnessLogicContracts/IStudentLogic.cs new file mode 100644 index 0000000..b103ef8 --- /dev/null +++ b/University/UniversityContracts/BuisnessLogicContracts/IStudentLogic.cs @@ -0,0 +1,8 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.BuisnessLogicContracts +{ + public interface IStudentLogic + { + } +} diff --git a/University/UniversityContracts/SearchModels/ActivitySearchModel.cs b/University/UniversityContracts/SearchModels/ActivitySearchModel.cs new file mode 100644 index 0000000..c6c9007 --- /dev/null +++ b/University/UniversityContracts/SearchModels/ActivitySearchModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.SearchModels +{ + public class ActivitySearchModel : IActivityModel + { + public int Id { get; } + public DateTime Date { get; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); + public int Number { get; } + } +} diff --git a/University/UniversityContracts/SearchModels/DisciplineSearchModel.cs b/University/UniversityContracts/SearchModels/DisciplineSearchModel.cs new file mode 100644 index 0000000..bbf0086 --- /dev/null +++ b/University/UniversityContracts/SearchModels/DisciplineSearchModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.SearchModels +{ + public class DisciplineSearchModel : IDisciplineModel + { + public int Id { get; } + public string Name { get; } = String.Empty; + public string Department { get; } = String.Empty; + } +} diff --git a/University/UniversityContracts/SearchModels/ExaminationResultSearchModel.cs b/University/UniversityContracts/SearchModels/ExaminationResultSearchModel.cs new file mode 100644 index 0000000..9165a74 --- /dev/null +++ b/University/UniversityContracts/SearchModels/ExaminationResultSearchModel.cs @@ -0,0 +1,13 @@ +using UniversityDataModels.Enums; +using UniversityDataModels.Models; + +namespace UniversityContracts.SearchModels +{ + public class ExaminationResultSearchModel : IExaminationResultModel + { + public int Id { get; } + public string ExaminationForm { get; } = String.Empty; + public MarkType Mark { get; } = MarkType.Неизвестен; + public DateTime Date { get; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); + } +} diff --git a/University/UniversityContracts/SearchModels/ReportTypeSearchModel.cs b/University/UniversityContracts/SearchModels/ReportTypeSearchModel.cs new file mode 100644 index 0000000..14db649 --- /dev/null +++ b/University/UniversityContracts/SearchModels/ReportTypeSearchModel.cs @@ -0,0 +1,10 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.SearchModels +{ + public class ReportTypeSearchModel : IReportTypeModel + { + public int Id { get; } + public string Name { get; } = String.Empty; + } +} diff --git a/University/UniversityContracts/SearchModels/StatementSearchModel.cs b/University/UniversityContracts/SearchModels/StatementSearchModel.cs new file mode 100644 index 0000000..e68da13 --- /dev/null +++ b/University/UniversityContracts/SearchModels/StatementSearchModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.SearchModels +{ + public class StatementSearchModel : IStatementModel + { + public int Id { get; } + public DateTime Date { get; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); + public int HoursCount { get; } + } +} diff --git a/University/UniversityContracts/SearchModels/StudentSearchModel.cs b/University/UniversityContracts/SearchModels/StudentSearchModel.cs new file mode 100644 index 0000000..9ad18ba --- /dev/null +++ b/University/UniversityContracts/SearchModels/StudentSearchModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.SearchModels +{ + public class StudentSearchModel : IStudentModel + { + public int Id { get; } + public string Name { get; } = String.Empty; + public string RecordCardNumber { get; } = String.Empty; + } +} diff --git a/University/UniversityContracts/StoragesContracts/IActivityStorage.cs b/University/UniversityContracts/StoragesContracts/IActivityStorage.cs new file mode 100644 index 0000000..28c2329 --- /dev/null +++ b/University/UniversityContracts/StoragesContracts/IActivityStorage.cs @@ -0,0 +1,8 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.StoragesContracts +{ + public interface IActivityStorage + { + } +} diff --git a/University/UniversityContracts/StoragesContracts/IDisciplineStorage.cs b/University/UniversityContracts/StoragesContracts/IDisciplineStorage.cs new file mode 100644 index 0000000..0c3e1d9 --- /dev/null +++ b/University/UniversityContracts/StoragesContracts/IDisciplineStorage.cs @@ -0,0 +1,8 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.StoragesContracts +{ + public interface IDisciplineStorage + { + } +} diff --git a/University/UniversityContracts/StoragesContracts/IExaminationResultStorage.cs b/University/UniversityContracts/StoragesContracts/IExaminationResultStorage.cs new file mode 100644 index 0000000..1090c8c --- /dev/null +++ b/University/UniversityContracts/StoragesContracts/IExaminationResultStorage.cs @@ -0,0 +1,8 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.StoragesContracts +{ + public interface IExaminationResultStorage + { + } +} diff --git a/University/UniversityContracts/StoragesContracts/IReportTypeStorage.cs b/University/UniversityContracts/StoragesContracts/IReportTypeStorage.cs new file mode 100644 index 0000000..cb624e8 --- /dev/null +++ b/University/UniversityContracts/StoragesContracts/IReportTypeStorage.cs @@ -0,0 +1,8 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.StoragesContracts +{ + public interface IReportTypeStorage + { + } +} diff --git a/University/UniversityContracts/StoragesContracts/IStatementStorage.cs b/University/UniversityContracts/StoragesContracts/IStatementStorage.cs new file mode 100644 index 0000000..e3dc4fd --- /dev/null +++ b/University/UniversityContracts/StoragesContracts/IStatementStorage.cs @@ -0,0 +1,8 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.StoragesContracts +{ + public interface IStatementStorage + { + } +} diff --git a/University/UniversityContracts/StoragesContracts/IStudentStorage.cs b/University/UniversityContracts/StoragesContracts/IStudentStorage.cs new file mode 100644 index 0000000..0fc67db --- /dev/null +++ b/University/UniversityContracts/StoragesContracts/IStudentStorage.cs @@ -0,0 +1,8 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.StoragesContracts +{ + public interface IStudentStorage + { + } +} diff --git a/University/UniversityContracts/UniversityContracts.csproj b/University/UniversityContracts/UniversityContracts.csproj new file mode 100644 index 0000000..d1c8a4a --- /dev/null +++ b/University/UniversityContracts/UniversityContracts.csproj @@ -0,0 +1,13 @@ + + + + net6.0 + enable + enable + + + + + + + diff --git a/University/UniversityContracts/ViewModels/ActivityViewModel.cs b/University/UniversityContracts/ViewModels/ActivityViewModel.cs new file mode 100644 index 0000000..83e412f --- /dev/null +++ b/University/UniversityContracts/ViewModels/ActivityViewModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.ViewModels +{ + public class ActivityViewModel : IActivityModel + { + public int Id { get; } + public DateTime Date { get; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); + public int Number { get; } + } +} diff --git a/University/UniversityContracts/ViewModels/DisciplineViewModel.cs b/University/UniversityContracts/ViewModels/DisciplineViewModel.cs new file mode 100644 index 0000000..e388e15 --- /dev/null +++ b/University/UniversityContracts/ViewModels/DisciplineViewModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.ViewModels +{ + public class DisciplineViewModel : IDisciplineModel + { + public int Id { get; } + public string Name { get; } = String.Empty; + public string Department { get; } = String.Empty; + } +} diff --git a/University/UniversityContracts/ViewModels/ExaminationResultSearchModel.cs b/University/UniversityContracts/ViewModels/ExaminationResultSearchModel.cs new file mode 100644 index 0000000..3761885 --- /dev/null +++ b/University/UniversityContracts/ViewModels/ExaminationResultSearchModel.cs @@ -0,0 +1,13 @@ +using UniversityDataModels.Enums; +using UniversityDataModels.Models; + +namespace UniversityContracts.ViewModels +{ + public class ExaminationResultSearchModel : IExaminationResultModel + { + public int Id { get; } + public string ExaminationForm { get; } = String.Empty; + public MarkType Mark { get; } = MarkType.Неизвестен; + public DateTime Date { get; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); + } +} diff --git a/University/UniversityContracts/ViewModels/ReportTypeViewModel.cs b/University/UniversityContracts/ViewModels/ReportTypeViewModel.cs new file mode 100644 index 0000000..c52abb0 --- /dev/null +++ b/University/UniversityContracts/ViewModels/ReportTypeViewModel.cs @@ -0,0 +1,10 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.ViewModels +{ + public class ReportTypeViewModel : IReportTypeModel + { + public int Id { get; } + public string Name { get; } = String.Empty; + } +} diff --git a/University/UniversityContracts/ViewModels/StatementViewModel.cs b/University/UniversityContracts/ViewModels/StatementViewModel.cs new file mode 100644 index 0000000..6df7c95 --- /dev/null +++ b/University/UniversityContracts/ViewModels/StatementViewModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.ViewModels +{ + public class StatementViewModel : IStatementModel + { + public int Id { get; } + public DateTime Date { get; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); + public int HoursCount { get; } + } +} diff --git a/University/UniversityContracts/ViewModels/StudentViewModel.cs b/University/UniversityContracts/ViewModels/StudentViewModel.cs new file mode 100644 index 0000000..d59d84c --- /dev/null +++ b/University/UniversityContracts/ViewModels/StudentViewModel.cs @@ -0,0 +1,11 @@ +using UniversityDataModels.Models; + +namespace UniversityContracts.ViewModels +{ + public class StudentViewModel : IStatementModel + { + public int Id { get; } + public DateTime Date { get; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); + public int HoursCount { get; } + } +} diff --git a/University/UniversityDataModels/Enums/MarkType.cs b/University/UniversityDataModels/Enums/MarkType.cs new file mode 100644 index 0000000..6ad9982 --- /dev/null +++ b/University/UniversityDataModels/Enums/MarkType.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace UniversityDataModels.Enums +{ + public enum MarkType + { + Неизвестен = -1, + Плохо = 2, + Удовлетворительно = 3, + Хорошо = 4, + Отлично = 5 + } +} diff --git a/University/UniversityDataModels/IId.cs b/University/UniversityDataModels/IId.cs new file mode 100644 index 0000000..ef1cc9d --- /dev/null +++ b/University/UniversityDataModels/IId.cs @@ -0,0 +1,7 @@ +namespace UniversityDataModels +{ + public interface IId + { + int Id { get; } + } +} diff --git a/University/UniversityDataModels/Models/IActivityModel.cs b/University/UniversityDataModels/Models/IActivityModel.cs new file mode 100644 index 0000000..0cd21c0 --- /dev/null +++ b/University/UniversityDataModels/Models/IActivityModel.cs @@ -0,0 +1,8 @@ +namespace UniversityDataModels.Models +{ + public interface IActivityModel : IId + { + DateTime Date { get; } + int Number { get; } + } +} diff --git a/University/UniversityDataModels/Models/IDisciplineModel.cs b/University/UniversityDataModels/Models/IDisciplineModel.cs new file mode 100644 index 0000000..a40373f --- /dev/null +++ b/University/UniversityDataModels/Models/IDisciplineModel.cs @@ -0,0 +1,8 @@ +namespace UniversityDataModels.Models +{ + public interface IDisciplineModel : IId + { + String Name { get; } + String Department { get; } + } +} diff --git a/University/UniversityDataModels/Models/IExaminationResultModel.cs b/University/UniversityDataModels/Models/IExaminationResultModel.cs new file mode 100644 index 0000000..c3c33e1 --- /dev/null +++ b/University/UniversityDataModels/Models/IExaminationResultModel.cs @@ -0,0 +1,10 @@ +using UniversityDataModels.Enums; +namespace UniversityDataModels.Models +{ + public interface IExaminationResultModel : IId + { + String ExaminationForm { get; } + MarkType Mark { get; } + DateTime Date { get; } + } +} diff --git a/University/UniversityDataModels/Models/IReportTypeModel.cs b/University/UniversityDataModels/Models/IReportTypeModel.cs new file mode 100644 index 0000000..927eeee --- /dev/null +++ b/University/UniversityDataModels/Models/IReportTypeModel.cs @@ -0,0 +1,7 @@ +namespace UniversityDataModels.Models +{ + public interface IReportTypeModel : IId + { + string Name { get; } + } +} diff --git a/University/UniversityDataModels/Models/IStatementModel.cs b/University/UniversityDataModels/Models/IStatementModel.cs new file mode 100644 index 0000000..681f016 --- /dev/null +++ b/University/UniversityDataModels/Models/IStatementModel.cs @@ -0,0 +1,8 @@ +namespace UniversityDataModels.Models +{ + public interface IStatementModel : IId + { + DateTime Date { get; } + int HoursCount { get; } + } +} diff --git a/University/UniversityDataModels/Models/IStudentModel.cs b/University/UniversityDataModels/Models/IStudentModel.cs new file mode 100644 index 0000000..2ee8691 --- /dev/null +++ b/University/UniversityDataModels/Models/IStudentModel.cs @@ -0,0 +1,8 @@ +namespace UniversityDataModels.Models +{ + public interface IStudentModel : IId + { + String Name { get; } + String RecordCardNumber { get; } + } +} diff --git a/University/UniversityDataModels/UniversityDataModels.csproj b/University/UniversityDataModels/UniversityDataModels.csproj new file mode 100644 index 0000000..132c02c --- /dev/null +++ b/University/UniversityDataModels/UniversityDataModels.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + +