Exemplo n.º 1
0
        internal static Object ExecNonQuery(string spName, Databases sDb, ICollection <KeyValuePair <string, object> > param)
        {
            object        Gelen;
            IDbConnection cnn = DBSelect.CreateConnection(sDb);
            IDbCommand    cmd = CommandSelect.CreateCommand(sDb);

            if (cnn.State == ConnectionState.Open)
            {
                cnn.Close();
                cmd.Parameters.Clear();
            }

            cmd.CommandText = spName;

            foreach (KeyValuePair <string, object> item in param)
            {
                cmd.Parameters.Add(ParameterSelect.CreateParameter(sDb, item.Key, item.Value));
            }

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection  = cnn;

            if (cnn.State == ConnectionState.Closed)
            {
                cnn.Open();
            }

            Gelen = cmd.ExecuteNonQuery();

            return(Gelen);
        }
Exemplo n.º 2
0
        internal static Object ExecReader(string spName, Databases sDb, int?id, string param)
        {
            object        Gelen;
            IDbConnection cnn = DBSelect.CreateConnection(sDb);
            IDbCommand    cmd = CommandSelect.CreateCommand(sDb);

            if (cnn.State == ConnectionState.Open)
            {
                cnn.Close();
                cmd.Parameters.Clear();
            }
            cmd.CommandText = spName;

            var parameter = cmd.CreateParameter();

            parameter.ParameterName = param;
            parameter.Value         = id;
            cmd.Parameters.Add(parameter);

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection  = cnn;

            if (cnn.State == ConnectionState.Closed)
            {
                cnn.Open();
            }


            Gelen = cmd.ExecuteReader();

            return(Gelen);
        }
        /// <summary>
        /// 全レシピ名を取得してコンボボックスに入れる
        /// </summary>
        private void SetRecipeListToCombox()
        {
            DBSelect        dbSelect    = new DBSelect();
            List <string[]> recipeNames = dbSelect.SelectData("MaterialRecipes", null, new string[] { "Name" }, null, null, null);

            recipeSelectWindow.SetRecipeNameListToComboBox(recipeNames);
        }
        /// <summary>
        ///     Метод для установки параметров элемента управления DBSelect
        /// </summary>
        /// <param name="ctrl">Элемент управления</param>
        /// <param name="mode">Значение фильтра элемента управления</param>
        /// <param name="value">Значения элемента управления - идентификаторы объектов, перечисленные через запятую</param>
        /// <param name="isRequired">Флаг указывающий, что значение параметра обязятельное, его редактирование запрещено</param>
        public void setSelectCtrlValue(DBSelect ctrl, string mode, string value, bool isRequired)
        {
            var intMode = 0;

            if (int.TryParse(mode, out intMode))
            {
                if (intMode >= selectModeOffset)
                {
                    intMode -= selectModeOffset;
                }
            }

            var modes = (SelectEnum[])Enum.GetValues(typeof(SelectEnum));

            for (var i = 0; i < modes.Length; i++)
            {
                if (intMode == (int)modes[i])
                {
                    ctrl.ValueSelectEnum = intMode.ToString();
                    break;
                }
            }

            var arr = value.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);

            if (arr.Length > 0)
            {
                if (ctrl.IsMultiSelect)
                {
                    foreach (var id in arr)
                    {
                        var obj = ctrl.GetObjectById(id);
                        if (obj != null)
                        {
                            ctrl.SelectedItems.Add(new Item {
                                Id = id, Value = obj
                            });
                        }
                    }
                }
                else
                {
                    ctrl.Value = arr[0];
                }
            }

            //if (!ctrl.IsDisabled) ctrl.IsDisabled = isRequired;
            if (!ctrl.IsReadOnly)
            {
                ctrl.IsReadOnly = isRequired;                   // ctrl.IsDisabled;
            }
            if (ctrl.HasCheckbox)
            {
                ctrl.Checked =
                    isRequired; //value != string.Empty || mode != ((int)SelectEnum.Contain).ToString() || ctrl.SelectedItems.Count>0;
            }
        }
        /// <summary>
        /// レシピが選択された
        /// </summary>
        private void RecipiListSelected(object sender, EventArgs e)
        {
            productionRecipe.RecipeName = recipeSelectWindow.Combobox_Recipe.SelectedItem.ToString(); // 選択されたレシピ名を取得

            DBSelect        dbSelect   = new DBSelect();
            List <string[]> recipeData = dbSelect.SelectData("MaterialRecipes", null, new string[] { "RecipeId", "MaterialId", "RequiredBuildingTypeId", "UnitProductionTime", "UnitProductionPieces" }, "Name = @NAME", new List <string[]>()
            {
                new string[] { "@NAME", productionRecipe.RecipeName }
            }, null);

            string[] recipe = recipeData[0];    // レシピデータを取り出す

            // 取り出したデータを格納
            productionRecipe.RecipeId = recipe[0];                                 // レシピID
            productionRecipe.ProductionMaterial.MaterialId = recipe[1];            // 生産物ID
            productionRecipe.BuildingToUse.TypeId          = recipe[2];            // 要求建物タイプID
            productionRecipe.UnitProductionTime            = int.Parse(recipe[3]); // 単位生産時間
            productionRecipe.UnitProductionPieces          = int.Parse(recipe[4]); // 単位生産数

            // 生産品名を取得
            List <string[]> materialName = dbSelect.SelectData("Materials", null, new string[] { "Name", "IsOre" }, "MaterialId = @MATERIALID", new List <string[]>()
            {
                new string[] { "@MATERIALID", productionRecipe.ProductionMaterial.MaterialId }
            }, null);

            productionRecipe.ProductionMaterial.Name = materialName[0][0];
            productionRecipe.IsOre = int.Parse(materialName[0][1]);

            // 鉱石だったら純度ラジオを表示する
            recipeSelectWindow.ChangeVisibiilityRadios(productionRecipe.IsOre);

            // 要求素材を取得
            productionRecipe.RequiredMaterials.Clear();

            List <string[]> requiredMaterials = dbSelect.SelectData("RequiredMaterials RM", "LEFT JOIN Materials M ON RM.RequiredMaterialId = M.MaterialId", new string[] { "RequiredMaterialId", "Name", "NumberOfRequiredMaterial" }, "RecipeId = @RECIPEID", new List <string[]>()
            {
                new string[] { "@RECIPEID", productionRecipe.RecipeId }
            }, null);

            foreach (string[] required in requiredMaterials)
            {
                RequiredMaterial requiredMaterial = new RequiredMaterial();
                requiredMaterial.MaterialId       = required[0];
                requiredMaterial.Name             = required[1];
                requiredMaterial.NumberOfRequired = int.Parse(required[2]);

                productionRecipe.RequiredMaterials.Add(requiredMaterial);
            }

            recipeSelectWindow.BorderAttentionOnRecipeSelect(false);

            // 要求素材を表示させる
            RequiedMaterialsChange();

            // 施設リストを取得して入れる
            SetBuildingListToCombox(productionRecipe.BuildingToUse.TypeId);
        }
        /// <summary>
        /// 建物のリストを取得してコンボボックスに入れる
        /// </summary>
        /// <param name="typeId">指定する建物のタイプID</param>
        private void SetBuildingListToCombox(string typeId)
        {
            DBSelect        dbSelect  = new DBSelect();
            List <string[]> Buildings = dbSelect.SelectData("ProductionBuildings", null, new string[] { "Name" }, "TypeId = @TYPEID", new List <string[]>()
            {
                new string[] { "@TypeId", typeId }
            }, null);

            recipeSelectWindow.SetBuildingListToComboBox(Buildings);
        }
        /// <summary>
        ///     Метод для установки параметров элемента управления DBSelect
        /// </summary>
        /// <param name="ctrl">Элемент управления</param>
        /// <param name="param_mode">Имя параметры фильтра элемента управления</param>
        /// <param name="param_value">Имя параметры значения элемента управления</param>
        public void setSelectCtrlParameterValue(DBSelect ctrl, string param_mode, string param_value)
        {
            var isRequiredMode  = false;
            var isRequiredValue = false;

            var mode_value = param_mode == null
                ? (selectModeOffset + (int)SelectEnum.Contain).ToString()
                : getParameterValue(param_mode, out isRequiredMode, ((int)SelectEnum.Contain).ToString());

            setSelectCtrlValue(ctrl, mode_value, getParameterValue(param_value, out isRequiredValue, string.Empty),
                               isRequiredValue);
        }
        /// <summary>
        /// 生産する素材を指定してレシピ名を取得してコンボボックスに入れる
        /// </summary>
        private void SetRecipeListToCombox(string materialId)
        {
            DBSelect        dbSelect    = new DBSelect();
            List <string[]> recipeNames = dbSelect.SelectData("MaterialRecipes", null, new string[] { "Name" }, "MaterialId = @MATERIALID", new List <string[]>()
            {
                new string[] { "@MATERIALID", materialId }
            }, null);

            recipeSelectWindow.SetRecipeNameListToComboBox(recipeNames);

            recipeSelectWindow.Combobox_Recipe.SelectedIndex = 0;
        }
Exemplo n.º 9
0
        internal static DataSet ExecDisconnected(string spName, Databases sDb)
        {
            DataSet ds = new DataSet();

            IDbConnection cnn = DBSelect.CreateConnection(sDb);
            IDbCommand    cmd = CommandSelect.CreateCommand(sDb);

            cmd.CommandText = spName;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection  = cnn;
            IDataAdapter adapter = AdapterSelect.CreateAdapter(sDb, cmd);

            adapter.Fill(ds);

            return(ds);
        }
Exemplo n.º 10
0
        private void buttonExe_Click(object sender, RoutedEventArgs e)
        {
            DBContext_CFL _context = DBContext_CFL.Instance;

            Defunt dft = null;

            //var select = new DBSelect<Defunt>("*")
            //    .Where
            //    (
            //        new MemberPath(()=>dft.Identite), "=", new DBSelect().From("identite").Where

            //        (
            //            new MemberPath(()=>((Identite)null).Nom), "=", new DBValue("DUPONT3"),
            //            "or", new MemberPath(()=>dft.Identite.Nom), "=", new DBValue("DUPONT2")
            //        ),

            //        "or",

            //        new MemberPath(()=>dft.Pouvoir), "=", new DBSelect().From("pouvoir").Where
            //        (
            //            new MemberPath(()=>dft.Pouvoir.Identite), "=", new DBSelect().From("identite").Where
            //            (
            //                new MemberPath(()=>((Identite)null).Nom), "==", new DBValue("POUVOIR4"),
            //                "and", new MemberPath(()=>((Defunt)null).Pouvoir.Identite.Prenom), "==", new DBValue("Pouvoir4")
            //            )
            //        )
            //     )
            //    ;

            DBSelect _select = new DBSelect("*").From("defunt")
                               .Where
                               (
                new DBOnList(() => ((Defunt)null).OperationsFuneraires)
                .Contains
                (
                    new DBSelect().From("inhumation").Where
                    (
                        new MemberPath(() => ((Inhumation)null).date), "=", new DBValue(new DateTime(2017, 12, 6))
                    )
                )

                               );

            string query = _select.Query();

            List <Base> dfts = new DBLoader(_context.Connection, _context).IncludeCascade().ToList(_select);
        }
        /// <summary>
        /// レシピ選択ウィンドウを開く(生産品、生産数指定)
        /// </summary>
        /// <param name="materialName"></param>
        /// <param name="numberOfProduction"></param>
        public void ShowRecipeSelectWindow(string materialName, double numberOfProduction, Window owner)
        {
            // 親ウィンドウの中央に表示させたい
            recipeSelectWindow.Owner = owner;
            recipeSelectWindow.WindowStartupLocation = WindowStartupLocation.CenterScreen;

            // 素材IDを検索
            DBSelect        dbSelect   = new DBSelect();
            List <string[]> materialId = dbSelect.SelectData("Materials", null, new string[] { "MaterialId" }, "Name = @NAME", new List <string[]> {
                new string[] { "@NAME", materialName }
            }, null);

            SetRecipeListToCombox(materialId[0][0]);

            // 生産数を設定
            recipeSelectWindow.TextBox_RequiredNumberOfProduction.Text = numberOfProduction.ToString();
            Console.WriteLine("Num:" + numberOfProduction);

            recipeSelectWindow.ShowDialog();
        }
Exemplo n.º 12
0
        internal static IDataReader ExecReader(string spName, Databases sDb)
        {
            IDataReader DataReader;

            IDbConnection cnn = DBSelect.CreateConnection(sDb);
            IDbCommand    cmd = CommandSelect.CreateCommand(sDb);

            if (cnn.State == ConnectionState.Open)
            {
                cnn.Close();
                cmd.Parameters.Clear();
            }



            if (cmd != null)
            {
                cnn.Close();
                cmd.Parameters.Clear();
            }


            cmd.CommandText = spName;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection  = cnn;

            if (cnn.State == ConnectionState.Closed)
            {
                cnn.Open();
            }

            DataReader = cmd.ExecuteReader();

            //DataReader.Close();

            return(DataReader);
        }
        /// <summary>
        /// 使用施設が変更された
        /// </summary>
        private void BuildingSelected(object sender, EventArgs e)
        {
            ComboBox comboBox = (ComboBox)sender;

            if (comboBox.Items.Count > 0)
            {
                string selected = comboBox.SelectedItem.ToString();

                // 施設の検索
                DBSelect        dbSelect  = new DBSelect();
                List <string[]> buildings = dbSelect.SelectData("ProductionBuildings", null, new string[] { "BuildingId", "Name", "RequiredPower", "Efficiency" }, "Name = @NAME", new List <string[]>()
                {
                    new string[] { "@NAME", selected }
                }, null);

                string[] building = buildings[0];
                productionRecipe.BuildingToUse.BuildingId = building[0];
                productionRecipe.BuildingToUse.Name       = building[1];
                productionRecipe.BuildingToUse.PowerUsage = int.Parse(building[2]);
                productionRecipe.BuildingToUse.Efficiency = int.Parse(building[3]);

                ProductionStatesChanged();
            }
        }