private void BijwerkenMRU(string bestandsnaam)
 {
     System.Collections.Specialized.StringCollection mrulijst = new
                                                                System.Collections.Specialized.StringCollection();
     if (WindowMetRibbonControl.Properties.Settings.Default.mru != null)
     {
         mrulijst = WindowMetRibbonControl.Properties.Settings.Default.mru;
         int positie = mrulijst.IndexOf(bestandsnaam);
         if (positie >= 0)
         {
             mrulijst.RemoveAt(positie);
         }
         else
         {
             if (mrulijst.Count >= 6)
             {
                 mrulijst.RemoveAt(5);
             }
         }
     }
     mrulijst.Insert(0, bestandsnaam);
     WindowMetRibbonControl.Properties.Settings.Default.mru = mrulijst;
     WindowMetRibbonControl.Properties.Settings.Default.Save();
     LeesMRU();
 }
        private async void AlwaysIdleList_LoadAsync(object sender, EventArgs e)
        {
            //Settings.Default.AlwaysIdleList.Clear();
            //Settings.Default.Save();
            var EnabledList = new System.Collections.Specialized.StringCollection();

            EnabledList = Settings.Default.EnabledAlwaysIdleList;
            Settings.Default.EnabledAlwaysIdleList.Remove("");
            Settings.Default.AlwaysIdleList.Remove("");
            Settings.Default.Save();
            for (int i = 0; i < Settings.Default.AlwaysIdleList.Count; i++)
            {
                int AppID = int.Parse(Settings.Default.AlwaysIdleList[i]);
                AppIDList.Add(AppID);
                int CurIndex = this.checkedListBox1.Items.Add(Settings.Default.AlwaysIdleList[i]);
                if (EnabledList.IndexOf(Settings.Default.AlwaysIdleList[i]) != -1)
                {
                    this.checkedListBox1.SetItemChecked(CurIndex, true);
                }
            }
            var ItemList     = this.checkedListBox1.Items;
            var tmpAppIDList = AppIDList;

            for (int i = 0; i < ItemList.Count; i++)
            {
                ItemList[i] = await GetAppNameByID(AppIDList[i]);
            }
        }
示例#3
0
        public Image GetImage(string label)
        {
            int i = m_labels.IndexOf(label);

            if (i >= 0)
            {
                return(m_images.Images[i]);
            }
            else if (label != null && label.Length > 0 && m_images.Images.Count > 0)
            {
                return(m_images.Images[0]);                             //let the first one be the default
            }
            else
            {
                return(null);
            }
        }
        private static void ДобавитьссылкинаDllвКаталоге(Type тип, System.Collections.Specialized.StringCollection referencedAssemblies)
        {
            string ИмяФайлаСборки = тип.Assembly.Location;
            string Каталог        = Path.GetDirectoryName(ИмяФайлаСборки);

            string[] files = Directory.GetFiles(Каталог ?? string.Empty, "*.dll");

            foreach (string f in files)
            {
                if (!String.Equals(f, ИмяФайлаСборки, StringComparison.CurrentCultureIgnoreCase))
                {
                    if (referencedAssemblies.IndexOf(f) == -1)
                    {
                        referencedAssemblies.Add(f);
                    }
                }
            }
        }
示例#5
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // deviceの設定 *
            // if (!icImagingControl1.DeviceValid)
            // {
            //     icImagingControl1.ShowDeviceSettingsDialog();
            //     if (!icImagingControl1.DeviceValid)
            //     {
            //         Close();
            //         return;
            //     }
            // }

            // フィルタモジュールへのフルパス保存にコレクションを使う *
            modulePathCollection = new System.Collections.Specialized.StringCollection();

            // 各フィルタ毎に *
            // - フィルタのパスがすでにモジュールパスコレクションにあるかどうか
            // - なかった場合はモジュール名をフィルタモジュールリストに追加
            foreach (TIS.Imaging.FrameFilterInfo ffi in icImagingControl1.FrameFilterInfos)
            {
                if (modulePathCollection.IndexOf(ffi.ModulePath) < 0)
                {
                    listBox1.Items.Add(ffi.ModuleName);
                    modulePathCollection.Add(ffi.ModulePath);
                }
            }

            toolStripComboBox1.SelectedIndex = 5;

            isActive = true;

            LoadLastUsedDevice();
            UpdateControls();
            StartLiveVideo();
            // icImagingControl1.LiveDisplayZoomFactor = 160.0F;
            Console.WriteLine(isActive);
        }
示例#6
0
        internal void ChangeFocus(bool isTitleUpdated, bool isIconUpdated)
        {
            if (activeWindow.screen.Equals(screenThis))
            {
                // hide on fullscreen app
                if (activeWindow.rect.Left == screenThis.Bounds.Left &&
                    activeWindow.rect.Top == screenThis.Bounds.Top &&
                    activeWindow.rect.Right == screenThis.Bounds.Right &&
                    activeWindow.rect.Bottom == screenThis.Bounds.Bottom)
                {
                    if (this.Visibility == Visibility.Visible)
                    {
                        this.Visibility = Visibility.Collapsed;
                    }
                }
                else
                {
                    if (this.Visibility == Visibility.Collapsed)
                    {
                        this.Visibility = Visibility.Visible;
                    }

                    if (activeWindow.isMaximised)
                    {
                        if (this.Background.Equals(activeBackground) == false)
                        {
                            this.Background = activeBackground;
                        }
                        maxButton.Content = "\xE923";

                        if (exceptionList.IndexOf(activeWindow.process.ProcessName) != -1)
                        {
                            CollapsedChange(true);
                        }
                        else
                        {
                            CollapsedChange(false);
                        }
                    }
                    else
                    {
                        if (this.Background.Equals(defaultBackground) == false)
                        {
                            this.Background = defaultBackground;
                        }
                        maxButton.Content = "\xE922";

                        CollapsedChange(false);
                    }

                    if (this.Opacity != 1)
                    {
                        this.Opacity = 1;
                    }
                }

                if (currentWindow != activeWindow && (isTitleUpdated == false || isIconUpdated == false))
                {
                    ChangeTitle();
                    ChangeIcon();
                }

                currentWindow = activeWindow;
            }
            else
            {
                if (this.Background.Equals(defaultBackground) == false)
                {
                    this.Background = defaultBackground;
                }

                if (this.Opacity != 0.5)
                {
                    this.Opacity = 0.5;
                }
            }
        }
示例#7
0
        /// <summary>
        /// Обновить хранилище по объектам (есть параметр, указывающий, всегда ли необходимо взводить ошибку
        /// и откатывать транзакцию при неудачном запросе в базу данных). Если
        /// он true, всегда взводится ошибка. Иначе, выполнение продолжается.
        /// Однако, при этом есть опасность преждевременного окончания транзакции, с переходом для остальных
        /// запросов режима транзакционности в autocommit. Проявлением проблемы являются ошибки навроде:
        /// The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION
        /// </summary>
        /// <param name="objects">Объекты для обновления.</param>
        /// <param name="DataObjectCache">Кэш объектов данных.</param>
        /// <param name="AlwaysThrowException">Если произошла ошибка в базе данных, не пытаться выполнять других запросов, сразу взводить ошибку и откатывать транзакцию.</param>
        public virtual void UpdateObjects(ref DataObject[] objects, DataObjectCache DataObjectCache, bool AlwaysThrowException)
        {
            object id = BusinessTaskMonitor.BeginTask("Update objects");

            if (!DoNotChangeCustomizationString && ChangeCustomizationString != null)
            {
                var tps = new List <Type>();
                foreach (DataObject d in objects)
                {
                    Type t = d.GetType();
                    if (!tps.Contains(t))
                    {
                        tps.Add(t);
                    }
                }

                string cs = ChangeCustomizationString(tps.ToArray());
                customizationString = string.IsNullOrEmpty(cs) ? customizationString : cs;
            }

            // Перенесли этот метод повыше, потому что строка соединения может быть сменена в бизнес-сервере делегатом смены строки соединения (если что-нибудь почитают).
            IDbConnection conection = GetConnection();

            var DeleteQueries      = new StringCollection();
            var UpdateQueries      = new StringCollection();
            var UpdateFirstQueries = new StringCollection();
            var InsertQueries      = new StringCollection();

            var DeleteTables    = new StringCollection();
            var UpdateTables    = new StringCollection();
            var InsertTables    = new StringCollection();
            var TableOperations = new SortedList();
            var QueryOrder      = new StringCollection();

            var AllQueriedObjects = new ArrayList();

            var auditOperationInfoList = new List <AuditAdditionalInfo>();
            var extraProcessingList    = new List <DataObject>();

            GenerateQueriesForUpdateObjects(DeleteQueries, DeleteTables, UpdateQueries, UpdateFirstQueries, UpdateTables, InsertQueries, InsertTables, TableOperations, QueryOrder, true, AllQueriedObjects, DataObjectCache, extraProcessingList, objects);

            GenerateAuditForAggregators(AllQueriedObjects, DataObjectCache, ref extraProcessingList);

            OnBeforeUpdateObjects(AllQueriedObjects);

            // Сортируем объекты в порядке заданным графом связности.
            extraProcessingList.Sort((x, y) =>
            {
                int indexX = QueryOrder.IndexOf(Information.GetClassStorageName(x.GetType()));
                int indexY = QueryOrder.IndexOf(Information.GetClassStorageName(y.GetType()));
                return(indexX.CompareTo(indexY));
            });

            Exception ex = null;

            /*access checks*/

            foreach (DataObject dtob in AllQueriedObjects)
            {
                Type dobjType = dtob.GetType();
                if (!SecurityManager.AccessObjectCheck(dobjType, tTypeAccess.Full, false))
                {
                    switch (dtob.GetStatus(false))
                    {
                    case ObjectStatus.Created:
                        SecurityManager.AccessObjectCheck(dobjType, tTypeAccess.Insert, true);
                        break;

                    case ObjectStatus.Altered:
                        SecurityManager.AccessObjectCheck(dobjType, tTypeAccess.Update, true);
                        break;

                    case ObjectStatus.Deleted:
                        SecurityManager.AccessObjectCheck(dobjType, tTypeAccess.Delete, true);
                        break;
                    }
                }
            }

            /*access checks*/

            if (DeleteQueries.Count > 0 || UpdateQueries.Count > 0 || InsertQueries.Count > 0)
            { // Порядок выполнения запросов: delete,insert,update
                if (AuditService.IsAuditEnabled)
                {
                    /* Аудит проводится именно здесь, поскольку на этот момент все бизнес-сервера на объектах уже выполнились,
                     * объекты находятся именно в том состоянии, в каком должны были пойти в базу + в будущем можно транзакцию передать на исполнение
                     */
                    AuditOperation(extraProcessingList, auditOperationInfoList); // TODO: подумать, как записывать аудит до OnBeforeUpdateObjects, но уже потенциально с транзакцией
                }

                conection.Open();
                IDbTransaction trans = null;

                string query       = string.Empty;
                string prevQueries = string.Empty;
                object subTask     = null;
                try
                {
                    trans = CreateTransaction(conection);
                    IDbCommand command = conection.CreateCommand();
                    command.Transaction = trans;

                    #region прошли вглубь обрабатывая only Update||Insert
                    bool go = true;
                    do
                    {
                        string table = QueryOrder[0];
                        if (!TableOperations.ContainsKey(table))
                        {
                            TableOperations.Add(table, OperationType.None);
                        }

                        var ops = (OperationType)TableOperations[table];

                        if ((ops & OperationType.Delete) != OperationType.Delete)
                        {
                            // Смотрим есть ли Инсерты
                            if ((ops & OperationType.Insert) == OperationType.Insert)
                            {
                                if (
                                    (ex =
                                         RunCommands(InsertQueries, InsertTables, table, command, id, AlwaysThrowException))
                                    == null)
                                {
                                    ops = Minus(ops, OperationType.Insert);
                                    TableOperations[table] = ops;
                                }
                                else
                                {
                                    go = false;
                                }
                            }

                            // Смотрим есть ли Update
                            if (go && ((ops & OperationType.Update) == OperationType.Update))
                            {
                                if ((ex = RunCommands(UpdateQueries, UpdateTables, table, command, id, AlwaysThrowException)) == null)
                                {
                                    ops = Minus(ops, OperationType.Update);
                                    TableOperations[table] = ops;
                                }
                                else
                                {
                                    go = false;
                                }
                            }

                            if (go)
                            {
                                QueryOrder.RemoveAt(0);
                                go = QueryOrder.Count > 0;
                            }
                        }
                        else
                        {
                            go = false;
                        }
                    }while (go);

                    #endregion
                    if (QueryOrder.Count > 0)
                    {
                        #region сзади чистые Update

                        go = true;
                        int queryOrderIndex = QueryOrder.Count - 1;
                        do
                        {
                            string table = QueryOrder[queryOrderIndex];
                            if (TableOperations.ContainsKey(table))
                            {
                                var ops = (OperationType)TableOperations[table];

                                if (ops == OperationType.Update)
                                {
                                    if (
                                        (ex = RunCommands(UpdateQueries, UpdateTables, table, command, id, AlwaysThrowException)) == null)
                                    {
                                        ops = Minus(ops, OperationType.Update);
                                        TableOperations[table] = ops;
                                    }
                                    else
                                    {
                                        go = false;
                                    }

                                    if (go)
                                    {
                                        queryOrderIndex--;
                                        go = queryOrderIndex >= 0;
                                    }
                                }
                                else
                                {
                                    go = false;
                                }
                            }
                            else
                            {
                                queryOrderIndex--;
                            }
                        }while (go);

                        #endregion
                    }

                    foreach (string table in QueryOrder)
                    {
                        if ((ex = RunCommands(UpdateFirstQueries, UpdateTables, table, command, id, AlwaysThrowException)) != null)
                        {
                            throw ex;
                        }
                    }

                    // Удаляем в обратном порядке.
                    for (int i = QueryOrder.Count - 1; i >= 0; i--)
                    {
                        string table = QueryOrder[i];
                        if ((ex = RunCommands(DeleteQueries, DeleteTables, table, command, id, AlwaysThrowException)) != null)
                        {
                            throw ex;
                        }
                    }

                    // А теперь опять с начала
                    foreach (string table in QueryOrder)
                    {
                        if ((ex = RunCommands(InsertQueries, InsertTables, table, command, id, AlwaysThrowException)) != null)
                        {
                            throw ex;
                        }

                        if ((ex = RunCommands(UpdateQueries, UpdateTables, table, command, id, AlwaysThrowException)) != null)
                        {
                            throw ex;
                        }
                    }

                    if (AuditService.IsAuditEnabled && auditOperationInfoList.Count > 0)
                    { // Нужно зафиксировать операции аудита (то есть сообщить, что всё было корректно выполнено и запомнить время)
                        AuditService.RatifyAuditOperationWithAutoFields(
                            tExecutionVariant.Executed,
                            AuditAdditionalInfo.SetNewFieldValuesForList(trans, this, auditOperationInfoList),
                            this,
                            true);
                    }

                    if (trans != null)
                    {
                        trans.Commit();
                    }
                }
                catch (Exception excpt)
                {
                    if (trans != null)
                    {
                        trans.Rollback();
                    }

                    if (AuditService.IsAuditEnabled && auditOperationInfoList.Count > 0)
                    { // Нужно зафиксировать операции аудита (то есть сообщить, что всё было откачено)
                        AuditService.RatifyAuditOperationWithAutoFields(tExecutionVariant.Failed, auditOperationInfoList, this, false);
                    }

                    conection.Close();
                    BusinessTaskMonitor.EndSubTask(subTask);
                    throw new ExecutingQueryException(query, prevQueries, excpt);
                }

                conection.Close();

                var res = new ArrayList();
                foreach (DataObject changedObject in objects)
                {
                    changedObject.ClearPrototyping(true);

                    if (changedObject.GetStatus(false) != STORMDO.ObjectStatus.Deleted)
                    {
                        Utils.UpdateInternalDataInObjects(changedObject, true, DataObjectCache);
                        res.Add(changedObject);
                    }
                }

                foreach (DataObject dobj in AllQueriedObjects)
                {
                    if (dobj.GetStatus(false) != STORMDO.ObjectStatus.Deleted &&
                        dobj.GetStatus(false) != STORMDO.ObjectStatus.UnAltered)
                    {
                        Utils.UpdateInternalDataInObjects(dobj, true, DataObjectCache);
                    }
                }

                objects = new DataObject[res.Count];
                res.CopyTo(objects);
                BusinessTaskMonitor.EndTask(id);
            }

            if (AfterUpdateObjects != null)
            {
                AfterUpdateObjects(this, new DataObjectsEventArgs(objects));
            }
        }
示例#8
0
        static internal int TryGetOrdinal(String keyword)
        {
            if (keyword == null)
            {
                throw new ArgumentNullException("keyword");
            }
            String strLower = keyword.ToLowerInvariant();

            // Adjust for synonyms
            if (strLower == "blankdate")
            {
                strLower = "blank date";
            }
            else
            if (strLower == "characterencoding" ||
                strLower == "character_encoding" ||
                strLower == "char_encoding" ||
                strLower == "charencoding" ||
                strLower == "char encoding")
            {
                strLower = "character encoding";
            }
            else
            if (strLower == "connection timeout" ||
                strLower == "connectiontimeout" ||
                strLower == "connecttimeout")
            {
                strLower = "connect timeout";
            }
            else
            if (strLower == "db" ||
                strLower == "initial catalog" ||
                strLower == "initialcatalog")
            {
                strLower = "database";
            }
            else
            if (strLower == "date_fmt" ||
                strLower == "date fmt" ||
                strLower == "dateformat" ||
                strLower == "date format")
            {
                strLower = "date_format";
            }
            else
            if (strLower == "decimal" ||
                strLower == "decimalchar" ||
                strLower == "decimal char")
            {
                strLower = "decimal_char";
            }
            else
            if (strLower == "groupid")
            {
                strLower = "group id";
            }
            else
            if (strLower == "host" ||
                strLower == "address" ||
                strLower == "addr" ||
                strLower == "network address" ||
                strLower == "networkaddress")
            {
                strLower = "server";
            }
            else
            if (strLower == "maxpoolsize")
            {
                strLower = "max pool size";
            }
            else
            if (strLower == "minpoolsize")
            {
                strLower = "min pool size";
            }
            else
            if (strLower == "money_fmt" ||
                strLower == "moneyfmt" ||
                strLower == "moneyformat" ||
                strLower == "money format")
            {
                strLower = "money_format";
            }
            else
            if (strLower == "money_prec" ||
                strLower == "moneyprec" ||
                strLower == "moneyprecision" ||
                strLower == "money precision")
            {
                strLower = "money_precision";
            }
            else
            if (strLower == "persistsecurityinfo")
            {
                strLower = "persist security info";
            }
            else
            if (strLower == "pwd")
            {
                strLower = "password";
            }
            else
            if (strLower == "roleid")
            {
                strLower = "role id";
            }
            else
            if (strLower == "role pwd" ||
                strLower == "rolepwd" ||
                strLower == "rolepassword")
            {
                strLower = "role password";
            }
            else
            if (strLower == "dbms_user" ||
                strLower == "dbmsuserid" ||
                strLower == "dbmsuser")
            {
                strLower = "dbms user";
            }
            else
            if (strLower == "dbms pwd" ||
                strLower == "dbmspwd" ||
                strLower == "dbmspassword" ||
                strLower == "dbms_pwd" ||
                strLower == "dbms_password")
            {
                strLower = "dbms password";
            }
            else
            if (strLower == "tz")
            {
                strLower = "timezone";
            }
            else
            if (strLower == "uid" ||
                strLower == "userid")
            {
                strLower = "user id";
            }
            else
            if (strLower == "vnodeusage")
            {
                strLower = "vnode_usage";
            }
            else
            if (strLower == "send_ingres_dates" ||
                strLower == "send ingres dates" ||
                strLower == "send ingresdates")
            {
                strLower = "sendingresdates";
            }

            int i = ConnectBuilderKeywordsLowerCase.IndexOf(strLower);

            return(i);
        }