private string findFolder(string parentFolderId, string folderName)
    {
        if (string.IsNullOrEmpty(folderName) || string.IsNullOrEmpty(parentFolderId))
        {
            return(null);
        }
        try
        {
            const string FOLDER_CARD_TYPE = "{DA86FABF-4DD7-4A86-B6FF-C58C24D12DE2}";
            FolderCard   folderCard       = (FolderCard)Session.CardManager.GetDictionary(new Guid(FOLDER_CARD_TYPE));

            Folder rootFolder = folderCard.GetFolder(new Guid(parentFolderId.ToString()));
            if (rootFolder != null)
            {
                foreach (var item in rootFolder.Folders.Where(s => s.Name.ToLower() == folderName.ToLower()))
                {
                    return(item.Id.ToString());
                }
            }
            return(null);
        }
        catch
        {
            return(null);
        }

        return(null);
    }
Esempio n. 2
0
        private void CardControl_CardClosed(Object sender, EventArgs e)
        {
            try
            {
                /* Отвязка методов */
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Marketing].ItemClick          -= Marketing_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.CreateAccountCard].ItemClick  -= CreateAccountCard_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Revoke].ItemClick             -= Revoke_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Calibrate].ItemClick          -= Calibrate_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.PrintDeliveryAct].ItemClick   -= PrintDeliveryAct_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.PrintAcceptanceAct].ItemClick -= PrintAcceptanceAct_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.Calculation].ItemClick        -= Calculation_ItemClick;
                ICardControl.RibbonControl.Items[RefApplicationCard.RibbonItems.ShowClientInfo].ItemClick     -= ShowClientInfo_ItemClick;
                CardScript.CardControl.Saving     -= CardControl_Saving;
                CardScript.CardControl.Saved      -= CardControl_Saved;
                CardScript.CardControl.CardClosed -= CardControl_CardClosed;

                if (FolderCard.GetShortcuts(CardScript.CardData.Id).Count == 0)
                {
                    try { CardScript.ReleaseNumber(CurrentNumerator.NumericPart); }
                    catch { WriteLog("Не удалось освободить номер!"); }
                }
            }
            catch (Exception Ex) { CallError(Ex); }
        }
 public DocsVisionFilesHelper(UserSession userSession /*, Logger logger*/)
 {
     //this.logger = logger;
     this.rootFolderGuid = ConfigurationManager.AppSettings["RootFolderGuid"];
     this.Session        = userSession;
     folderCard          = (FolderCard)Session.CardManager.GetDictionary(new Guid(FOLDER_CARD_TYPE));
     setupFoldersDelegate();
 }
    private bool setRightsFoFolder(RowData newEmployeeDocsvision, string folderId)
    {
        if (folderId != null)
        {
            CardData    refStaffData = Session.CardManager.GetDictionaryData(RefStaff.ID);
            SectionData unitsSection = refStaffData.Sections[RefStaff.Units.ID];

            //Права
            var accountName = newEmployeeDocsvision.GetString(RefStaff.Employees.AccountName);
            if (string.IsNullOrEmpty(accountName))
            {
                return(false);
            }


            var profileCardId = Session.ProfileManager.GetProfileId(accountName);
            var profileCard   = (UserProfileCard)Session.CardManager.GetCard(profileCardId);
            if (profileCard.DefaultFolderId == new Guid(folderId))
            {
                return(false);
            }

            profileCard.DefaultFolderId = new Guid(folderId);

            var employee = objectContext.GetObject <StaffEmployee>(newEmployeeDocsvision.Id);
            if (employee.PersonalFolder == null)
            {
                return(false);
            }

            var staffService = objectContext.GetService <IStaffService>();
            staffService.SetFoldersRights(employee.PersonalFolder, employee.AccountName);


            //logger.Info("Права на папку созданы.");
            //Ограничения

            FolderCard folderCard = (FolderCard)Session.CardManager.GetDictionary(new Guid("DA86FABF-4DD7-4A86-B6FF-C58C24D12DE2"));

            Folder folder = folderCard.GetFolder(new Guid(folderId.ToString()));
            if ((folder.Restrictions & FolderRestrictions.Types) == 0)
            {
                folder.Restrictions |= FolderRestrictions.Types;
            }


            //logger.Info("Ограничения на папку созданы.");
            //Разрешения

            if ((folder.Restrictions & FolderRestrictions.Types) == 0)
            {
                folder.Restrictions = folder.Restrictions | FolderRestrictions.Types;
                folder.AllowedCardTypes.AddNew(new Guid("6D76D0A7-5434-40F2-912E-6370D33C3151"));
            }
        }
        return(true);
    }
Esempio n. 5
0
        public static Boolean DeleteCard(UserSession Session, String CardID)
        {
            logger.Info("cardId='{0}'", CardID);
            using (new Impersonator(ServerExtension.Domain, ServerExtension.User, ServerExtension.SecurePassword))
            {
                FolderCard FolderCard    = (FolderCard)Session.CardManager.GetDictionary(FoldersCard.ID);
                CardData   UniversalCard = Session.CardManager.GetDictionaryData(RefUniversal.ID);

                CardData Card = Session.CardManager.GetCardData(new Guid(CardID));

                Card.UnlockCard();
                ExtraCard Extra = Card.GetExtraCard();

                Guid?  RegItemId     = null;
                String DirectoryPath = null;

                if (Extra != null)
                {
                    RegItemId     = Extra.RegID;
                    DirectoryPath = Extra.Path;
                    logger.Info("Запись в реестре='{0}'", RegItemId.HasValue ? RegItemId.Value.ToString() : "NULL");
                    logger.Info("Путь в архиве='{0}'", DirectoryPath);

                    /* Удаление карточки */
                    FolderCard.DeleteCard(Card.Id, true);
                    logger.Info("Карточка удалена!");

                    /* Удаление записи в реестре */
                    if (RegItemId.HasValue)
                    {
                        RowData ItemRow = UniversalCard.GetItemRow(RegItemId.Value);
                        if (ItemRow != null)
                        {
                            UniversalCard.Sections[RefUniversal.Item.ID].DeleteRow(ItemRow.Id);
                            logger.Info("Запись в реестре тех.док. удалена");
                        }
                        else
                        {
                            logger.Info("Запись в реестре тех.док. не найдена");
                        }
                    }

                    /* Удаление папки в архиве */
                    if (!String.IsNullOrEmpty(DirectoryPath))
                    {
                        var di = new DirectoryInfo(DirectoryPath);
                        if (di.Exists)
                        {
                            if (di.FullName.Length > 20)
                            {
                                di.Delete(true);
                                logger.Info("Папка удалена!");
                            }
                            else
                            {
                                logger.Warn("В карточке '{0}' некорректный путь '{1}'", Card.Id, DirectoryPath);
                            }
                        }
                        else
                        {
                            logger.Info("Папка не существует!");
                        }
                    }

                    return(true);
                }
                else
                {
                    logger.Warn("Не верный тип карточки!");
                    return(false);
                }
            }
        }
        /// <summary>
        /// Инициализирует папку заданными значениями.
        /// </summary>
        /// <param name="Device">Прибор.</param>
        /// <param name="CodeID">ID кода СКБ.</param>
        /// <param name="CodeName">Отобразаемое значение кода СКБ.</param>
        /// <param name="DocumentID">ID документа.</param>
        /// <param name="DocumentName">Название документа.</param>
        /// <param name="FolderID">ID папки.</param>
        public DocumentsFolder(Folder ParentFolder, CardData Document, SavedSearchGroup SearchGroup, SavedView View, FolderCard FolderCard)
        {
            this.ParentFolder = ParentFolder;
            this.Document     = Document;
            DocumentID        = Document.Id;

            SectionData Properties = Document.Sections[CardOrd.Properties.ID];

            DocumentType = Properties.FindRow("@Name = '" + RefPropertiesCD.Requisities.FileType + "'").GetString("Value");
            RowData Code = Properties.FindRow("@Name = '" + RefPropertiesCD.Requisities.Code + "'");

            CodeID   = Code.GetGuid("Value").Value;
            CodeName = Code.GetString("DisplayValue");
            RowData Applicable = Properties.FindRow("@Name = '" + RefPropertiesCD.Requisities.Applicable + "'");

            Applicability = Applicable.GetString("DisplayValue");
            RowData Name = Properties.FindRow("@Name = '" + RefPropertiesCD.Requisities.DocumentName + "'");

            string ShortType = DocumentType == "СД - Спецификация (не платы)" || DocumentType == "СП - Спецификация платы" ? "" : DocumentType.Remove(DocumentType.IndexOf(" - "));

            DocumentName = CodeName + " " + ShortType + " " + Name.GetString("Value");

            Folder      = FolderCard.CreateFolder(ParentFolder.Id, DocumentName);
            Folder.Type = FolderTypes.Virtual;

            if (!SearchGroup.Queries.Any(row => row.Name == DocumentName))
            {
                SearchQuery   Query    = FolderCard.Session.CreateSearchQuery();
                CardTypeQuery CardType = Query.AttributiveSearch.CardTypeQueries.AddNew(CardOrd.ID);
                SectionQuery  Section  = CardType.SectionQueries.AddNew(CardOrd.MainInfo.ID);
                Section.Operation = SectionQueryOperation.And;
                Section.ConditionGroup.Operation = ConditionGroupOperation.And;
                Section.ConditionGroup.Conditions.AddNew(CardOrd.MainInfo.Type, FieldType.RefId, ConditionOperation.Equals, MyHelper.RefType_CD);

                Section           = CardType.SectionQueries.AddNew(CardOrd.Properties.ID);
                Section.Operation = SectionQueryOperation.And;
                Section.ConditionGroup.Operation = ConditionGroupOperation.And;
                Section.ConditionGroup.Conditions.AddNew(CardOrd.Properties.Value, FieldType.Unistring, ConditionOperation.Equals, DocumentType);
                Section.ConditionGroup.Conditions.AddNew(CardOrd.Properties.Name, FieldType.Unistring, ConditionOperation.Equals, RefPropertiesCD.Requisities.FileType);

                Section           = CardType.SectionQueries.AddNew(CardOrd.Properties.ID);
                Section.Operation = SectionQueryOperation.And;
                Section.ConditionGroup.Operation = ConditionGroupOperation.And;
                Section.ConditionGroup.Conditions.AddNew(CardOrd.Properties.Value, FieldType.RefId, ConditionOperation.Equals, CodeID);
                Section.ConditionGroup.Conditions.AddNew(CardOrd.Properties.Name, FieldType.Unistring, ConditionOperation.Equals, RefPropertiesCD.Requisities.Code);
                Query.Limit = 0;
                SearchGroup.Queries.AddNew(DocumentName).Import(Query);
            }
            SavedSearchQuery SavedQuery = SearchGroup.Queries.First(row => row.Name == DocumentName);

            Folder.RefId = SavedQuery.Id;

            Folder.CurrentViewId = View.Id;
            Folder.DefaultViewId = View.Id;
        }