private void InitializeClientList()
        {
            _clientItems = new List<TreeNode>();

            using (var db = new AwesomeContext())
            {
                db.Clients.OrderBy(x => x.Name).ToList().ForEach(x =>
                {
                    var item = new TreeNode()
                    {
                        Text = x.Name
                    };
                    //x.Projects = db.Projects.Where(y => y.Client == x);
                    if (x.Projects != null)
                    {
                        foreach (Project proj in x.Projects)
                        {
                            item.Nodes.Add(new TreeNode()
                            {
                                Text = proj.Name
                            });
                        }
                    }
                    _clientItems.Add(item);
                });
            }

            tvListClients.Nodes.Clear();
            tvListClients.Nodes.AddRange(_clientItems.ToArray());
        }
        private void addProjectToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (var db = new AwesomeContext())
            {
                var selectedClient = db.Clients.SingleOrDefault(x => x.Name == tvListClients.SelectedNode.Text);

                var project = new Project
                {
                    Finished = false,
                    Client = selectedClient
                };

                var addProjectForm = new AddProjectForm(project, db)
                {
                    Text = Resources.CreateNewProjectDialogText
                };

                if (addProjectForm.ShowDialog() == DialogResult.OK)
                {

                    db.Projects.Add(project);
                    db.SaveChanges();
                    InitializeClientList();
                }
            }
        }
        /// <summary>
        /// Edit a Client entry
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tvListClients_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            lock (_lock)
            {
                using (var db = new AwesomeContext())
                {

                    var selectedItem = ((TreeView)sender).SelectedNode.Text;// SelectedItems[0].Text;

                    var client = db.Clients.SingleOrDefault(x => x.Name == selectedItem);
                    var editClientForm = new AddClientFrm(client)
                    {
                        Text = Resources.EditClientDialogText
                    };

                    if (editClientForm.ShowDialog() == DialogResult.OK)
                    {
                        db.SaveChanges();
                    }
                }
                InitializeClientList();
            }
        }
        /// <summary>
        /// Enter a new Client entry
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void newClientToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var client = new Client();
            var addClientForm = new AddClientFrm(client)
                {
                    Text = Resources.CreateNewClientDialogText
                };

            if (addClientForm.ShowDialog() == DialogResult.OK)
            {
                using (var db = new AwesomeContext())
                {
                    db.Clients.Add(client);
                    db.SaveChanges();
                }
                InitializeClientList();
            }
        }