using SecurityContract.BindingModels;
using SecurityContract.Logics.IGenericEntityLogic;
using SecurityContract.ViewModels;
using System;
using System.Collections.Generic;
using ToolsDesktop.Controls;
using ToolsDesktop.Enums;
using ToolsDesktop.Interfaces;
using ToolsDesktop.Models;
using ToolsModule.ManagmentSecurity;

namespace SecurityWindowsDesktop.EntityControls
{
    /// <summary>
    /// Реализация контрола для списка ролей
    /// </summary>
    public partial class ControlRoleList : 
		GenericControlEntityList<RoleGetBindingModel, RoleSetBindingModel, RoleListViewModel, RoleViewModel, IRoleLogic>,
		IGenericControlEntityList
	{
		public ControlRoleList() : base()
		{
			InitializeComponent();
			Title = "Роли";
			ControlId = new Guid("6a33ce5c-e950-4294-9f75-2a0b35941bf7");
			AccessOperation = AccessOperation.Роли;
			ControlViewEntityElement = new ControlRoleElement();
			_genericControlViewEntityList = this;
		}

		public IControl GetInstanceGenericControl() => new ControlRoleList() { ControlId = Guid.NewGuid() };

		public ControlViewEntityListConfiguration GetConfigControl() => new()
		{
			PaginationOn = false,
			HideToolStripButton = new List<ToolStripButtonListNames>
			{
				ToolStripButtonListNames.toolStripButtonSearch
			}
		};
	}
}