protected void ShowManagedForm <T>(BaseFormControl owner, OwnerType ownerType = OwnerType.MdiOwner, object data = null) where T : BaseFormControl
        {
            var type = typeof(T);

            if (owner != null && owner.IsMdiContainer)
            {
                bool isAlreadyOpen = owner.MdiChildren.Any(x => x.Name == type.Name);
                if (isAlreadyOpen)
                {
                    owner.MdiChildren.Single(x => x.Name == type.Name).Activate();
                    return;
                }
            }
            var form = (T)BootStrapper.Container.Resolve(type, type.Name);

            if (owner != null)
            {
                if (ownerType == OwnerType.MdiOwner)
                {
                    form.MdiParent = owner;
                }
                else
                {
                    form.Owner = owner;
                }
                form.WindowState = FormWindowState.Maximized;
            }
            form.FormData = data;
            form.Show();
        }
        protected void ShowManagedModalForm <T>(BaseFormControl owner, object data = null) where T : BaseFormControl
        {
            var type = typeof(T);

            var form = (T)BootStrapper.Container.Resolve(type, type.Name);

            form.Owner    = owner;
            form.FormData = data;
            form.CenterToScreen();
            form.ShowDialog();
        }