예제 #1
0
        /// <summary>
        /// Обработчик события нажатия клавиши мыши на кнопку,
        /// который совершает удаление из выбранных сервисов
        /// </summary>
        private void btn_RemoveFromUsed_Click(object sender, EventArgs e)
        {
            if (SelectedUsedServiceType == null || lst_UsedServices.SelectedIndex < 0)
            {
                MessageBox.Show("Используемый сервис не выбран!", "Предупреждение", MessageBoxButtons.OK,
                                MessageBoxIcon.Exclamation);
                return;
            }

            AvalibleServices.Add(SelectedUsedServiceType);
            UsedServices.Remove(SelectedUsedServiceType);
        }
예제 #2
0
        private DbSetInfo CreateDbSetWrapper(Type entityType, string propertyName,
                                             IReadOnlyDictionary <Type, string> tableNames)
        {
            var dbSetInfoUpdateServices = UsedServices?.OfType <IDbSetInfoUpdateService>().ToArray();
            var dbSetInfo = new DbSetInfo(entityType, GetTableName(entityType, propertyName, tableNames), DefaultSchema);
            {
                if (dbSetInfoUpdateServices != null)
                {
                    foreach (var i in dbSetInfoUpdateServices)
                    {
                        i.UpdateDbSetInfo(dbSetInfo, entityType, _dbContextType);
                    }
                }
            }
            var columnInfoUpdateServices = UsedServices?.OfType <IColumnInfoUpdateService>().ToArray();
            var useDirectSaverForType    = entityType.GetTypeInfo().GetCustomAttribute <NoDirectSaverAttribute>() == null;

            foreach (var propertyInfo in entityType.GetProperties())
            {
                var columnInfo = new ColumnInfo(dbSetInfo.Properites.Count, propertyInfo.Name)
                {
                    NotNull = NotNullFromPropertyType(propertyInfo.PropertyType)
                };
                if (useDirectSaverForType)
                {
                    var readerWriter = new SimplePropertyReaderWriter(entityType, propertyInfo);
                    columnInfo.ValueReader = readerWriter;
                    columnInfo.ValueWriter = readerWriter;
                }
                if (columnInfoUpdateServices != null)
                {
                    foreach (var service in columnInfoUpdateServices)
                    {
                        service.UpdateColumnInfo(columnInfo, propertyInfo);
                    }
                }
                dbSetInfo.Properites.Add(columnInfo);
            }
            return(dbSetInfo);
        }
예제 #3
0
        /// <summary>
        /// Обработчик события нажатия клавиши мыши на кнопку,
        /// который выполняет сохранение изменений
        /// </summary>
        private void btn_OK_Click(object sender, EventArgs e)
        {
            if (UsedServices.Count == 0)
            {
                MessageBox.Show("Отсутствуют выбранные сервисы!", "Предупреждение", MessageBoxButtons.OK,
                                MessageBoxIcon.Exclamation);
                return;
            }

            try
            {
                _ctx.SubscribeToSelectedServices(UsedServices.ToList());
                UsedServices.Clear();
                MessageBox.Show("Новые подписки на сервисы успешно сохранены!", "Информация", MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                DialogResult = DialogResult.OK;
                Close();
            }
            catch
            {
                MessageBox.Show("Не удалось подписаться на выбранные сервисы!", "Ошибка", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }