public (Result, string) Insert(IEnumerable <MaxigrafPlateSetting> data, object state = null)
        {
            using (var adapter = new MaxigrafPlatesSettingDataTableTableAdapter
            {
                Connection = new SqlConnection(SettingsContext.GlobalSettings.NifudaConnectionString)
            })
            {
                if (!SafeCheck.IsValidConnection(adapter.Connection))
                {
                    return(Result.Unsuccess, $"Database connection error");
                }

                var methodInfo = typeof(MaxigrafPlatesSettingDataTableTableAdapter).GetMethod("Insert");

                foreach (var obj in data)
                {
                    var tupleParameters = obj.PropertiesToTuple();
                    var values          = methodInfo.GetParameters().Select(info =>
                                                                            tupleParameters.FirstOrDefault(p =>
                                                                                                           p.Name.ToLower()
                                                                                                           == info.Name.ToLower()).Value ?? "");
                    if (values == null)
                    {
                        continue;
                    }
                    methodInfo.Invoke(adapter, values.ToArray());
                }

                return(Result.Success, $"Ok");
            }
        }
        public IEnumerable <MaxigrafPlateSetting> SelectByPlateId(int plateId, object state = null)
        {
            using (var adapter = new MaxigrafPlatesSettingDataTableTableAdapter
            {
                Connection = new SqlConnection(SettingsContext.GlobalSettings.NifudaConnectionString)
            })
            {
                if (!SafeCheck.IsValidConnection(adapter.Connection))
                {
                    throw new ConnectionException(SettingsContext.GlobalSettings.NifudaConnectionString);
                }

                var dataTable = adapter.GetData(plateId);
                foreach (var obj in dataTable.AdaptWithSameProperties <MaxigrafPlateSetting,
                                                                       MaxigrafPlatesSettingDataTableRow>())
                {
                    yield return(obj);
                }
            }
        }
        public (Result, string) Delete(IEnumerable <MaxigrafPlateSetting> data, object state = null)
        {
            using (var adapter = new MaxigrafPlatesSettingDataTableTableAdapter
            {
                Connection = new SqlConnection(SettingsContext.GlobalSettings.NifudaConnectionString)
            })
            {
                if (!SafeCheck.IsValidConnection(adapter.Connection))
                {
                    return(Result.Unsuccess, $"Database connection error");
                }

                foreach (var obj in data)
                {
                    adapter.Delete(obj.Num);
                }

                return(Result.Success, $"Ok");
            }
        }