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 ControlUserRoleList : 
		GenericControlEntityList<UserRoleGetBindingModel, UserRoleSetBindingModel, UserRoleListViewModel, UserRoleViewModel, IUserRoleLogic>,
		IGenericControlEntityList
	{
		public ControlUserRoleList()
		{
			InitializeComponent();
			Title = "Связи пользователей с ролями";
			ControlId = new Guid("c5748925-c8ec-4d06-a256-c72b0983d332");
			AccessOperation = AccessOperation.ПользователиРоли;
			ControlViewEntityElement = new ControlUserRoleElement();
			_genericControlViewEntityList = this;
		}

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

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