Ejemplo n.º 1
0
        private void InsertingEditing()
        {
            switch (mission)
            {
            case "insert":
            {
                try
                {
                    DatabaseManager dbManager = new DatabaseManager();
                    switch (entity)
                    {
                    case "Ingredients":
                    {
                        if (dbManager.CheckId("id=" + fields[0].Text, entity))
                        {
                            throw new Exception("Такой id уже существует!");
                        }
                        dbManager.AddIngred(fields[0].Text, fields[1].Text);
                        break;
                    }

                    case "User":
                    {
                        if (dbManager.CheckId("Login='******'", entity))
                        {
                            throw new Exception("Такой логин уже существует!");
                        }
                        bool iA = false;
                        if (fields[2].Text == "0" || fields[2].Text == "False")
                        {
                            iA = false;
                        }
                        if (fields[2].Text == "1" || fields[2].Text == "True")
                        {
                            iA = true;
                        }
                        User user = new User(fields[0].Text, fields[1].Text, iA, int.Parse(fields[3].Text), null);
                        dbManager.AddUser(user);
                        break;
                    }

                    case "Category":
                    {
                        if (dbManager.CheckId("id=" + fields[0].Text, entity))
                        {
                            throw new Exception("Такой ID уже существует!");
                        }
                        if (dbManager.CheckId("Name='" + fields[1].Text + "'", entity))
                        {
                            throw new Exception("Такое название уже существует!");
                        }
                        Category cat = new Category(int.Parse(fields[0].Text), fields[1].Text, int.Parse(fields[2].Text));
                        dbManager.AddCategory(cat);
                        break;
                    }

                    case "Recipe":
                    {
                        if (dbManager.CheckId("id=" + fields[0].Text, entity))
                        {
                            throw new Exception("Такой ID уже существует!");
                        }
                        if (dbManager.CheckId("Name='" + fields[2].Text + "'", entity))
                        {
                            throw new Exception("Такое название уже существует!");
                        }
                        string[]      ingreds = bigFields[0].Text.Split(',');
                        List <string> ingrs   = new List <string>();
                        for (int i = 0; i < ingreds.Length; i++)
                        {
                            ingrs.Add(ingreds[i]);
                        }
                        Image  image  = new Bitmap(fields[1].Text);
                        Recipe recipe = new Recipe(int.Parse(fields[0].Text), image, fields[2].Text, ingrs, bigFields[1].Text, int.Parse(fields[5].Text), int.Parse(fields[6].Text), int.Parse(fields[7].Text));
                        dbManager.AddRecipe(recipe);
                        break;
                    }
                    }
                }
                catch (Exception ex)
                {
                    InfoForm iform = new InfoForm(ex.Message, Volume);
                    iform.Show();
                }
                break;
            }

            case "edit":
            {
                try
                {
                    DatabaseManager dbManager = new DatabaseManager();
                    switch (entity)
                    {
                    case "User":
                    {
                        dbManager.Update(entity, "Pass", fields[1].Text, "Login", fields[0].Text);
                        dbManager.Update(entity, "IsAdmin", fields[2].Text, "Login", fields[0].Text);
                        dbManager.Update(entity, "Points", fields[3].Text, "Login", fields[0].Text);
                        break;
                    }

                    case "Category":
                    {
                        if (dbManager.CheckId("Name='" + fields[1].Text + "'", entity) && fields[0].Text != recordId)
                        {
                            throw new Exception("Такое название уже существует!");
                        }
                        dbManager.Update(entity, "Name", fields[1].Text, "id", fields[0].Text);
                        dbManager.Update(entity, "Level", fields[2].Text, "id", fields[0].Text);
                        break;
                    }

                    case "Recipe":
                    {
                        if (dbManager.CheckId("Name='" + fields[2].Text + "'", entity) && fields[0].Text != recordId)
                        {
                            throw new Exception("Такое название уже существует!");
                        }
                        dbManager.Update(entity, "Name", fields[2].Text, "id", fields[0].Text);
                        dbManager.Update(entity, "Ingredients", bigFields[0].Text, "id", fields[0].Text);
                        dbManager.Update(entity, "Description", bigFields[1].Text, "id", fields[0].Text);
                        dbManager.Update(entity, "Level", fields[5].Text, "id", fields[0].Text);
                        dbManager.Update(entity, "Points", fields[6].Text, "id", fields[0].Text);
                        dbManager.Update(entity, "Category", fields[7].Text, "id", fields[0].Text);
                        break;
                    }
                    }
                }
                catch (Exception ex)
                {
                    InfoForm iform = new InfoForm(ex.Message, Volume);
                    iform.Show();
                }
                break;
            }
            }
        }