コード例 #1
0
        private void reportItem_Click(object sender, EventArgs e)
        {
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                DocX      document  = DocX.Create(saveFileDialog.FileName);
                Paragraph paragraph = document.InsertParagraph();
                paragraph.FontSize(14);
                paragraph.Append(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss"));
                paragraph.AppendLine("Отчет за месяц").Alignment = Alignment.center;
                Paragraph content = document.InsertParagraph();
                using (MySqlApplicationContext db = new MySqlApplicationContext())
                {
                    content.Append("Количество выполненных проектов:");
                    foreach (ProjectType item in db.ProjectTypes.Include(item => item.Projects)
                             .ThenInclude(item => item.ProjectStatus).ToList())
                    {
                        content.AppendLine(item.Name + ": " + item.Projects.Count(project =>
                                                                                  project.ProjectStatus.Name == "Готово" &&
                                                                                  project.FinishDate.Month == DateTime.Now.Month));
                    }

                    content.AppendLine("Заработано денег: " + db.Projects.Include(item => item.ProjectType)
                                       .Include(item => item.ProjectStatus)
                                       .Where(item =>
                                              item.FinishDate.Month == DateTime.Now.Month &&
                                              item.ProjectStatus.Name == "Готово")
                                       .Sum(item => item.ProjectType.Price));
                }

                document.Save();
            }
        }
コード例 #2
0
        private void dataGridView_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Delete)
            {
                using (MySqlApplicationContext db = new MySqlApplicationContext())
                {
                    foreach (DataGridViewRow item in dataGridView.SelectedRows)
                    {
                        switch (tabControl.SelectedIndex)
                        {
                        case 0:
                            db.Projects.Remove(_projectList.Find(search =>
                                                                 search.Id == int.Parse(item.Cells[0].Value.ToString())));
                            break;

                        case 1:
                            db.Employees.Remove(_employeeList.Find(search =>
                                                                   search.Id == int.Parse(item.Cells[0].Value.ToString())));
                            break;

                        case 2:
                            db.Customers.Remove(_customerList.Find(search =>
                                                                   search.Id == int.Parse(item.Cells[0].Value.ToString())));
                            break;
                        }

                        dataGridView.Rows.Remove(item);
                    }

                    db.SaveChanges();
                    UpdateData();
                }
            }
        }
コード例 #3
0
        public void UpdateData()
        {
            using (MySqlApplicationContext db = new MySqlApplicationContext())
            {
                projectType.Items.Clear();
                employeePosition.Items.Clear();
                employeeTeam.Items.Clear();
                projectTeam.Items.Clear();
                projectCustomer.Items.Clear();
                projectStatus.Items.Clear();
                projectType.Items.Add("");
                employeePosition.Items.Add("");
                employeeTeam.Items.Add("");
                projectTeam.Items.Add("");
                projectCustomer.Items.Add("");
                projectStatus.Items.Add("");

                foreach (ProjectType item in db.ProjectTypes)
                {
                    projectType.Items.Add(item.Name);
                }

                foreach (Position item in db.Positions)
                {
                    employeePosition.Items.Add(item.Name);
                }

                foreach (Team item in db.Teams)
                {
                    employeeTeam.Items.Add(item.Name);
                    projectTeam.Items.Add(item.Name);
                }

                foreach (Customer item in db.Customers)
                {
                    projectCustomer.Items.Add(item.FirstName + " " + item.LastName);
                }

                foreach (ProjectStatus item in db.ProjectStatuses)
                {
                    projectStatus.Items.Add(item.Name);
                }

                _projectList  = db.Projects.ToList();
                _employeeList = db.Employees.ToList();
                _customerList = db.Customers.Include(item => item.Projects).ToList();
            }
        }
コード例 #4
0
 private void PriceForm_Load(object sender, EventArgs e)
 {
     using (MySqlApplicationContext db = new MySqlApplicationContext())
     {
         dataGridView.ColumnCount     = 4;
         dataGridView.Columns[0].Name = "ID";
         dataGridView.Columns[1].Name = "Название";
         dataGridView.Columns[2].Name = "Цена";
         dataGridView.Columns[3].Name = "Срок выполнения(в месяцах)";
         foreach (ProjectType item in db.ProjectTypes)
         {
             dataGridView.Rows.Add(
                 item.Id,
                 item.Name,
                 item.Price,
                 item.Term
                 );
         }
     }
 }
コード例 #5
0
        private void EditButton(object sender, EventArgs e)
        {
            using (MySqlApplicationContext db = new MySqlApplicationContext())
            {
                switch (createTypeComboBox.SelectedIndex)
                {
                case 0:
                    if (!Validate(0))
                    {
                        return;
                    }
                    Project project = db.Projects.First(item => item.Id == _id);
                    project.Team          = _teams[projectTeamComboBox.SelectedIndex];
                    project.ProjectStatus = _projectStatuses[projectStatusComboBox.SelectedIndex];
                    project.ProjectType   = _projectTypes[projectTypeComboBox.SelectedIndex];
                    project.Customer      = _customers[projectCustomerComboBox.SelectedIndex];
                    project.OrderDate     = projectOrderDatePicker.Value;
                    project.FinishDate    =
                        project.OrderDate.AddMonths(_projectTypes[projectTypeComboBox.SelectedIndex].Term);
                    db.SaveChanges();
                    project = db.Projects
                              .Include(item => item.Team)
                              .ThenInclude(item => item.Employees)
                              .Include(item => item.ProjectStatus)
                              .Include(item => item.ProjectType)
                              .Include(item => item.Customer)
                              .ThenInclude(item => item.Projects)
                              .First(item => item.Id == project.Id);
                    ReturnValues = new object[]
                    {
                        project.Id,
                        project.Team.Name,
                        project.OrderDate.ToString("dd.MM.yyyy"),
                        project.FinishDate.ToString("dd.MM.yyyy"),
                        project.ProjectStatus.Name,
                        project.ProjectType.Name,
                        project.Customer.FirstName + " " + project.Customer.LastName,
                        project.Team.Employees.Count + project.Customer.Projects.Count + project.ProjectType.Price
                    };
                    break;

                case 1:
                    if (!Validate(1))
                    {
                        return;
                    }
                    Employee employee = db.Employees.First(item => item.Id == _id);
                    employee.Team        = _teams[employeeTeamComboBox.SelectedIndex];
                    employee.Position    = _positions[employeePositionComboBox.SelectedIndex];
                    employee.FirstName   = employeeFirstNameTextBox.Text;
                    employee.LastName    = employeeLastNameTextBox.Text;
                    employee.BirthDate   = employeeBirthDatePicker.Value;
                    employee.HomeAddress = employeeHomeAddressTextBox.Text;
                    employee.Phone       = employeePhoneTextBox.Text;
                    ReturnValues         = new object[]
                    {
                        employee.Id,
                        employee.Team.Name,
                        employee.Position.Name,
                        employee.FirstName + " " + employee.LastName,
                        employee.BirthDate.ToString("dd.MM.yyyy"),
                        employee.HomeAddress,
                        employee.Phone,
                        employee.ApplyDate.ToString("dd.MM.yyyy"),
                        (DateTime.Today - employee.ApplyDate).Days
                    };
                    break;

                case 2:
                    if (!Validate(2))
                    {
                        return;
                    }
                    Customer customer = db.Customers.First(item => item.Id == _id);
                    customer.FirstName = customerFirstNameTextBox.Text;
                    customer.LastName  = customerLastNameTextBox.Text;
                    customer.Email     = customerEmailTextBox.Text;
                    customer.Phone     = customerPhoneTextBox.Text;
                    db.SaveChanges();
                    customer = db.Customers
                               .Include(item => item.Projects)
                               .First(item => item.Id == customer.Id);
                    ReturnValues = new object[]
                    {
                        customer.Id,
                        customer.FirstName + " " + customer.LastName,
                        customer.Email,
                        customer.Phone,
                        customer.Projects.Count
                    };
                    break;
                }

                db.SaveChanges();
            }

            Close();
        }
コード例 #6
0
        public AddForm(Point position, bool edit = false, int editIndex = 0, object element = null)
        {
            InitializeComponent();
            _formPosition = position;
            using (MySqlApplicationContext db = new MySqlApplicationContext())
            {
                foreach (Team item in db.Teams)
                {
                    projectTeamComboBox.Items.Add(item.Name);
                    employeeTeamComboBox.Items.Add(item.Name);
                }

                foreach (ProjectStatus item in db.ProjectStatuses)
                {
                    projectStatusComboBox.Items.Add(item.Name);
                }

                foreach (ProjectType item in db.ProjectTypes)
                {
                    projectTypeComboBox.Items.Add(item.Name);
                }

                foreach (Customer item in db.Customers)
                {
                    projectCustomerComboBox.Items.Add(item.FirstName + " " + item.LastName);
                }

                foreach (Position item in db.Positions)
                {
                    employeePositionComboBox.Items.Add(item.Name);
                }

                _teams           = db.Teams.ToList();
                _customers       = db.Customers.ToList();
                _projectStatuses = db.ProjectStatuses.ToList();
                _projectTypes    = db.ProjectTypes.ToList();
                _positions       = db.Positions.ToList();
            }

            if (edit)
            {
                createButton.Text   = @"Изменить";
                createButton.Click += EditButton;
                Text = @"Изменить";
                createTypeComboBox.SelectedIndex = editIndex;
                createTypeComboBox.Enabled       = false;
                switch (editIndex)
                {
                case 0:
                    if (element is Project project)
                    {
                        _id = project.Id;
                        projectTeamComboBox.SelectedItem     = project.Team.Name;
                        projectOrderDatePicker.Value         = project.OrderDate;
                        projectStatusComboBox.SelectedItem   = project.ProjectStatus.Name;
                        projectTypeComboBox.SelectedItem     = project.ProjectType.Name;
                        projectCustomerComboBox.SelectedItem =
                            project.Customer.FirstName + " " + project.Customer.LastName;
                    }

                    break;

                case 1:
                    if (element is Employee employee)
                    {
                        _id = employee.Id;
                        employeeTeamComboBox.SelectedItem     = employee.Team.Name;
                        employeePositionComboBox.SelectedItem = employee.Position.Name;
                        employeeFirstNameTextBox.Text         = employee.FirstName;
                        employeeLastNameTextBox.Text          = employee.LastName;
                        employeeBirthDatePicker.Value         = employee.BirthDate;
                        employeeHomeAddressTextBox.Text       = employee.HomeAddress;
                        employeePhoneTextBox.Text             = employee.Phone;
                    }

                    break;

                case 2:
                    if (element is Customer customer)
                    {
                        _id = customer.Id;
                        customerFirstNameTextBox.Text = customer.FirstName;
                        customerLastNameTextBox.Text  = customer.LastName;
                        customerEmailTextBox.Text     = customer.Email;
                        customerPhoneTextBox.Text     = customer.Phone;
                    }

                    break;
                }
            }
            else
            {
                createButton.Text   = @"Добавить";
                createButton.Click += AddButton;
                Text = @"Добавить";
                createTypeComboBox.SelectedIndex = 0;
            }
        }
コード例 #7
0
        static void Main()
        {
            Console.Write("Инициализация базы данных... ");
            using (MySqlApplicationContext db = new MySqlApplicationContext())
            {
                Console.Write("OK\nУдаление старых данных... ");
                db.Projects.RemoveRange(db.Projects);
                db.SaveChanges();
                db.Customers.RemoveRange(db.Customers);
                db.SaveChanges();
                db.Employees.RemoveRange(db.Employees);
                db.SaveChanges();
                db.Teams.RemoveRange(db.Teams);
                db.SaveChanges();
                db.Positions.RemoveRange(db.Positions);
                db.SaveChanges();
                db.ProjectTypes.RemoveRange(db.ProjectTypes);
                db.SaveChanges();
                db.ProjectStatuses.RemoveRange(db.ProjectStatuses);
                db.SaveChanges();
                db.Database.ExecuteSqlRaw(
                    "ALTER TABLE customers AUTO_INCREMENT = 1;" +
                    "ALTER TABLE employees AUTO_INCREMENT = 1;" +
                    "ALTER TABLE teams AUTO_INCREMENT = 1;" +
                    "ALTER TABLE positions AUTO_INCREMENT = 1;" +
                    "ALTER TABLE projecttypes AUTO_INCREMENT = 1;" +
                    "ALTER TABLE projects AUTO_INCREMENT = 1;" +
                    "ALTER TABLE projectstatuses AUTO_INCREMENT = 1;");
                db.SaveChanges();
                Console.Write("OK\nДобавление типов проектов... ");

                db.ProjectTypes.AddRange(
                    new ProjectType()
                {
                    Name = "Архитектура", Price = 1000, Term = 24
                },
                    new ProjectType()
                {
                    Name = "Дизайн интерьеров", Price = 100, Term = 1
                },
                    new ProjectType()
                {
                    Name = "Разработка концепции", Price = 50, Term = 1
                },
                    new ProjectType()
                {
                    Name = "Проектирование", Price = 100, Term = 12
                },
                    new ProjectType()
                {
                    Name = "Авторский надзор", Price = 100, Term = 1
                },
                    new ProjectType()
                {
                    Name = "Согласование в службах", Price = 50, Term = 1
                }
                    );
                db.SaveChanges();
                Console.Write("OK\nДобавление статусов проектов... ");

                db.ProjectStatuses.AddRange(
                    new ProjectStatus()
                {
                    Name = "Готово"
                },
                    new ProjectStatus()
                {
                    Name = "Отменено"
                },
                    new ProjectStatus()
                {
                    Name = "В процессе"
                },
                    new ProjectStatus()
                {
                    Name = "Не начато"
                }
                    );
                db.SaveChanges();
                Console.Write("OK\nДобавление должностей... ");

                db.Positions.AddRange(
                    new Position()
                {
                    Name = "Архитектор"
                },
                    new Position()
                {
                    Name = "Директор"
                },
                    new Position()
                {
                    Name = "Строитель"
                },
                    new Position()
                {
                    Name = "Бухгалтер"
                },
                    new Position()
                {
                    Name = "Представитель банка"
                }
                    );
                db.SaveChanges();
                Console.Write("OK\nГенерация команд... ");

                for (int i = 0; i < 5; i++)
                {
                    Faker faker = new Faker("ru");
                    db.Teams.Add(new Team()
                    {
                        Name = faker.Address.City()
                    });
                }

                db.SaveChanges();
                Console.Write("OK\nГенерация сотрудников... ");

                for (int i = 0; i < 50; i++)
                {
                    Faker faker = new Faker("ru");
                    db.Employees.Add(new Employee()
                    {
                        FirstName   = faker.Person.FirstName,
                        LastName    = faker.Person.LastName,
                        ApplyDate   = faker.Date.Past(),
                        BirthDate   = faker.Date.Past(30, new DateTime(DateTime.Now.Year - 18, 1, 1)),
                        HomeAddress = faker.Address.FullAddress(),
                        Phone       = faker.Phone.PhoneNumber(),
                        PositionId  = faker.Random.Number(1, db.Positions.Count()),
                        TeamId      = faker.Random.Number(1, db.Teams.Count())
                    });
                }

                db.SaveChanges();
                Console.Write("OK\nГенерация клиентов... ");

                for (int i = 0; i < 20; i++)
                {
                    Faker faker = new Faker("ru");
                    db.Customers.Add(new Customer()
                    {
                        FirstName = faker.Person.FirstName,
                        LastName  = faker.Person.LastName,
                        Email     = faker.Person.Email,
                        Phone     = faker.Phone.PhoneNumber()
                    });
                }

                db.SaveChanges();
                Console.Write("OK\nГенерация проектов... ");

                for (int i = 0; i < 100; i++)
                {
                    Faker    faker         = new Faker("ru");
                    int      teamId        = faker.Random.Number(1, db.Teams.Count());
                    int      projectTypeId = faker.Random.Number(1, db.ProjectTypes.Count());
                    DateTime orderDate     = faker.Date.Past(1, new DateTime(DateTime.Now.Year, 1, 1));
                    db.Projects.Add(new Project()
                    {
                        CustomerId = faker.Random.Number(1, db.Customers.Count()),
                        TeamId     = teamId,
                        OrderDate  = orderDate,
                        FinishDate = faker.Date.Future(1,
                                                       orderDate.AddMonths(db.ProjectTypes.ToList()[projectTypeId - 1].Term)),
                        ProjectStatusId = faker.Random.Number(1, db.ProjectStatuses.Count()),
                        ProjectTypeId   = projectTypeId
                    });
                }

                db.SaveChanges();
                Console.Write("OK\nГенерация прошла успешно!");
                Thread.Sleep(3000);
            }
        }