Модель, вспомогательные классы, контролы

This commit is contained in:
olga1003 2022-03-15 13:20:46 +04:00
parent 61a84b6b68
commit 2240cbd791
52 changed files with 7420 additions and 354 deletions

View File

@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Common\ModuleTools\ModuleTools.csproj" />
<ProjectReference Include="..\Department\DepartmentBusinessLogic\DepartmentBusinessLogic.csproj" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="copy /Y &quot;$(TargetDir)*.dll&quot; &quot;$(SolutionDir)ImplementationExtensions\*.dll&quot;" />
</Target>
</Project>

View File

@ -0,0 +1,60 @@
using AcademicProgressBusinessLogic.Enums;
using DepartmentBusinessLogic.Enums;
using ModuleTools.Attributes;
using ModuleTools.BindingModels;
using System;
using System.ComponentModel.DataAnnotations;
namespace AcademicProgressBusinessLogic.BindingModels
{
/// <summary>
/// Получение записи успеваемости студента
/// </summary>
public class StudentAcademicProgressGetBindingModel : GetBindingModel
{
public Guid? StudentId { get; set; }
public Guid? DisciplineId { get; set; }
}
/// <summary>
/// Сохранение записи успеваемости студента
/// </summary>
public class StudentAcademicProgressSetBindingModel : SetBindingModel
{
[Required(ErrorMessage = "required")]
[MapConfiguration("StudentId")]
public Guid StudentId { get; set; }
[Required(ErrorMessage = "required")]
[MapConfiguration("DisciplineId")]
public Guid DisciplineId { get; set; }
[Required(ErrorMessage = "required")]
[MapConfiguration("Semester")]
public Semester Semester { get; set; }
[Required(ErrorMessage = "required")]
[MapConfiguration("Score")]
public ExamScores Score { get; set; }
[Required(ErrorMessage = "required")]
[MapConfiguration("AffixingDate")]
public DateTime AffixingDate { get; set; }
/// <summary>
/// Является повышением оценки
/// </summary>
[MapConfiguration("IsIncreaseScore")]
public bool IsIncreaseScore { get; set; }
/// <summary>
/// Является сдачей по направлению
/// </summary>
[MapConfiguration("IsResit")]
public bool IsResit { get; set; }
}
}

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AcademicProgressBusinessLogic.BusinessLogics
{
public class ReportBusinessLogic
{
}
}

View File

@ -0,0 +1,17 @@
using AcademicProgressBusinessLogic.BindingModels;
using AcademicProgressBusinessLogic.Interfaces;
using AcademicProgressBusinessLogic.ViewModels;
using ModuleTools.BusinessLogics;
using ModuleTools.Enums;
namespace AcademicProgressBusinessLogic.BusinessLogics
{
/// <summary>
/// Логика работы с записями учебного прогресса
/// </summary>
public class StudentAcademicProgressBusinessLogic : GenericBusinessLogic<StudentAcademicProgressGetBindingModel, StudentAcademicProgressSetBindingModel, StudentAcademicProgressListViewModel, StudentAcademicProgressViewModels>
{
public StudentAcademicProgressBusinessLogic(IStudentAcademicProgress service) : base(service, "Записи учебного прогресса", AccessOperation.Записи_Учебногорогресса) { }
}
}

View File

@ -0,0 +1,13 @@
namespace AcademicProgressBusinessLogic.Enums
{
public enum ExamScores
{
Зачет = 1,
Удовлетворительно = 2,
Хорошо = 3,
Отлично = 4
}
}

View File

@ -0,0 +1,11 @@
using AcademicProgressBusinessLogic.BindingModels;
using ModuleTools.Interfaces;
namespace AcademicProgressBusinessLogic.Interfaces
{
/// <summary>
/// Хранение учебного прогресса
/// </summary>
public interface IStudentAcademicProgress : IGenerticEntityService<StudentAcademicProgressGetBindingModel, StudentAcademicProgressSetBindingModel> { }
}

View File

@ -0,0 +1,85 @@
using AcademicProgressBusinessLogic.Enums;
using DepartmentBusinessLogic.Enums;
using ModuleTools.Attributes;
using ModuleTools.Enums;
using ModuleTools.ViewModels;
using System;
namespace AcademicProgressBusinessLogic.ViewModels
{
/// <summary>
/// Список успеваемости студентов
/// </summary>
public class StudentAcademicProgressListViewModel : ListViewModel<StudentAcademicProgressViewModels> { }
/// <summary>
/// Элемент успеваемости студента
/// </summary>
[ViewModelControlElementClass(HaveDependenceEntities = true, Width = 1200, Height = 800)]
[ViewModelControlElementDependenceEntity(Title = "Студенты", Order = 1, ParentPropertyName = "StudentAcademicProgressId",
ControlTypeObject = "AcademicProgressWindowsDesktop.EntityControls.ControlStudentList, AcademicProgressWindowsDesktop")]
[ViewModelControlElementDependenceEntity(Title = "Дисципилны", Order = 2, ParentPropertyName = "StudentAcademicProgressId",
ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlDisciplineList, DepartmentWindowsDesktop")]
public class StudentAcademicProgressViewModels : ElementViewModel
{
[ViewModelControlElementProperty("Студент", ControlType.ControlGuid, MustHaveValue = true, ReadOnly = false, ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlStudentList, DepartmentWindowsDesktop")]
[MapConfiguration("StudentId")]
public Guid StudentId { get; set; }
[ViewModelControlListProperty("Имя", ColumnWidth = 200)]
[MapConfiguration("Student.FirstName", IsDifficle = true)]
public string FirstName { get; set; }
[ViewModelControlListProperty("Фамилия", ColumnWidth = 250)]
[MapConfiguration("Student.LastName", IsDifficle = true)]
public string LastName { get; set; }
[ViewModelControlElementProperty("Дисциплина", ControlType.ControlGuid, MustHaveValue = true, ReadOnly = false, ControlTypeObject = "DepartmentWindowsDesktop.EntityControls.ControlDisciplineList, DepartmentWindowsDesktop")]
[MapConfiguration("DisciplineId")]
public Guid DisciplineId { get; set; }
[ViewModelControlListProperty("Дисциплина")]
[MapConfiguration("Discipline.ToString", IsDifficle = true)]
public string DisciplineName { get; set; }
[ViewModelControlElementProperty("Семестр", ControlType.ControlEnum, MustHaveValue = true)]
[MapConfiguration("Semester")]
public Semester Semester { get; set; }
[ViewModelControlListProperty("Семестр", ColumnWidth = 100)]
public string SemesterTitle => Semester.ToString("G");
[ViewModelControlElementProperty("Оценка", ControlType.ControlEnum, MustHaveValue = true)]
[MapConfiguration("Score")]
public ExamScores Score { get; set; }
[ViewModelControlListProperty("Оценка", ColumnWidth = 160)]
public string ExamScoresTitle => Score.ToString("G");
[ViewModelControlElementProperty("Является сдачей по направлению", ControlType.ControlBool, MustHaveValue = true)]
[MapConfiguration("IsResit")]
public bool IsResit { get; set; }
[ViewModelControlListProperty("Cдача по направлению", ColumnWidth = 120)]
public string IsResitT => IsResit ? "Да" : "Нет";
[ViewModelControlElementProperty("Является повышением оценки", ControlType.ControlBool, MustHaveValue = true)]
[MapConfiguration("IsIncreaseScore")]
public bool IsIncreaseScore { get; set; }
[ViewModelControlListProperty("Повышение оценки", ColumnWidth = 120)]
public string IsIncreaseScoreS => IsIncreaseScore ? "Да" : "Нет";
[ViewModelControlListProperty("Дата проставления", ColumnWidth = 120, DefaultCellStyleFormat = "dd.MM.yyyy")]
[ViewModelControlElementProperty("Дата проставления", ControlType.ControlDateTime, MustHaveValue = true)]
[MapConfiguration("AffixingDate")]
public DateTime AffixingDate { get; set; }
}
}

View File

@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="Models\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AcademicProgressBusinessLogic\AcademicProgressBusinessLogic.csproj" />
<ProjectReference Include="..\Common\DatabaseCore\DatabaseCore.csproj" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="copy /Y &quot;$(TargetDir)*.dll&quot; &quot;$(SolutionDir)ImplementationExtensions\*.dll&quot;" />
</Target>
</Project>

View File

@ -0,0 +1,17 @@
using AcademicProgressBusinessLogic.Interfaces;
using AcademicProgressDatabaseImplementation.Implementations;
using ModuleTools.BusinessLogics;
using ModuleTools.Interfaces;
using System;
namespace AcademicProgressDatabaseImplementation
{
public class AcademicProgressImplementationExtensions : IImplementationExtension
{
public void RegisterServices()
{
DependencyManager.Instance.RegisterType<IStudentAcademicProgress, StudentAcademicProgressService>();
}
}
}

View File

@ -0,0 +1,51 @@
using AcademicProgressBusinessLogic.BindingModels;
using AcademicProgressBusinessLogic.Interfaces;
using AcademicProgressBusinessLogic.ViewModels;
using DatabaseCore;
using DatabaseCore.Models.AcademicProgress;
using Microsoft.EntityFrameworkCore;
using ModuleTools.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AcademicProgressDatabaseImplementation.Implementations
{
/// <summary>
/// Реализация IStudentAcademicProgress
/// </summary>
public class StudentAcademicProgressService :
AbstractGenerticEntityService<StudentAcademicProgressGetBindingModel, StudentAcademicProgressSetBindingModel, StudentAcademicProgress, StudentAcademicProgressListViewModel, StudentAcademicProgressViewModels>,
IStudentAcademicProgress
{
protected override OperationResultModel AdditionalCheckingWhenAdding(DbContext context, StudentAcademicProgressSetBindingModel model) => OperationResultModel.Success(null);
protected override OperationResultModel AdditionalCheckingWhenDeleting(DbContext context, StudentAcademicProgress entity, StudentAcademicProgressGetBindingModel model) => OperationResultModel.Success(null);
protected override IQueryable<StudentAcademicProgress> AdditionalCheckingWhenReadingList(IQueryable<StudentAcademicProgress> query, StudentAcademicProgressGetBindingModel model)
{
if (model.StudentId.HasValue)
{
query = query.Where(x => x.StudentId == model.StudentId.Value);
}
if (model.DisciplineId.HasValue)
{
query = query.Where(x => x.DisciplineId == model.DisciplineId.Value);
}
return query;
}
protected override OperationResultModel AdditionalCheckingWhenUpdateing(DbContext context, StudentAcademicProgressSetBindingModel model) => OperationResultModel.Success(null);
protected override void AdditionalDeleting(DbContext context, StudentAcademicProgress entity, StudentAcademicProgressGetBindingModel model) { }
protected override StudentAcademicProgress GetUniqueEntity(StudentAcademicProgressSetBindingModel model, DbContext context) => context.Set<StudentAcademicProgress>().FirstOrDefault(x => x.StudentId == model.StudentId && x.Id != model.Id);
protected override IQueryable<StudentAcademicProgress> IncludingWhenReading(IQueryable<StudentAcademicProgress> query) => query.Include(x => x.Student).Include(x => x.Discipline);
protected override IQueryable<StudentAcademicProgress> OrderingWhenReading(IQueryable<StudentAcademicProgress> query) => query.OrderBy(x => x.Student.LastName).ThenBy(x => x.Student.FirstName);
}
}

View File

@ -0,0 +1,97 @@
using AcademicProgressWindowsDesktop.EntityControls.StudentAcademicProgress;
using AcademicProgressWindowsDesktop.SpecialControls;
using DesktopTools.Interfaces;
using DesktopTools.Models;
using ModuleTools.BindingModels;
using ModuleTools.BusinessLogics;
using ModuleTools.Enums;
using ModuleTools.Interfaces;
using ModuleTools.Models;
using System.Collections.Generic;
namespace AcademicProgressWindowsDesktop
{
public class AcademicProgressWindowDesktopExtension : IWindowDesktopExtension
{
public List<WindowDesktopExtensionControlModel> GetListControlEntityList()
{
var manager = DependencyManager.Instance.Resolve<ISecurityManager>();
if (manager == null)
{
return null;
}
if (!manager.CheckAccess(new SecurityManagerCheckAccessModel(new AccessBindingModel { UserIdForAccess = manager.User },
AccessOperation.Учет_успеваемости, AccessType.View, "Учет успеваемости")))
{
return null;
}
var list = new List<WindowDesktopExtensionControlModel>
{
new WindowDesktopExtensionControlModel { Title = "Учет успеваемости" }
};
List<IControl> _controls = new()
{
new ControlStudentAcademicProgressList()
};
foreach (var cntrl in _controls)
{
if (manager.CheckAccess(new SecurityManagerCheckAccessModel(new AccessBindingModel { UserIdForAccess = manager.User },
cntrl.AccessOperation, AccessType.View, cntrl.Title)))
{
list.Add(new WindowDesktopExtensionControlModel
{
Id = cntrl.ControlId,
Title = cntrl.Title,
Control = cntrl
});
}
}
return list;
}
public List<WindowDesktopExtensionControlModel> GetListControlSpecialList()
{
var manager = DependencyManager.Instance.Resolve<ISecurityManager>();
if (manager == null)
{
return null;
}
if (!manager.CheckAccess(new SecurityManagerCheckAccessModel(new AccessBindingModel { UserIdForAccess = manager.User },
AccessOperation.Учет_успеваемости, AccessType.View, "Учет успеваемости")))
{
return null;
}
var list = new List<WindowDesktopExtensionControlModel>
{
new WindowDesktopExtensionControlModel { Title = "Учет успеваемости" }
};
List<IControl> _controls = new()
{
new ControlStudentGraduate(),
new ControlReportPlanDisciplines(),
new ControlReportAcademicProgress()
};
foreach (var cntrl in _controls)
{
if (manager.CheckAccess(new SecurityManagerCheckAccessModel(new AccessBindingModel { UserIdForAccess = manager.User },
cntrl.AccessOperation, AccessType.View, cntrl.Title)))
{
list.Add(new WindowDesktopExtensionControlModel
{
Id = cntrl.ControlId,
Title = cntrl.Title,
Control = cntrl
});
}
}
return list;
}
}
}

View File

@ -0,0 +1,34 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0-windows7.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\AcademicProgressBusinessLogic\AcademicProgressBusinessLogic.csproj" />
<ProjectReference Include="..\Common\DesktopTools\DesktopTools.csproj" />
<ProjectReference Include="..\Department\DepartmentWindowsDesktop\DepartmentWindowsDesktop.csproj" />
<ProjectReference Include="..\Security\SecurityBusinessLogic\SecurityBusinessLogic.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.resx">
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<Generator>ResXFileCodeGenerator</Generator>
</EmbeddedResource>
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="copy /Y &quot;$(TargetDir)$(ProjectName).dll&quot; &quot;$(SolutionDir)WindowDestopExtensions\$(ProjectName).dll&quot;" />
</Target>
</Project>

View File

@ -0,0 +1,33 @@

namespace AcademicProgressWindowsDesktop.EntityControls.StudentAcademicProgress
{
partial class ControlStudentAcademicProgressElement
{
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором компонентов
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
}
#endregion
}
}

View File

@ -0,0 +1,32 @@
using AcademicProgressBusinessLogic.BindingModels;
using AcademicProgressBusinessLogic.BusinessLogics;
using AcademicProgressBusinessLogic.ViewModels;
using DesktopTools.Controls;
using DesktopTools.Helpers;
using DesktopTools.Interfaces;
using DesktopTools.Models;
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace AcademicProgressWindowsDesktop.EntityControls.StudentAcademicProgress
{
/// <summary>
/// Реализация контрола для успеваемости студентов
/// </summary>
public partial class ControlStudentAcademicProgressElement : GenericControlEntityElement<StudentAcademicProgressGetBindingModel, StudentAcademicProgressSetBindingModel, StudentAcademicProgressListViewModel, StudentAcademicProgressViewModels, StudentAcademicProgressBusinessLogic>,
IGenericControlEntityElement
{
public ControlStudentAcademicProgressElement()
{
InitializeComponent();
Title = "Учет успеваемости студента";
ControlId = new Guid("bdba2fca-4c38-33cf-89b0-4906c4aa7aa3");
_genericControlViewEntityElement = this;
}
public IControl GetInstanceGenericControl() => new ControlStudentAcademicProgressElement() { ControlId = Guid.NewGuid() };
public ControlViewEntityElementConfiguration GetConfigControl() => new();
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,33 @@

namespace AcademicProgressWindowsDesktop.EntityControls.StudentAcademicProgress
{
partial class ControlStudentAcademicProgressList
{
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором компонентов
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
}
#endregion
}
}

View File

@ -0,0 +1,50 @@
using AcademicProgressBusinessLogic.BindingModels;
using AcademicProgressBusinessLogic.BusinessLogics;
using AcademicProgressBusinessLogic.ViewModels;
using DesktopTools.Controls;
using ModuleTools.Enums;
using DesktopTools.Interfaces;
using DesktopTools.Models;
using System;
using System.Collections.Generic;
using DesktopTools.Enums;
namespace AcademicProgressWindowsDesktop.EntityControls.StudentAcademicProgress
{
/// <summary>
/// Реализация контрола для списка успеваемости студентов
/// </summary>
public partial class ControlStudentAcademicProgressList : GenericControlEntityList<StudentAcademicProgressGetBindingModel, StudentAcademicProgressSetBindingModel, StudentAcademicProgressListViewModel, StudentAcademicProgressViewModels, StudentAcademicProgressBusinessLogic>,
IGenericControlEntityList
{
public ControlStudentAcademicProgressList()
{
InitializeComponent();
Title = "Учет успеваемости студентов";
ControlId = new Guid("9879dbb5-3b29-4971-9574-b4c13d5470c6");
AccessOperation = AccessOperation.Учет_успеваемости;
ControlViewEntityElement = new ControlStudentAcademicProgressElement();
_genericControlViewEntityList = this;
}
public IControl GetInstanceGenericControl() => new ControlStudentAcademicProgressList() { ControlId = Guid.NewGuid() };
public ControlViewEntityListConfiguration GetConfigControl() => new()
{
PaginationOn = false,
HideToolStripButton = new List<ToolStripButtonListNames>
{
ToolStripButtonListNames.toolStripButtonSearch
},
ControlOnMoveElem = new Dictionary<string, (string Title, EventHandler Event)>
{
{ "ToolStripMenuItemLoadScore", ("Выгрузить оценки из 1С:Университет", (object sender, EventArgs e) => { LoadScore(); }) }
}
};
private void LoadScore()
{
//загрузка оценок
}
}
}

View File

@ -0,0 +1,60 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,73 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AcademicProgressWindowsDesktop.Properties {
using System;
/// <summary>
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
/// </summary>
// Этот класс создан автоматически классом StronglyTypedResourceBuilder
// с помощью такого средства, как ResGen или Visual Studio.
// Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
// с параметром /str или перестройте свой проект VS.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AcademicProgressWindowsDesktop.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Close {
get {
object obj = ResourceManager.GetObject("Close", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Close" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

View File

@ -0,0 +1,153 @@

namespace AcademicProgressWindowsDesktop.SpecialControls
{
partial class ControlReportAcademicProgress
{
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором компонентов
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
this.toolStripHeader = new System.Windows.Forms.ToolStrip();
this.toolStripButtonClose = new System.Windows.Forms.ToolStripButton();
this.groupBoxReportInfo = new System.Windows.Forms.GroupBox();
this.label3 = new System.Windows.Forms.Label();
this.buttonSave = new System.Windows.Forms.Button();
this.textBoxSaveFolderName = new System.Windows.Forms.TextBox();
this.labelSaveFolderName = new System.Windows.Forms.Label();
this.buttonSaveSelectFolder = new System.Windows.Forms.Button();
this.toolStripHeader.SuspendLayout();
this.groupBoxReportInfo.SuspendLayout();
this.SuspendLayout();
//
// toolStripHeader
//
this.toolStripHeader.ImageScalingSize = new System.Drawing.Size(20, 20);
this.toolStripHeader.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButtonClose});
this.toolStripHeader.Location = new System.Drawing.Point(0, 0);
this.toolStripHeader.Name = "toolStripHeader";
this.toolStripHeader.Size = new System.Drawing.Size(477, 27);
this.toolStripHeader.TabIndex = 3;
this.toolStripHeader.Text = "toolStrip1";
//
// toolStripButtonClose
//
this.toolStripButtonClose.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripButtonClose.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButtonClose.Image = global::AcademicProgressWindowsDesktop.Properties.Resources.Close;
this.toolStripButtonClose.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButtonClose.Name = "toolStripButtonClose";
this.toolStripButtonClose.Size = new System.Drawing.Size(29, 24);
this.toolStripButtonClose.Text = "Закрыть";
//
// groupBoxReportInfo
//
this.groupBoxReportInfo.Controls.Add(this.label3);
this.groupBoxReportInfo.Location = new System.Drawing.Point(3, 112);
this.groupBoxReportInfo.Name = "groupBoxReportInfo";
this.groupBoxReportInfo.Size = new System.Drawing.Size(460, 127);
this.groupBoxReportInfo.TabIndex = 18;
this.groupBoxReportInfo.TabStop = false;
this.groupBoxReportInfo.Text = "Информация для отчета";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(1519, 588);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(88, 20);
this.label3.TabIndex = 7;
this.label3.Text = "Семестр до";
//
// buttonSave
//
this.buttonSave.Location = new System.Drawing.Point(330, 245);
this.buttonSave.Name = "buttonSave";
this.buttonSave.Size = new System.Drawing.Size(133, 28);
this.buttonSave.TabIndex = 17;
this.buttonSave.Text = "Сохранить";
this.buttonSave.UseVisualStyleBackColor = true;
this.buttonSave.Click += new System.EventHandler(this.buttonSave_Click_1);
//
// textBoxSaveFolderName
//
this.textBoxSaveFolderName.Location = new System.Drawing.Point(119, 37);
this.textBoxSaveFolderName.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.textBoxSaveFolderName.Name = "textBoxSaveFolderName";
this.textBoxSaveFolderName.Size = new System.Drawing.Size(344, 27);
this.textBoxSaveFolderName.TabIndex = 15;
//
// labelSaveFolderName
//
this.labelSaveFolderName.AutoSize = true;
this.labelSaveFolderName.Location = new System.Drawing.Point(11, 40);
this.labelSaveFolderName.Name = "labelSaveFolderName";
this.labelSaveFolderName.Size = new System.Drawing.Size(111, 20);
this.labelSaveFolderName.TabIndex = 14;
this.labelSaveFolderName.Text = "Путь до папки:";
//
// buttonSaveSelectFolder
//
this.buttonSaveSelectFolder.Location = new System.Drawing.Point(330, 72);
this.buttonSaveSelectFolder.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonSaveSelectFolder.Name = "buttonSaveSelectFolder";
this.buttonSaveSelectFolder.Size = new System.Drawing.Size(133, 31);
this.buttonSaveSelectFolder.TabIndex = 16;
this.buttonSaveSelectFolder.Text = "Выбрать папку";
this.buttonSaveSelectFolder.UseVisualStyleBackColor = true;
//
// ControlReportAcademicProgress
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBoxReportInfo);
this.Controls.Add(this.buttonSaveSelectFolder);
this.Controls.Add(this.buttonSave);
this.Controls.Add(this.textBoxSaveFolderName);
this.Controls.Add(this.labelSaveFolderName);
this.Controls.Add(this.toolStripHeader);
this.Name = "ControlReportAcademicProgress";
this.Size = new System.Drawing.Size(477, 300);
this.toolStripHeader.ResumeLayout(false);
this.toolStripHeader.PerformLayout();
this.groupBoxReportInfo.ResumeLayout(false);
this.groupBoxReportInfo.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ToolStrip toolStripHeader;
private System.Windows.Forms.ToolStripButton toolStripButtonClose;
private System.Windows.Forms.GroupBox groupBoxReportInfo;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button buttonSave;
private System.Windows.Forms.TextBox textBoxSaveFolderName;
private System.Windows.Forms.Label labelSaveFolderName;
private System.Windows.Forms.Button buttonSaveSelectFolder;
}
}

View File

@ -0,0 +1,149 @@
using AcademicProgressBusinessLogic.BusinessLogics;
using DepartmentBusinessLogic.BindingModels;
using DepartmentBusinessLogic.BusinessLogics;
using DepartmentBusinessLogic.Interfaces;
using DepartmentWindowsDesktop.EntityControls;
using DesktopTools.BaseControls;
using DesktopTools.Interfaces;
using DesktopTools.Models;
using ModuleTools.BusinessLogics;
using ModuleTools.Enums;
using SecurityBusinessLogic.BindingModels;
using SecurityBusinessLogic.BusinessLogics;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
namespace AcademicProgressWindowsDesktop.SpecialControls
{
/// <summary>
/// Контрол для работы с отчетом об успеваемости
/// </summary>
public partial class ControlReportAcademicProgress : UserControl, IControl
{
/// <summary>
/// Класс с бизнес-логикой работы с отчетом
/// </summary>
private readonly ReportBusinessLogic _reportLogic;
private IStudentService _studentLogic;
/// <summary>
/// Событие, вызываемое при закрытии контрола
/// </summary>
///
private event Action<Guid> CloseEvent;
/// <summary>
/// Контрол для работы с отчетом об успеваемости
/// </summary>
public ControlReportAcademicProgress()
{
InitializeComponent();
_reportLogic = DependencyManager.Instance.Resolve<ReportBusinessLogic>();
Title = "Отчет об успеваемости студентов";
ControlId = new Guid("cc2244e6-5d92-4c89-b817-4c17ec382bc1");
AccessOperation = AccessOperation.Учет_успеваемости;
toolStripButtonClose.Click += (object sender, EventArgs e) =>
{
CloseEvent?.Invoke(ControlId);
Dispose();
};
LoadGroupBoxReportInfo();
}
#region IControl
public Guid ControlId { get; private set; }
public string Title { get; private set; }
public AccessOperation AccessOperation { get; private set; }
public IControl GetInstance() => new ControlReportAcademicProgress() { ControlId = Guid.NewGuid() };
public void Open(ControlOpenModel model)
{
if (model.CloseList != null)
{
CloseEvent += model.CloseList;
}
Dock = DockStyle.Fill;
}
public string SaveToXml() => new XElement("Control",
new XAttribute("Type", GetType().FullName),
new XAttribute("ControlId", ControlId),
new XAttribute("Title", Title),
new XAttribute("AccessOperation", AccessOperation)).ToString();
public void LoadFromXml(string xml)
{
var control = XElement.Parse(xml);
ControlId = new Guid(control.Attribute("ControlId").Value.ToString());
Title = control.Attribute("Title").Value.ToString();
AccessOperation = (AccessOperation)Enum.Parse(typeof(AccessOperation), control.Attribute("AccessOperation").Value.ToString());
}
#endregion
/// <summary>
/// Выбор пути для папки сохранения отчета
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonSaveSelectFolder_Click(object sender, EventArgs e)
{
var fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.OK)
{
textBoxSaveFolderName.Text = fbd.SelectedPath;
}
}
private void buttonSave_Click(object sender, EventArgs e)
{
}
private void buttonSave_Click_1(object sender, EventArgs e)
{
}
private void LoadGroupBoxReportInfo()
{
int positionY = 40;
int interval = 15;
var controlStudent = new BaseControlGuid("StudentId", true, false, new ControlStudentList(), null)
{
Location = new System.Drawing.Point(50, positionY),
Size = new System.Drawing.Size(410, 23)
};
controlStudent.SetTitleWidth(controlStudent.SetTitle("Cтудент:"));
groupBoxReportInfo.Controls.Add(controlStudent);
positionY += controlStudent.Height + interval;
var controlStudentGroup = new BaseControlGuid(" StudentGroupId", true, false, new ControlStudentGroupList(), null)
{
Location = new System.Drawing.Point(53, positionY),
Size = new System.Drawing.Size(407, 23)
};
controlStudentGroup.SetTitleWidth(controlStudentGroup.SetTitle("Группа:"));
groupBoxReportInfo.Controls.Add(controlStudentGroup);
}
}
}

View File

@ -0,0 +1,63 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolStripHeader.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@ -0,0 +1,154 @@

namespace AcademicProgressWindowsDesktop.SpecialControls
{
partial class ControlReportPlanDisciplines
{
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором компонентов
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
this.toolStripHeader = new System.Windows.Forms.ToolStrip();
this.toolStripButtonClose = new System.Windows.Forms.ToolStripButton();
this.buttonSave = new System.Windows.Forms.Button();
this.groupBoxReportInfo = new System.Windows.Forms.GroupBox();
this.label3 = new System.Windows.Forms.Label();
this.buttonSaveSelectFolder = new System.Windows.Forms.Button();
this.textBoxSaveFolderName = new System.Windows.Forms.TextBox();
this.labelSaveFolderName = new System.Windows.Forms.Label();
this.toolStripHeader.SuspendLayout();
this.groupBoxReportInfo.SuspendLayout();
this.SuspendLayout();
//
// toolStripHeader
//
this.toolStripHeader.ImageScalingSize = new System.Drawing.Size(20, 20);
this.toolStripHeader.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButtonClose});
this.toolStripHeader.Location = new System.Drawing.Point(0, 0);
this.toolStripHeader.Name = "toolStripHeader";
this.toolStripHeader.Size = new System.Drawing.Size(674, 27);
this.toolStripHeader.TabIndex = 4;
this.toolStripHeader.Text = "toolStrip1";
//
// toolStripButtonClose
//
this.toolStripButtonClose.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripButtonClose.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButtonClose.Image = global::AcademicProgressWindowsDesktop.Properties.Resources.Close;
this.toolStripButtonClose.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButtonClose.Name = "toolStripButtonClose";
this.toolStripButtonClose.Size = new System.Drawing.Size(29, 24);
this.toolStripButtonClose.Text = "Закрыть";
//
// buttonSave
//
this.buttonSave.Location = new System.Drawing.Point(517, 275);
this.buttonSave.Name = "buttonSave";
this.buttonSave.Size = new System.Drawing.Size(133, 28);
this.buttonSave.TabIndex = 6;
this.buttonSave.Text = "Сохранить";
this.buttonSave.UseVisualStyleBackColor = true;
this.buttonSave.Click += new System.EventHandler(this.buttonSave_Click);
//
// groupBoxReportInfo
//
this.groupBoxReportInfo.Controls.Add(this.label3);
this.groupBoxReportInfo.Location = new System.Drawing.Point(3, 80);
this.groupBoxReportInfo.Name = "groupBoxReportInfo";
this.groupBoxReportInfo.Size = new System.Drawing.Size(651, 180);
this.groupBoxReportInfo.TabIndex = 8;
this.groupBoxReportInfo.TabStop = false;
this.groupBoxReportInfo.Text = "Информация для отчета";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(1519, 588);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(88, 20);
this.label3.TabIndex = 7;
this.label3.Text = "Семестр до";
//
// buttonSaveSelectFolder
//
this.buttonSaveSelectFolder.Location = new System.Drawing.Point(517, 29);
this.buttonSaveSelectFolder.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonSaveSelectFolder.Name = "buttonSaveSelectFolder";
this.buttonSaveSelectFolder.Size = new System.Drawing.Size(133, 31);
this.buttonSaveSelectFolder.TabIndex = 5;
this.buttonSaveSelectFolder.Text = "Выбрать папку";
this.buttonSaveSelectFolder.UseVisualStyleBackColor = true;
this.buttonSaveSelectFolder.Click += new System.EventHandler(this.buttonSaveSelectFolder_Click);
//
// textBoxSaveFolderName
//
this.textBoxSaveFolderName.Location = new System.Drawing.Point(167, 31);
this.textBoxSaveFolderName.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.textBoxSaveFolderName.Name = "textBoxSaveFolderName";
this.textBoxSaveFolderName.Size = new System.Drawing.Size(344, 27);
this.textBoxSaveFolderName.TabIndex = 4;
//
// labelSaveFolderName
//
this.labelSaveFolderName.AutoSize = true;
this.labelSaveFolderName.Location = new System.Drawing.Point(50, 34);
this.labelSaveFolderName.Name = "labelSaveFolderName";
this.labelSaveFolderName.Size = new System.Drawing.Size(111, 20);
this.labelSaveFolderName.TabIndex = 3;
this.labelSaveFolderName.Text = "Путь до папки:";
//
// ControlReportPlanDisciplines
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBoxReportInfo);
this.Controls.Add(this.buttonSave);
this.Controls.Add(this.toolStripHeader);
this.Controls.Add(this.textBoxSaveFolderName);
this.Controls.Add(this.labelSaveFolderName);
this.Controls.Add(this.buttonSaveSelectFolder);
this.Name = "ControlReportPlanDisciplines";
this.Size = new System.Drawing.Size(674, 317);
this.toolStripHeader.ResumeLayout(false);
this.toolStripHeader.PerformLayout();
this.groupBoxReportInfo.ResumeLayout(false);
this.groupBoxReportInfo.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ToolStrip toolStripHeader;
private System.Windows.Forms.ToolStripButton toolStripButtonClose;
private System.Windows.Forms.Button buttonSave;
private System.Windows.Forms.GroupBox groupBoxReportInfo;
private System.Windows.Forms.Button buttonSaveSelectFolder;
private System.Windows.Forms.TextBox textBoxSaveFolderName;
private System.Windows.Forms.Label labelSaveFolderName;
private System.Windows.Forms.Label label3;
}
}

View File

@ -0,0 +1,140 @@
using DesktopTools.Interfaces;
using DesktopTools.Models;
using ModuleTools.Enums;
using System;
using System.Xml.Linq;
using System.Windows.Forms;
using DesktopTools.BaseControls;
using DepartmentWindowsDesktop.EntityControls;
using DepartmentBusinessLogic.Enums;
namespace AcademicProgressWindowsDesktop.SpecialControls
{
public partial class ControlReportPlanDisciplines : UserControl, IControl
{
/// <summary>
/// Событие, вызываемое при закрытии контрола
/// </summary>
private event Action<Guid> CloseEvent;
public ControlReportPlanDisciplines()
{
InitializeComponent();
Title = "План сдачи";
//что за цифры тут откуда брать...
ControlId = new Guid("cc2234e6-5d92-4c89-b817-4c17ec382bc1");
AccessOperation = AccessOperation.План_сдачи;
toolStripButtonClose.Click += (object sender, EventArgs e) =>
{
CloseEvent?.Invoke(ControlId);
Dispose();
};
LoadGroupBoxReportInfo();
}
#region IControl
public Guid ControlId { get; private set; }
public string Title { get; private set; }
public AccessOperation AccessOperation { get; private set; }
public IControl GetInstance() => new ControlReportPlanDisciplines() { ControlId = Guid.NewGuid() };
public void Open(ControlOpenModel model)
{
if (model.CloseList != null)
{
CloseEvent += model.CloseList;
}
Dock = DockStyle.Fill;
}
public string SaveToXml() => new XElement("Control",
new XAttribute("Type", GetType().FullName),
new XAttribute("ControlId", ControlId),
new XAttribute("Title", Title),
new XAttribute("AccessOperation", AccessOperation)).ToString();
public void LoadFromXml(string xml)
{
var control = XElement.Parse(xml);
ControlId = new Guid(control.Attribute("ControlId").Value.ToString());
Title = control.Attribute("Title").Value.ToString();
AccessOperation = (AccessOperation)Enum.Parse(typeof(AccessOperation), control.Attribute("AccessOperation").Value.ToString());
}
#endregion
private void buttonSave_Click(object sender, EventArgs e)
{
}
private void buttonSaveSelectFolder_Click(object sender, EventArgs e)
{
}
private void LoadGroupBoxReportInfo()
{
int positionY = 40;
int interval = 15;
var controlStudent = new BaseControlGuid("StudentId", true, false, new ControlStudentList(), null)
{
Location = new System.Drawing.Point(100, positionY),
Size = new System.Drawing.Size(545, 23)
};
controlStudent.SetTitleWidth(controlStudent.SetTitle("Cтудент:"));
groupBoxReportInfo.Controls.Add(controlStudent);
positionY += controlStudent.Height + interval;
var controlEducationDirectionUpTo = new BaseControlGuid("EducationDirectionViewModelId", true, false, new ControlEducationDirectionList(), null)
{
Location = new System.Drawing.Point(37, positionY),
Size = new System.Drawing.Size(356, 23)
};
controlEducationDirectionUpTo.SetTitleWidth(controlEducationDirectionUpTo.SetTitle("Направление до:"));
groupBoxReportInfo.Controls.Add(controlEducationDirectionUpTo);
var controlSemesterUpTo = new BaseControlEnum("Semester", true, false, typeof(Semester))
{
Location = new System.Drawing.Point(425, positionY),
Size = new System.Drawing.Size(220, 23)
};
controlSemesterUpTo.SetTitleWidth(controlSemesterUpTo.SetTitle("Семестр до:"));
groupBoxReportInfo.Controls.Add(controlSemesterUpTo);
positionY += controlEducationDirectionUpTo.Height + interval;
var controlEducationDirectionAfter = new BaseControlGuid("EducationDirectionViewModelId", true, false, new ControlEducationDirectionList(), null)
{
Location = new System.Drawing.Point(13, positionY),
Size = new System.Drawing.Size(380, 23)
};
controlEducationDirectionAfter.SetTitleWidth(controlEducationDirectionAfter.SetTitle("Направление после:"));
groupBoxReportInfo.Controls.Add(controlEducationDirectionAfter);
var controlSemesterAfter = new BaseControlEnum("Semester", true, false, typeof(Semester))
{
Location = new System.Drawing.Point(401, positionY),
Size = new System.Drawing.Size(245, 23)
};
controlSemesterAfter.SetTitleWidth(controlSemesterAfter.SetTitle("Семестр после:"));
groupBoxReportInfo.Controls.Add(controlSemesterAfter);
}
}
}

View File

@ -0,0 +1,66 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolStripHeader.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
</root>

View File

@ -0,0 +1,152 @@

namespace AcademicProgressWindowsDesktop.SpecialControls
{
partial class ControlStudentGraduate
{
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором компонентов
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
this.toolStripButtonClose = new System.Windows.Forms.ToolStripButton();
this.toolStripHeader = new System.Windows.Forms.ToolStrip();
this.groupBoxReportInfo = new System.Windows.Forms.GroupBox();
this.label3 = new System.Windows.Forms.Label();
this.buttonSaveSelectFolder = new System.Windows.Forms.Button();
this.buttonSave = new System.Windows.Forms.Button();
this.textBoxSaveFolderName = new System.Windows.Forms.TextBox();
this.labelSaveFolderName = new System.Windows.Forms.Label();
this.toolStripHeader.SuspendLayout();
this.groupBoxReportInfo.SuspendLayout();
this.SuspendLayout();
//
// toolStripButtonClose
//
this.toolStripButtonClose.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripButtonClose.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButtonClose.Image = global::AcademicProgressWindowsDesktop.Properties.Resources.Close;
this.toolStripButtonClose.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButtonClose.Name = "toolStripButtonClose";
this.toolStripButtonClose.Size = new System.Drawing.Size(29, 24);
this.toolStripButtonClose.Text = "Закрыть";
//
// toolStripHeader
//
this.toolStripHeader.ImageScalingSize = new System.Drawing.Size(20, 20);
this.toolStripHeader.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButtonClose});
this.toolStripHeader.Location = new System.Drawing.Point(0, 0);
this.toolStripHeader.Name = "toolStripHeader";
this.toolStripHeader.Size = new System.Drawing.Size(478, 27);
this.toolStripHeader.TabIndex = 2;
this.toolStripHeader.Text = "toolStrip1";
//
// groupBoxReportInfo
//
this.groupBoxReportInfo.Controls.Add(this.label3);
this.groupBoxReportInfo.Location = new System.Drawing.Point(3, 109);
this.groupBoxReportInfo.Name = "groupBoxReportInfo";
this.groupBoxReportInfo.Size = new System.Drawing.Size(460, 127);
this.groupBoxReportInfo.TabIndex = 23;
this.groupBoxReportInfo.TabStop = false;
this.groupBoxReportInfo.Text = "Информация для отчета";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(1519, 588);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(88, 20);
this.label3.TabIndex = 7;
this.label3.Text = "Семестр до";
//
// buttonSaveSelectFolder
//
this.buttonSaveSelectFolder.Location = new System.Drawing.Point(330, 69);
this.buttonSaveSelectFolder.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonSaveSelectFolder.Name = "buttonSaveSelectFolder";
this.buttonSaveSelectFolder.Size = new System.Drawing.Size(133, 31);
this.buttonSaveSelectFolder.TabIndex = 21;
this.buttonSaveSelectFolder.Text = "Выбрать папку";
this.buttonSaveSelectFolder.UseVisualStyleBackColor = true;
//
// buttonSave
//
this.buttonSave.Location = new System.Drawing.Point(330, 242);
this.buttonSave.Name = "buttonSave";
this.buttonSave.Size = new System.Drawing.Size(133, 28);
this.buttonSave.TabIndex = 22;
this.buttonSave.Text = "Сохранить";
this.buttonSave.UseVisualStyleBackColor = true;
//
// textBoxSaveFolderName
//
this.textBoxSaveFolderName.Location = new System.Drawing.Point(119, 34);
this.textBoxSaveFolderName.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.textBoxSaveFolderName.Name = "textBoxSaveFolderName";
this.textBoxSaveFolderName.Size = new System.Drawing.Size(344, 27);
this.textBoxSaveFolderName.TabIndex = 20;
//
// labelSaveFolderName
//
this.labelSaveFolderName.AutoSize = true;
this.labelSaveFolderName.Location = new System.Drawing.Point(11, 37);
this.labelSaveFolderName.Name = "labelSaveFolderName";
this.labelSaveFolderName.Size = new System.Drawing.Size(111, 20);
this.labelSaveFolderName.TabIndex = 19;
this.labelSaveFolderName.Text = "Путь до папки:";
//
// ControlStudentGraduate
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBoxReportInfo);
this.Controls.Add(this.buttonSaveSelectFolder);
this.Controls.Add(this.buttonSave);
this.Controls.Add(this.textBoxSaveFolderName);
this.Controls.Add(this.labelSaveFolderName);
this.Controls.Add(this.toolStripHeader);
this.Name = "ControlStudentGraduate";
this.Size = new System.Drawing.Size(478, 279);
this.toolStripHeader.ResumeLayout(false);
this.toolStripHeader.PerformLayout();
this.groupBoxReportInfo.ResumeLayout(false);
this.groupBoxReportInfo.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ToolStripButton toolStripButtonClose;
private System.Windows.Forms.ToolStrip toolStripHeader;
private System.Windows.Forms.GroupBox groupBoxReportInfo;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button buttonSaveSelectFolder;
private System.Windows.Forms.Button buttonSave;
private System.Windows.Forms.TextBox textBoxSaveFolderName;
private System.Windows.Forms.Label labelSaveFolderName;
}
}

View File

@ -0,0 +1,104 @@
using DepartmentWindowsDesktop.EntityControls;
using DesktopTools.BaseControls;
using DesktopTools.Interfaces;
using DesktopTools.Models;
using ModuleTools.Enums;
using System;
using System.Windows.Forms;
using System.Xml.Linq;
namespace AcademicProgressWindowsDesktop.SpecialControls
{
/// <summary>
/// Контрол для работы с выпускниками
/// </summary>
public partial class ControlStudentGraduate : UserControl, IControl
{
/// <summary>
/// Событие, вызываемое при закрытии контрола
/// </summary>
private event Action<Guid> CloseEvent;
public ControlStudentGraduate()
{
InitializeComponent();
Title = "Приложение к диплому";
//что за цифры тут откуда брать...
ControlId = new Guid("cc3944e6-5d92-4c89-b817-4c17ec382bc1");
AccessOperation = AccessOperation.Для_выпускников;
toolStripButtonClose.Click += (object sender, EventArgs e) =>
{
CloseEvent?.Invoke(ControlId);
Dispose();
};
LoadGroupBoxReportInfo();
}
#region IControl
public Guid ControlId { get; private set; }
public string Title { get; private set; }
public AccessOperation AccessOperation { get; private set; }
public IControl GetInstance() => new ControlStudentGraduate() { ControlId = Guid.NewGuid() };
public void Open(ControlOpenModel model)
{
if (model.CloseList != null)
{
CloseEvent += model.CloseList;
}
Dock = DockStyle.Fill;
}
public string SaveToXml() => new XElement("Control",
new XAttribute("Type", GetType().FullName),
new XAttribute("ControlId", ControlId),
new XAttribute("Title", Title),
new XAttribute("AccessOperation", AccessOperation)).ToString();
public void LoadFromXml(string xml)
{
var control = XElement.Parse(xml);
ControlId = new Guid(control.Attribute("ControlId").Value.ToString());
Title = control.Attribute("Title").Value.ToString();
AccessOperation = (AccessOperation)Enum.Parse(typeof(AccessOperation), control.Attribute("AccessOperation").Value.ToString());
}
#endregion
private void buttonSave_Click_1(object sender, EventArgs e)
{
}
private void LoadGroupBoxReportInfo()
{
int positionY = 40;
int interval = 15;
var controlStudent = new BaseControlGuid("StudentId", true, false, new ControlStudentList(), null)
{
Location = new System.Drawing.Point(50, positionY),
Size = new System.Drawing.Size(410, 23)
};
controlStudent.SetTitleWidth(controlStudent.SetTitle("Cтудент:"));
groupBoxReportInfo.Controls.Add(controlStudent);
positionY += controlStudent.Height + interval;
var controlStudentGroup = new BaseControlGuid(" StudentGroupId", true, false, new ControlStudentGroupList(), null)
{
Location = new System.Drawing.Point(53, positionY),
Size = new System.Drawing.Size(407, 23)
};
controlStudentGroup.SetTitleWidth(controlStudentGroup.SetTitle("Группа:"));
groupBoxReportInfo.Controls.Add(controlStudentGroup);
}
}
}

View File

@ -0,0 +1,63 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolStripHeader.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@ -1,4 +1,5 @@
using DatabaseCore.Models.Department;
using DatabaseCore.Models.AcademicProgress;
using DatabaseCore.Models.Department;
using DatabaseCore.Models.Security;
using Microsoft.EntityFrameworkCore;
@ -18,7 +19,7 @@ namespace DatabaseCore
#endif
#if DEBUG
optionsBuilder.UseSqlServer(@"Data Source=CHESHIR\SQLEXPRESS;Initial Catalog=DepartmentDatabasePortal;persist security info=True;user id=admin;password=cheshirSA123;MultipleActiveResultSets=True;");
optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-V8MOBH6\SQLEXPRESS;Initial Catalog=DepartmentDBPortal2;Integrated Security=True;MultipleActiveResultSets=True;");
#endif
}
base.OnConfiguring(optionsBuilder);
@ -70,6 +71,8 @@ namespace DatabaseCore
modelBuilder.Entity<Order>().HasIndex(d => new { d.OrderNumber }).IsUnique();
modelBuilder.Entity<StudentAcademicProgress>().HasIndex(d => new { d.StudentId, d.DisciplineId, d.Semester }).IsUnique();
modelBuilder.Entity<OrderStudentRecord>().HasIndex(d => new { d.StudentId, d.OrderId }).IsUnique();
modelBuilder.Entity<OrderStudentRecord>()

View File

@ -5,9 +5,9 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.4">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>

View File

@ -0,0 +1,62 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace DatabaseCore.Migrations
{
public partial class AddStudentAcademicProgress : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "StudentAcademicProgress",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
StudentId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
DisciplineId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Semester = table.Column<int>(type: "int", nullable: false),
StudentAcademicProgressId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Score = table.Column<string>(type: "nvarchar(max)", nullable: false),
AffixingDate = table.Column<DateTime>(type: "datetime2", nullable: false),
IsIncreaseScore = table.Column<bool>(type: "bit", nullable: false),
IsResit = table.Column<bool>(type: "bit", nullable: false),
DateCreate = table.Column<DateTime>(type: "datetime2", nullable: false),
DateDelete = table.Column<DateTime>(type: "datetime2", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_StudentAcademicProgress", x => x.Id);
table.ForeignKey(
name: "FK_StudentAcademicProgress_Disciplines_DisciplineId",
column: x => x.DisciplineId,
principalTable: "Disciplines",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_StudentAcademicProgress_Students_StudentId",
column: x => x.StudentId,
principalTable: "Students",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_StudentAcademicProgress_DisciplineId",
table: "StudentAcademicProgress",
column: "DisciplineId");
migrationBuilder.CreateIndex(
name: "IX_StudentAcademicProgress_StudentId_DisciplineId_Semester",
table: "StudentAcademicProgress",
columns: new[] { "StudentId", "DisciplineId", "Semester" },
unique: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "StudentAcademicProgress");
}
}
}

View File

@ -0,0 +1,50 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace DatabaseCore.Migrations
{
public partial class ChangeDisciplinesAndAcademicProgress : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "StudentAcademicProgressId",
table: "StudentAcademicProgress");
migrationBuilder.AlterColumn<int>(
name: "Score",
table: "StudentAcademicProgress",
type: "int",
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(max)");
migrationBuilder.AddColumn<string>(
name: "Discipline1CName",
table: "Disciplines",
type: "nvarchar(max)",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Discipline1CName",
table: "Disciplines");
migrationBuilder.AlterColumn<string>(
name: "Score",
table: "StudentAcademicProgress",
type: "nvarchar(max)",
nullable: false,
oldClrType: typeof(int),
oldType: "int");
migrationBuilder.AddColumn<Guid>(
name: "StudentAcademicProgressId",
table: "StudentAcademicProgress",
type: "uniqueidentifier",
nullable: true);
}
}
}

View File

@ -0,0 +1,17 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace DatabaseCore.Migrations
{
public partial class ChangeAcademicProgress : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
}
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}

View File

@ -19,6 +19,51 @@ namespace DatabaseCore.Migrations
.HasAnnotation("ProductVersion", "5.0.5")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("DatabaseCore.Models.AcademicProgress.StudentAcademicProgress", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("AffixingDate")
.HasColumnType("datetime2");
b.Property<DateTime>("DateCreate")
.HasColumnType("datetime2");
b.Property<DateTime?>("DateDelete")
.HasColumnType("datetime2");
b.Property<Guid>("DisciplineId")
.HasColumnType("uniqueidentifier");
b.Property<bool>("IsDeleted")
.HasColumnType("bit");
b.Property<bool>("IsIncreaseScore")
.HasColumnType("bit");
b.Property<bool>("IsResit")
.HasColumnType("bit");
b.Property<int>("Score")
.HasColumnType("int");
b.Property<int>("Semester")
.HasColumnType("int");
b.Property<Guid>("StudentId")
.HasColumnType("uniqueidentifier");
b.HasKey("Id");
b.HasIndex("DisciplineId");
b.HasIndex("StudentId", "DisciplineId", "Semester")
.IsUnique();
b.ToTable("StudentAcademicProgress");
});
modelBuilder.Entity("DatabaseCore.Models.Department.AcademicPlan", b =>
{
b.Property<Guid>("Id")
@ -201,6 +246,9 @@ namespace DatabaseCore.Migrations
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<string>("Discipline1CName")
.HasColumnType("nvarchar(max)");
b.Property<Guid>("DisciplineBlockId")
.HasColumnType("uniqueidentifier");
@ -1065,6 +1113,25 @@ namespace DatabaseCore.Migrations
b.ToTable("UserRoles");
});
modelBuilder.Entity("DatabaseCore.Models.AcademicProgress.StudentAcademicProgress", b =>
{
b.HasOne("DatabaseCore.Models.Department.Discipline", "Discipline")
.WithMany("StudentAcademicProgress")
.HasForeignKey("DisciplineId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("DatabaseCore.Models.Department.Student", "Student")
.WithMany("StudentAcademicProgress")
.HasForeignKey("StudentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Discipline");
b.Navigation("Student");
});
modelBuilder.Entity("DatabaseCore.Models.Department.AcademicPlan", b =>
{
b.HasOne("DatabaseCore.Models.Department.EducationDirection", "EducationDirection")
@ -1351,6 +1418,8 @@ namespace DatabaseCore.Migrations
modelBuilder.Entity("DatabaseCore.Models.Department.Discipline", b =>
{
b.Navigation("AcademicPlanRecords");
b.Navigation("StudentAcademicProgress");
});
modelBuilder.Entity("DatabaseCore.Models.Department.DisciplineBlock", b =>
@ -1413,6 +1482,8 @@ namespace DatabaseCore.Migrations
modelBuilder.Entity("DatabaseCore.Models.Department.Student", b =>
{
b.Navigation("OrderStudentRecords");
b.Navigation("StudentAcademicProgress");
});
modelBuilder.Entity("DatabaseCore.Models.Department.StudentGroup", b =>

View File

@ -0,0 +1,66 @@
using DatabaseCore.Models.Department;
using ModuleTools.Attributes;
using ModuleTools.Interfaces;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Runtime.Serialization;
namespace DatabaseCore.Models.AcademicProgress
{
/// <summary>
/// Класс, описывающий запись успеваемости студента
/// </summary>
[DataContract]
[EntityDescription("StudentAcademicProgress", "Запись успеваемости студента")]
[EntityDependency("Discipline", "DisciplineId", "Дисциплина, которая указана в записи успеваемости")]
[EntityDependency("Student", "StudentId", "Студент, для которого запрашивается успеваемость")]
public class StudentAcademicProgress : BaseEntity, IEntitySecurityExtenstion<StudentAcademicProgress>
{
[DataMember]
[Required(ErrorMessage = "required")]
[MapConfiguration("StudentId")]
public Guid StudentId { get; set; }
[DataMember]
[Required(ErrorMessage = "required")]
[MapConfiguration("DisciplineId")]
public Guid DisciplineId { get; set; }
[DataMember]
[Required]
[MapConfiguration("Semester")]
public int Semester { get; set; }
[DataMember]
[Required(ErrorMessage = "required")]
[MapConfiguration("Score")]
public int Score { get; set; }
[DataMember]
[Required]
[MapConfiguration("AffixingDate")]
public DateTime AffixingDate { get; set; }
[DataMember]
[MapConfiguration("IsIncreaseScore")]
public bool IsIncreaseScore { get; set; }
[DataMember]
[MapConfiguration("IsResit")]
public bool IsResit { get; set; }
//-------------------------------------------------------------------------
public virtual Student Student { get; set; }
public virtual Discipline Discipline { get; set; }
//-------------------------------------------------------------------------
public StudentAcademicProgress SecurityCheck(StudentAcademicProgress entity, bool allowFullData) => entity;
public override string ToString() => $"{Student}-{Discipline}";
}
}

View File

@ -1,4 +1,5 @@
using ModuleTools.Attributes;
using DatabaseCore.Models.AcademicProgress;
using ModuleTools.Attributes;
using ModuleTools.Interfaces;
using System;
using System.Collections.Generic;
@ -30,6 +31,10 @@ namespace DatabaseCore.Models.Department
[MapConfiguration("DisciplineShortName")]
public string DisciplineShortName { get; set; }
[DataMember]
[MapConfiguration("Discipline1CName")]
public string Discipline1CName { get; set; }
[DataMember]
[MapConfiguration("Description")]
public string Description { get; set; }
@ -46,6 +51,8 @@ namespace DatabaseCore.Models.Department
[ForeignKey("DisciplineId")]
public virtual List<AcademicPlanRecord> AcademicPlanRecords { get; set; }
[ForeignKey("DisciplineId")]
public virtual List<StudentAcademicProgress> StudentAcademicProgress { get; set; }
//-------------------------------------------------------------------------
public Discipline SecurityCheck(Discipline entity, bool allowFullData) => entity;

View File

@ -1,4 +1,5 @@
using DatabaseCore.Models.Security;
using DatabaseCore.Models.AcademicProgress;
using DatabaseCore.Models.Security;
using ModuleTools.Attributes;
using ModuleTools.Extensions;
using ModuleTools.Interfaces;
@ -85,6 +86,9 @@ namespace DatabaseCore.Models.Department
[ForeignKey("StudentId")]
public virtual List<OrderStudentRecord> OrderStudentRecords { get; set; }
[ForeignKey("StudentId")]
public virtual List<StudentAcademicProgress> StudentAcademicProgress { get; set; }
//-------------------------------------------------------------------------
public Student SecurityCheck(Student entity, bool allowFullData)

View File

@ -38,7 +38,7 @@ namespace DesktopTools.BaseControls
this.labelTitle.Dock = System.Windows.Forms.DockStyle.Left;
this.labelTitle.Location = new System.Drawing.Point(0, 0);
this.labelTitle.Name = "labelTitle";
this.labelTitle.Size = new System.Drawing.Size(93, 25);
this.labelTitle.Size = new System.Drawing.Size(123, 33);
this.labelTitle.TabIndex = 0;
this.labelTitle.Text = "Наименование:";
this.labelTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
@ -46,19 +46,21 @@ namespace DesktopTools.BaseControls
// panelControl
//
this.panelControl.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelControl.Location = new System.Drawing.Point(93, 0);
this.panelControl.Location = new System.Drawing.Point(123, 0);
this.panelControl.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.panelControl.Name = "panelControl";
this.panelControl.Size = new System.Drawing.Size(407, 25);
this.panelControl.Size = new System.Drawing.Size(524, 33);
this.panelControl.TabIndex = 1;
//
// AbstractBaseControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.panelControl);
this.Controls.Add(this.labelTitle);
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "AbstractBaseControl";
this.Size = new System.Drawing.Size(500, 25);
this.Size = new System.Drawing.Size(647, 33);
this.ResumeLayout(false);
}

View File

@ -51,6 +51,19 @@
СинхронизацияПриказов = 150,
#endregion
#region Успеваемость
Учет_успеваемости = 700,
План_сдачи = 701,
Прогресс = 702,
Для_выпускников = 703,
Академическая_разница = 704,
#endregion
// Меню Учебный процесс
Учебный_процесс = 150,
@ -107,6 +120,8 @@
// Web-портал
Новости = 600,
Комментарии = 601
Комментарии = 601,
Записи_Учебногорогресса = 602
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -23,11 +23,19 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModuleTools", "Common\Modul
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Department", "Department", "{A19E7709-6AD8-4E9B-B3AB-4339C67D9F39}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DepartmentBusinessLogic", "Department\DepartmentBusinessLogic\DepartmentBusinessLogic.csproj", "{69B94DB1-D1BE-4905-81AC-A5D49D0C9719}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DepartmentBusinessLogic", "Department\DepartmentBusinessLogic\DepartmentBusinessLogic.csproj", "{69B94DB1-D1BE-4905-81AC-A5D49D0C9719}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DepartmentDatabaseImplementation", "Department\DepartmentDatabaseImplementation.csproj\DepartmentDatabaseImplementation.csproj", "{1A9E20FE-6324-4839-A3AD-5726305122A5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DepartmentDatabaseImplementation", "Department\DepartmentDatabaseImplementation.csproj\DepartmentDatabaseImplementation.csproj", "{1A9E20FE-6324-4839-A3AD-5726305122A5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DepartmentWindowsDesktop", "Department\DepartmentWindowsDesktop\DepartmentWindowsDesktop.csproj", "{8E12DE14-0D83-48D8-964D-8B2BB06DB129}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DepartmentWindowsDesktop", "Department\DepartmentWindowsDesktop\DepartmentWindowsDesktop.csproj", "{8E12DE14-0D83-48D8-964D-8B2BB06DB129}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AcademicProgress", "AcademicProgress", "{DDBE45C6-7A51-4578-9661-B5F2BB60D7C1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AcademicProgressBusinessLogic", "AcademicProgressBusinessLogic\AcademicProgressBusinessLogic.csproj", "{A4BDED59-D9A6-46BA-972A-36078AFC7EC8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AcademicProgressDatabaseImplementation", "AcademicProgressDatabaseImplementation\AcademicProgressDatabaseImplementation.csproj", "{0BC13743-FB52-45BB-B919-D425A00B15BC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AcademicProgressWindowsDesktop", "AcademicProgressWindowsDesktop\AcademicProgressWindowsDesktop.csproj", "{BEBE6200-ECA2-470C-AA4F-8E2ACDA4B9BE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -75,6 +83,18 @@ Global
{8E12DE14-0D83-48D8-964D-8B2BB06DB129}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8E12DE14-0D83-48D8-964D-8B2BB06DB129}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8E12DE14-0D83-48D8-964D-8B2BB06DB129}.Release|Any CPU.Build.0 = Release|Any CPU
{A4BDED59-D9A6-46BA-972A-36078AFC7EC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A4BDED59-D9A6-46BA-972A-36078AFC7EC8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A4BDED59-D9A6-46BA-972A-36078AFC7EC8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A4BDED59-D9A6-46BA-972A-36078AFC7EC8}.Release|Any CPU.Build.0 = Release|Any CPU
{0BC13743-FB52-45BB-B919-D425A00B15BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0BC13743-FB52-45BB-B919-D425A00B15BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0BC13743-FB52-45BB-B919-D425A00B15BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0BC13743-FB52-45BB-B919-D425A00B15BC}.Release|Any CPU.Build.0 = Release|Any CPU
{BEBE6200-ECA2-470C-AA4F-8E2ACDA4B9BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BEBE6200-ECA2-470C-AA4F-8E2ACDA4B9BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BEBE6200-ECA2-470C-AA4F-8E2ACDA4B9BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BEBE6200-ECA2-470C-AA4F-8E2ACDA4B9BE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -89,6 +109,9 @@ Global
{69B94DB1-D1BE-4905-81AC-A5D49D0C9719} = {A19E7709-6AD8-4E9B-B3AB-4339C67D9F39}
{1A9E20FE-6324-4839-A3AD-5726305122A5} = {A19E7709-6AD8-4E9B-B3AB-4339C67D9F39}
{8E12DE14-0D83-48D8-964D-8B2BB06DB129} = {A19E7709-6AD8-4E9B-B3AB-4339C67D9F39}
{A4BDED59-D9A6-46BA-972A-36078AFC7EC8} = {DDBE45C6-7A51-4578-9661-B5F2BB60D7C1}
{0BC13743-FB52-45BB-B919-D425A00B15BC} = {DDBE45C6-7A51-4578-9661-B5F2BB60D7C1}
{BEBE6200-ECA2-470C-AA4F-8E2ACDA4B9BE} = {DDBE45C6-7A51-4578-9661-B5F2BB60D7C1}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FBA0CB49-EF2D-4538-9D00-FCEDA24879A9}

View File

@ -53,6 +53,7 @@ namespace DepartmentPortalDesctop
this.textBoxLogin.Name = "textBoxLogin";
this.textBoxLogin.Size = new System.Drawing.Size(242, 23);
this.textBoxLogin.TabIndex = 1;
this.textBoxLogin.Text = "admin";
//
// labelPassword
//
@ -72,6 +73,8 @@ namespace DepartmentPortalDesctop
this.textBoxPassword.Size = new System.Drawing.Size(242, 23);
this.textBoxPassword.TabIndex = 3;
this.textBoxPassword.UseSystemPasswordChar = true;
this.textBoxPassword.Text = "qwerty";
//
// buttonEnter
//

View File

@ -42,9 +42,11 @@ namespace DepartmentPortalDesctop
//
// menuMain
//
this.menuMain.ImageScalingSize = new System.Drawing.Size(20, 20);
this.menuMain.Location = new System.Drawing.Point(0, 0);
this.menuMain.Name = "menuMain";
this.menuMain.Size = new System.Drawing.Size(800, 24);
this.menuMain.Padding = new System.Windows.Forms.Padding(7, 3, 0, 3);
this.menuMain.Size = new System.Drawing.Size(914, 30);
this.menuMain.TabIndex = 0;
this.menuMain.Text = "Главное меню";
//
@ -52,9 +54,10 @@ namespace DepartmentPortalDesctop
//
this.panelControls.Controls.Add(this.dataGridViewControls);
this.panelControls.Dock = System.Windows.Forms.DockStyle.Left;
this.panelControls.Location = new System.Drawing.Point(0, 24);
this.panelControls.Location = new System.Drawing.Point(0, 30);
this.panelControls.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.panelControls.Name = "panelControls";
this.panelControls.Size = new System.Drawing.Size(191, 426);
this.panelControls.Size = new System.Drawing.Size(218, 570);
this.panelControls.TabIndex = 1;
//
// dataGridViewControls
@ -71,36 +74,42 @@ namespace DepartmentPortalDesctop
this.ColumnControlName});
this.dataGridViewControls.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataGridViewControls.Location = new System.Drawing.Point(0, 0);
this.dataGridViewControls.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.dataGridViewControls.MultiSelect = false;
this.dataGridViewControls.Name = "dataGridViewControls";
this.dataGridViewControls.ReadOnly = true;
this.dataGridViewControls.RowHeadersVisible = false;
this.dataGridViewControls.RowHeadersWidth = 51;
this.dataGridViewControls.RowTemplate.Height = 25;
this.dataGridViewControls.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dataGridViewControls.Size = new System.Drawing.Size(191, 426);
this.dataGridViewControls.Size = new System.Drawing.Size(218, 570);
this.dataGridViewControls.TabIndex = 0;
this.dataGridViewControls.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridViewControls_CellClick);
//
// ColumnControlId
//
this.ColumnControlId.HeaderText = "Id";
this.ColumnControlId.MinimumWidth = 6;
this.ColumnControlId.Name = "ColumnControlId";
this.ColumnControlId.ReadOnly = true;
this.ColumnControlId.Visible = false;
this.ColumnControlId.Width = 125;
//
// ColumnControlName
//
this.ColumnControlName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.ColumnControlName.HeaderText = "ControlName";
this.ColumnControlName.MinimumWidth = 6;
this.ColumnControlName.Name = "ColumnControlName";
this.ColumnControlName.ReadOnly = true;
//
// ButtonShowHideControlList
//
this.ButtonShowHideControlList.Dock = System.Windows.Forms.DockStyle.Left;
this.ButtonShowHideControlList.Location = new System.Drawing.Point(191, 24);
this.ButtonShowHideControlList.Location = new System.Drawing.Point(218, 30);
this.ButtonShowHideControlList.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.ButtonShowHideControlList.Name = "ButtonShowHideControlList";
this.ButtonShowHideControlList.Size = new System.Drawing.Size(25, 426);
this.ButtonShowHideControlList.Size = new System.Drawing.Size(29, 570);
this.ButtonShowHideControlList.TabIndex = 3;
this.ButtonShowHideControlList.Text = ">";
this.ButtonShowHideControlList.UseVisualStyleBackColor = true;
@ -109,21 +118,23 @@ namespace DepartmentPortalDesctop
// panelControl
//
this.panelControl.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelControl.Location = new System.Drawing.Point(216, 24);
this.panelControl.Location = new System.Drawing.Point(247, 30);
this.panelControl.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.panelControl.Name = "panelControl";
this.panelControl.Size = new System.Drawing.Size(584, 426);
this.panelControl.Size = new System.Drawing.Size(667, 570);
this.panelControl.TabIndex = 4;
//
// FormMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.ClientSize = new System.Drawing.Size(914, 600);
this.Controls.Add(this.panelControl);
this.Controls.Add(this.ButtonShowHideControlList);
this.Controls.Add(this.panelControls);
this.Controls.Add(this.menuMain);
this.MainMenuStrip = this.menuMain;
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "FormMain";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Кафедральный портал";

View File

@ -57,10 +57,13 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ColumnControlId.UserAddedColumn" type="System.Boolean, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e">
<metadata name="menuMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="ColumnControlId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ColumnControlName.UserAddedColumn" type="System.Boolean, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e">
<metadata name="ColumnControlName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View File

@ -59,18 +59,21 @@ namespace SecurityWindowsDesktop.SpecialControls
this.groupBoxSaveBackup.Controls.Add(this.buttonSaveSelectFolder);
this.groupBoxSaveBackup.Controls.Add(this.textBoxSaveFolderName);
this.groupBoxSaveBackup.Controls.Add(this.labelSaveFolderName);
this.groupBoxSaveBackup.Location = new System.Drawing.Point(0, 28);
this.groupBoxSaveBackup.Location = new System.Drawing.Point(0, 37);
this.groupBoxSaveBackup.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.groupBoxSaveBackup.Name = "groupBoxSaveBackup";
this.groupBoxSaveBackup.Size = new System.Drawing.Size(496, 100);
this.groupBoxSaveBackup.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.groupBoxSaveBackup.Size = new System.Drawing.Size(567, 133);
this.groupBoxSaveBackup.TabIndex = 0;
this.groupBoxSaveBackup.TabStop = false;
this.groupBoxSaveBackup.Text = "Сохранение в бекап";
//
// buttonCreateBackup
//
this.buttonCreateBackup.Location = new System.Drawing.Point(385, 71);
this.buttonCreateBackup.Location = new System.Drawing.Point(440, 95);
this.buttonCreateBackup.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonCreateBackup.Name = "buttonCreateBackup";
this.buttonCreateBackup.Size = new System.Drawing.Size(99, 23);
this.buttonCreateBackup.Size = new System.Drawing.Size(113, 31);
this.buttonCreateBackup.TabIndex = 5;
this.buttonCreateBackup.Text = "Выгрузить";
this.buttonCreateBackup.UseVisualStyleBackColor = true;
@ -79,9 +82,10 @@ namespace SecurityWindowsDesktop.SpecialControls
// checkBoxCreateArchive
//
this.checkBoxCreateArchive.AutoSize = true;
this.checkBoxCreateArchive.Location = new System.Drawing.Point(262, 55);
this.checkBoxCreateArchive.Location = new System.Drawing.Point(299, 73);
this.checkBoxCreateArchive.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.checkBoxCreateArchive.Name = "checkBoxCreateArchive";
this.checkBoxCreateArchive.Size = new System.Drawing.Size(104, 19);
this.checkBoxCreateArchive.Size = new System.Drawing.Size(131, 24);
this.checkBoxCreateArchive.TabIndex = 4;
this.checkBoxCreateArchive.Text = "Создать архив";
this.checkBoxCreateArchive.UseVisualStyleBackColor = true;
@ -89,18 +93,20 @@ namespace SecurityWindowsDesktop.SpecialControls
// checkBoxFullLoad
//
this.checkBoxFullLoad.AutoSize = true;
this.checkBoxFullLoad.Location = new System.Drawing.Point(120, 55);
this.checkBoxFullLoad.Location = new System.Drawing.Point(137, 73);
this.checkBoxFullLoad.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.checkBoxFullLoad.Name = "checkBoxFullLoad";
this.checkBoxFullLoad.Size = new System.Drawing.Size(121, 19);
this.checkBoxFullLoad.Size = new System.Drawing.Size(151, 24);
this.checkBoxFullLoad.TabIndex = 3;
this.checkBoxFullLoad.Text = "Полная выгрузка";
this.checkBoxFullLoad.UseVisualStyleBackColor = true;
//
// buttonSaveSelectFolder
//
this.buttonSaveSelectFolder.Location = new System.Drawing.Point(385, 26);
this.buttonSaveSelectFolder.Location = new System.Drawing.Point(440, 35);
this.buttonSaveSelectFolder.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonSaveSelectFolder.Name = "buttonSaveSelectFolder";
this.buttonSaveSelectFolder.Size = new System.Drawing.Size(99, 23);
this.buttonSaveSelectFolder.Size = new System.Drawing.Size(113, 31);
this.buttonSaveSelectFolder.TabIndex = 2;
this.buttonSaveSelectFolder.Text = "Выбрать папку";
this.buttonSaveSelectFolder.UseVisualStyleBackColor = true;
@ -108,27 +114,31 @@ namespace SecurityWindowsDesktop.SpecialControls
//
// textBoxSaveFolderName
//
this.textBoxSaveFolderName.Location = new System.Drawing.Point(110, 26);
this.textBoxSaveFolderName.Location = new System.Drawing.Point(126, 35);
this.textBoxSaveFolderName.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.textBoxSaveFolderName.Name = "textBoxSaveFolderName";
this.textBoxSaveFolderName.Size = new System.Drawing.Size(269, 23);
this.textBoxSaveFolderName.Size = new System.Drawing.Size(307, 27);
this.textBoxSaveFolderName.TabIndex = 1;
this.textBoxSaveFolderName.TextChanged += new System.EventHandler(this.textBoxSaveFolderName_TextChanged);
//
// labelSaveFolderName
//
this.labelSaveFolderName.AutoSize = true;
this.labelSaveFolderName.Location = new System.Drawing.Point(16, 29);
this.labelSaveFolderName.Location = new System.Drawing.Point(18, 39);
this.labelSaveFolderName.Name = "labelSaveFolderName";
this.labelSaveFolderName.Size = new System.Drawing.Size(85, 15);
this.labelSaveFolderName.Size = new System.Drawing.Size(108, 20);
this.labelSaveFolderName.TabIndex = 0;
this.labelSaveFolderName.Text = "Путь до папки";
this.labelSaveFolderName.Click += new System.EventHandler(this.labelSaveFolderName_Click);
//
// toolStripHeader
//
this.toolStripHeader.ImageScalingSize = new System.Drawing.Size(20, 20);
this.toolStripHeader.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButtonClose});
this.toolStripHeader.Location = new System.Drawing.Point(0, 0);
this.toolStripHeader.Name = "toolStripHeader";
this.toolStripHeader.Size = new System.Drawing.Size(708, 25);
this.toolStripHeader.Size = new System.Drawing.Size(809, 27);
this.toolStripHeader.TabIndex = 1;
this.toolStripHeader.Text = "toolStrip1";
//
@ -139,7 +149,7 @@ namespace SecurityWindowsDesktop.SpecialControls
this.toolStripButtonClose.Image = global::SecurityWindowsDesktop.Properties.Resources.Close;
this.toolStripButtonClose.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButtonClose.Name = "toolStripButtonClose";
this.toolStripButtonClose.Size = new System.Drawing.Size(23, 22);
this.toolStripButtonClose.Size = new System.Drawing.Size(29, 24);
this.toolStripButtonClose.Text = "Закрыть";
//
// groupBoxLoadBackup
@ -151,18 +161,21 @@ namespace SecurityWindowsDesktop.SpecialControls
this.groupBoxLoadBackup.Controls.Add(this.buttonLoadSelectFolder);
this.groupBoxLoadBackup.Controls.Add(this.textBoxLoadFolderName);
this.groupBoxLoadBackup.Controls.Add(this.labelLoadFolderName);
this.groupBoxLoadBackup.Location = new System.Drawing.Point(0, 134);
this.groupBoxLoadBackup.Location = new System.Drawing.Point(0, 179);
this.groupBoxLoadBackup.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.groupBoxLoadBackup.Name = "groupBoxLoadBackup";
this.groupBoxLoadBackup.Size = new System.Drawing.Size(496, 137);
this.groupBoxLoadBackup.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.groupBoxLoadBackup.Size = new System.Drawing.Size(567, 183);
this.groupBoxLoadBackup.TabIndex = 2;
this.groupBoxLoadBackup.TabStop = false;
this.groupBoxLoadBackup.Text = "Загрузка из бекапа";
//
// buttonRestoreBackup
//
this.buttonRestoreBackup.Location = new System.Drawing.Point(383, 99);
this.buttonRestoreBackup.Location = new System.Drawing.Point(438, 132);
this.buttonRestoreBackup.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonRestoreBackup.Name = "buttonRestoreBackup";
this.buttonRestoreBackup.Size = new System.Drawing.Size(99, 23);
this.buttonRestoreBackup.Size = new System.Drawing.Size(113, 31);
this.buttonRestoreBackup.TabIndex = 9;
this.buttonRestoreBackup.Text = "Загрузить";
this.buttonRestoreBackup.UseVisualStyleBackColor = true;
@ -170,9 +183,10 @@ namespace SecurityWindowsDesktop.SpecialControls
//
// buttonLoadArchiveSelect
//
this.buttonLoadArchiveSelect.Location = new System.Drawing.Point(383, 64);
this.buttonLoadArchiveSelect.Location = new System.Drawing.Point(438, 85);
this.buttonLoadArchiveSelect.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonLoadArchiveSelect.Name = "buttonLoadArchiveSelect";
this.buttonLoadArchiveSelect.Size = new System.Drawing.Size(99, 23);
this.buttonLoadArchiveSelect.Size = new System.Drawing.Size(113, 31);
this.buttonLoadArchiveSelect.TabIndex = 8;
this.buttonLoadArchiveSelect.Text = "Выбрать файл";
this.buttonLoadArchiveSelect.UseVisualStyleBackColor = true;
@ -180,25 +194,27 @@ namespace SecurityWindowsDesktop.SpecialControls
//
// textBoxLoadArchiveName
//
this.textBoxLoadArchiveName.Location = new System.Drawing.Point(110, 64);
this.textBoxLoadArchiveName.Location = new System.Drawing.Point(126, 85);
this.textBoxLoadArchiveName.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.textBoxLoadArchiveName.Name = "textBoxLoadArchiveName";
this.textBoxLoadArchiveName.Size = new System.Drawing.Size(267, 23);
this.textBoxLoadArchiveName.Size = new System.Drawing.Size(305, 27);
this.textBoxLoadArchiveName.TabIndex = 7;
//
// labelLoadArchiveName
//
this.labelLoadArchiveName.AutoSize = true;
this.labelLoadArchiveName.Location = new System.Drawing.Point(14, 67);
this.labelLoadArchiveName.Location = new System.Drawing.Point(16, 89);
this.labelLoadArchiveName.Name = "labelLoadArchiveName";
this.labelLoadArchiveName.Size = new System.Drawing.Size(90, 15);
this.labelLoadArchiveName.Size = new System.Drawing.Size(115, 20);
this.labelLoadArchiveName.TabIndex = 6;
this.labelLoadArchiveName.Text = "Путь до архива";
//
// buttonLoadSelectFolder
//
this.buttonLoadSelectFolder.Location = new System.Drawing.Point(385, 28);
this.buttonLoadSelectFolder.Location = new System.Drawing.Point(440, 37);
this.buttonLoadSelectFolder.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.buttonLoadSelectFolder.Name = "buttonLoadSelectFolder";
this.buttonLoadSelectFolder.Size = new System.Drawing.Size(99, 23);
this.buttonLoadSelectFolder.Size = new System.Drawing.Size(113, 31);
this.buttonLoadSelectFolder.TabIndex = 5;
this.buttonLoadSelectFolder.Text = "Выбрать папку";
this.buttonLoadSelectFolder.UseVisualStyleBackColor = true;
@ -206,29 +222,31 @@ namespace SecurityWindowsDesktop.SpecialControls
//
// textBoxLoadFolderName
//
this.textBoxLoadFolderName.Location = new System.Drawing.Point(110, 28);
this.textBoxLoadFolderName.Location = new System.Drawing.Point(126, 37);
this.textBoxLoadFolderName.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.textBoxLoadFolderName.Name = "textBoxLoadFolderName";
this.textBoxLoadFolderName.Size = new System.Drawing.Size(269, 23);
this.textBoxLoadFolderName.Size = new System.Drawing.Size(307, 27);
this.textBoxLoadFolderName.TabIndex = 4;
//
// labelLoadFolderName
//
this.labelLoadFolderName.AutoSize = true;
this.labelLoadFolderName.Location = new System.Drawing.Point(16, 31);
this.labelLoadFolderName.Location = new System.Drawing.Point(18, 41);
this.labelLoadFolderName.Name = "labelLoadFolderName";
this.labelLoadFolderName.Size = new System.Drawing.Size(85, 15);
this.labelLoadFolderName.Size = new System.Drawing.Size(108, 20);
this.labelLoadFolderName.TabIndex = 3;
this.labelLoadFolderName.Text = "Путь до папки";
//
// BackupControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBoxLoadBackup);
this.Controls.Add(this.toolStripHeader);
this.Controls.Add(this.groupBoxSaveBackup);
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "BackupControl";
this.Size = new System.Drawing.Size(708, 486);
this.Size = new System.Drawing.Size(809, 648);
this.groupBoxSaveBackup.ResumeLayout(false);
this.groupBoxSaveBackup.PerformLayout();
this.toolStripHeader.ResumeLayout(false);

View File

@ -166,5 +166,15 @@ namespace SecurityWindowsDesktop.SpecialControls
}
Cursor.Current = cursor;
}
private void textBoxSaveFolderName_TextChanged(object sender, EventArgs e)
{
}
private void labelSaveFolderName_Click(object sender, EventArgs e)
{
}
}
}

View File

@ -57,4 +57,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolStripHeader.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>