/// <summary>
 /// Обработчик специального события, инициируемого после активации пользоваетелем одного из методов карточки.
 /// </summary>
 /// <param name="e">Параметры метода карточки.</param>
 protected override void OnCardAction(CardActionEventArgs e)
 {
     System.Windows.Forms.MessageBox.Show("Действие");
     base.OnCardAction(e);
     try
     {
         System.Windows.Forms.MessageBox.Show("Режимы");
         if (e.ActionId == RefEquipmentCard.Actions.OpenFiles)
         {
             if (!CardData.IsNull())
             {
                 String FolderPath = CardData.Sections[RefEquipmentCard.MainInfo.ID].FirstRow.GetString(RefEquipmentCard.MainInfo.Folder);
                 if (!String.IsNullOrWhiteSpace(FolderPath) && Directory.Exists(FolderPath))
                 {
                     Process.Start("explorer", "\"" + FolderPath + "\"");
                 }
                 else
                 {
                     CardHost.ShowCard(CardData.Id, RefEquipmentCard.Modes.OpenFiles, this.CardData.ArchiveState == ArchiveState.NotArchived ? ActivateMode.Edit : ActivateMode.ReadOnly);
                 }
             }
         }
         else if (e.ActionId == RefEquipmentCard.Actions.OpenCardAndFiles)
         {
             CardHost.ShowCard(CardData.Id, RefEquipmentCard.Modes.OpenCardAndFiles, this.CardData.ArchiveState == ArchiveState.NotArchived ? ActivateMode.Edit : ActivateMode.ReadOnly);
         }
         else if (e.ActionId == RefEquipmentCard.Actions.OpenCard)
         {
             CardHost.ShowCard(CardData.Id, RefEquipmentCard.Modes.OpenCard, this.CardData.ArchiveState == ArchiveState.NotArchived ? ActivateMode.Edit : ActivateMode.ReadOnly);
         }
         else if (e.ActionId == RefEquipmentCard.Actions.Delete)
         {
             IList <StatesOperation> Operations = StateService.GetOperations(BaseObject.SystemInfo.CardKind) ?? new List <StatesOperation>();
             StatesOperation         Operation  = Operations.FirstOrDefault(item => item.DefaultName == "Modify");
             if (!Operation.IsNull())
             {
                 if (AccessCheckingService.IsOperationAllowed(BaseObject, Operation))
                 {
                     switch (ShowMessage("Вы уверены, что хотите удалить выбранную карточку и связанные файлы?", "Docsvision Navigator", MessageType.Question, MessageButtons.YesNo))
                     {
                     case MessageResult.Yes:
                         Boolean ByMe;
                         String  OwnerName;
                         if (!LockService.IsObjectLocked <BaseCard>(BaseObject, out ByMe, out OwnerName))
                         {
                             if (Session.DeleteCard(CardData.Id))
                             {
                                 ShowMessage("Карточка и файлы удалены!", "Docsvision Navigator", MessageType.Information, MessageButtons.Ok);
                             }
                             else
                             {
                                 ShowMessage("Не удалось удалить карточку!" + Environment.NewLine
                                             + "Обратитесь к системному администратору!", "Docsvision Navigator", MessageType.Error, MessageButtons.Ok);
                             }
                         }
                         else
                         {
                             ShowMessage("Невозможно удалить карточку " + BaseObject.Description + "." + Environment.NewLine
                                         + "Карточка заблокирована " + (ByMe ? "вами" : "пользователем " + OwnerName) + "!", "Docsvision Navigator", MessageType.Warning, MessageButtons.Ok);
                         }
                         break;
                     }
                 }
             }
         }
     }
     catch (Exception ex) { this.ProcessException(ex); }
 }