private void buttonRefuseTechnicalTask_Click(object sender, RoutedEventArgs e)
 {
     if (MessageBox.Show("Вы точно хотите отказаться от выполнения данного задания?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
     {
         //  technicalTask
         var logBook = technicalTask.Logbook.ToList().Where(v => v.userLogin == MainTabItem.MainWindow.User.login && v.userType == nameof(Logbook_userType.executor)).FirstOrDefault();
         if (logBook == null)
         {
             throw new NullReferenceException();
         }
         SitesCreateEntities.GetContext().Logbook.Remove(logBook);
         try
         {
             SitesCreateEntities.GetContext().SaveChanges();
             MainTabItem.ExecuteShowPrevPage();
         }
         catch (Exception ex)
         {
             MessageBox.Show(
                 ex.Message,
                 "Error",
                 MessageBoxButton.OK,
                 MessageBoxImage.Error);
         }
     }
 }
        private void buttonRightsAdd_Click(object sender, RoutedEventArgs e)
        {
            var currentLayoutAccess = (LayoutAccess)((Button)sender).DataContext;

            if (!currentLayoutAccess.haveAccess)
            {
                if (MessageBox.Show("Вы точно хотите дать данному пользователю доступ к макету?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                {
                    currentLayoutAccess.haveAccess = true;
                }
            }
            else
            {
                if (MessageBox.Show("Вы точно хотите изменить права данного пользователя?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                {
                    currentLayoutAccess.isOwner = !currentLayoutAccess.isOwner;
                }
            }
            try
            {
                SitesCreateEntities.GetContext().SaveChanges();
                SitesCreateEntities.GetContext().ClearStateAndReloadAll();
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    ex.Message,
                    "Error",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);
            }
            Update();
        }
        /// <summary>
        /// Update siteGroup
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SampleSitesList_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var item = ItemsControl.ContainerFromElement(sender as ListBox, e.OriginalSource as DependencyObject) as ListBoxItem;

            if (item != null)
            {
                var currentSampleSite = (SampleSitesGroup)item.DataContext;
                var dialog            = new Dialog("Измените примечания.", currentSampleSite.note);
                if (dialog.ShowDialog() == true)
                {
                    currentSampleSite.note = dialog.Answer;
                    try
                    {
                        SitesCreateEntities.GetContext().SaveChanges();
                        SitesCreateEntities.GetContext().ChangeTracker.Entries().ToList().ForEach(v => v.Reload());
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        SitesCreateEntities.GetContext().ClearStateAndReloadAll();
                    }
                }
                Update();
                //  MainTabItem.AddChildUserControl(new EditDemandContent(MainTabItem, technicalTask, currentDemand));
            }
        }
 private void buttonDelete_Click(object sender, RoutedEventArgs e)
 {
     if (MessageBox.Show("Вы уверены, что хотите удалить данный макет?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes && !createFlag)
     {
         SitesCreateEntities.GetContext().SiteLayout.Remove(siteLayout);
         try
         {
             if (File.Exists(siteLayout.fileName))
             {
                 File.Delete(siteLayout.fileName);
             }
             SitesCreateEntities.GetContext().SaveChanges();
             MessageBox.Show(
                 "Макет успешно удален!",
                 "Success",
                 MessageBoxButton.OK,
                 MessageBoxImage.Information);
             MainTabItem.ExecuteShowPrevPage();
         }
         catch (Exception ex)
         {
             MessageBox.Show(
                 ex.Message,
                 "Error",
                 MessageBoxButton.OK,
                 MessageBoxImage.Error);
         }
     }
 }
Beispiel #5
0
 private void ButtonDelete_Click(object sender, RoutedEventArgs e)
 {
     if (MessageBox.Show("Вы уверены, что хотите удалить данного пользователя?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
     {
         try
         {
             SitesCreateEntities.GetContext().User.Remove(user);
             SitesCreateEntities.GetContext().SaveChanges();
             MessageBox.Show(
                 "Пользователь успешно удален!",
                 "Success",
                 MessageBoxButton.OK,
                 MessageBoxImage.Information);
             MainTabItem.ExecuteLogout();
         }
         catch (Exception ex)
         {
             MessageBox.Show(
                 ex.Message,
                 "Error",
                 MessageBoxButton.OK,
                 MessageBoxImage.Error);
         }
     }
 }
Beispiel #6
0
 public override void Update()
 {
     datagridSiteLayoutList.ItemsSource = null;
     //  all self layouts of this task
     datagridSiteLayoutList.ItemsSource = SitesCreateEntities.GetContext().LayoutAccess.ToList()
                                          .Where(v => v.executerId == logbook.id && v.haveAccess);
 }
 public override void Update()
 {
     SampleSitesList.ItemsSource     = null;
     SampleSitesList.ItemsSource     = demand.SampleSitesGroup;
     SampleSitesCombobox.ItemsSource = SitesCreateEntities.GetContext().SampleSite.ToList()
                                       .Except(SitesCreateEntities.GetContext().SampleSitesGroup.ToList().Where(v => v.demandId == demand.id).Select(v => v.SampleSite));
 }
        private void ButtonSave_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Вы уверены, что хотите сохранить данное ТЗ?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                StringBuilder errors = new StringBuilder();

                if (
                    String.IsNullOrWhiteSpace(name.Text)
                    )
                {
                    errors.AppendLine("Вы не заполнили одно или несколько важных полей!");
                }

                if (errors.Length != 0)
                {
                    MessageBox.Show(
                        errors.ToString(),
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                    return;
                }


                if (createFlag)
                {
                    technicalTask.createDatetime = DateTime.Now;
                    technicalTask.Status         = TechnicalTask_status.processing;
                    SitesCreateEntities.GetContext().TechnicalTask.Add(technicalTask);
                }

                try
                {
                    SitesCreateEntities.GetContext().SaveChanges();
                    if (createFlag)
                    {
                        var newLogBook = new Logbook();
                        newLogBook.technicalTaskId = technicalTask.id;
                        newLogBook.userLogin       = MainTabItem.MainWindow.User.login;
                        newLogBook.userType        = nameof(Logbook_userType.customer);
                        SitesCreateEntities.GetContext().Logbook.Add(newLogBook);
                        SitesCreateEntities.GetContext().SaveChanges();
                    }
                    MessageBox.Show(
                        "Данные успешно обновлены!",
                        "Success",
                        MessageBoxButton.OK,
                        MessageBoxImage.Information);
                    MainTabItem.ExecuteShowPrevPage();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                }
            }
        }
        private void ButtonStatusChange_Click(object sender, RoutedEventArgs e)
        {
            if (createFlag)
            {
                return;
            }
            var newStatus = (TechnicalTask_status)((Button)sender).Tag;

            if (
                MessageBox.Show("Вы уверены, что хотите изменить статус для данного ТЗ?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes
                )
            {
                technicalTask.Status = newStatus;
                try
                {
                    SitesCreateEntities.GetContext().SaveChanges();
                    MainTabItem.ExecuteShowPrevPage();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                }
            }
        }
Beispiel #10
0
        private void buttonDelete_Click(object sender, RoutedEventArgs e)
        {
            var deletedObjects = datagridUserList.SelectedItems.Cast <User>().ToList();

            if (MessageBox.Show($"Вы точно хотите удалить следующие {deletedObjects.Count()} элементов?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                try
                {
                    SitesCreateEntities.GetContext().User.RemoveRange(deletedObjects);
                    SitesCreateEntities.GetContext().SaveChanges();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                }
                finally
                {
                    SitesCreateEntities.GetContext().ClearStateAndReloadAll();
                    Update();
                }
            }
        }
        private void buttonDemandAdd_Click(object sender, RoutedEventArgs e)
        {
            var currentTechnicalTask = (TechnicalTask)((Button)sender).DataContext;

            if (MessageBox.Show("Вы уверены, что хотите взять данное задание?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                var newLogbook = new Logbook();
                newLogbook.userLogin       = MainTabItem.MainWindow.User.login;
                newLogbook.userType        = nameof(Logbook_userType.executor);
                newLogbook.technicalTaskId = currentTechnicalTask.id;
                try
                {
                    SitesCreateEntities.GetContext().Logbook.Add(newLogbook);
                    SitesCreateEntities.GetContext().SaveChanges();
                    MessageBox.Show(
                        "Вы успешно взяли техническое задание!",
                        "Success",
                        MessageBoxButton.OK,
                        MessageBoxImage.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                }
                finally
                {
                    SitesCreateEntities.GetContext().ClearStateAndReloadAll();
                    Update();
                }
            }
        }
Beispiel #12
0
        private void buttonRequestLayout_Click(object sender, RoutedEventArgs e)
        {
            var currentSiteLayout = (SiteLayout)((Button)sender).DataContext;
            var existingRequests  = logbook.LayoutAccess.ToList().Where(v => v.SiteLayout.id == currentSiteLayout.id);

            if (existingRequests.Count() != 0)  // if private => resend request, if was private, but bow public => getting access
            {
                try
                {
                    var existingRequest = existingRequests.First();
                    SitesCreateEntities.GetContext().LayoutAccess.Remove(existingRequest);
                    SitesCreateEntities.GetContext().SaveChanges();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                    return;
                }
            }
            var newLayoutAccess = new LayoutAccess();

            newLayoutAccess.siteLayoutId = currentSiteLayout.id;
            newLayoutAccess.executerId   = logbook.id;
            if (currentSiteLayout.isPublic)
            {
                newLayoutAccess.haveAccess = true;
            }
            else
            {
                newLayoutAccess.haveAccess = false;
            }
            try
            {
                SitesCreateEntities.GetContext().LayoutAccess.Add(newLayoutAccess);
                SitesCreateEntities.GetContext().SaveChanges();
                MessageBox.Show(
                    newLayoutAccess.haveAccess?"Вы успешно получили права к данному макету!": "Вы успешно запросили права к данному макету",
                    "Success",
                    MessageBoxButton.OK,
                    MessageBoxImage.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    ex.Message,
                    "Error",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);
            }
            finally
            {
                SitesCreateEntities.GetContext().ClearStateAndReloadAll();
                MainTabItem.ExecuteShowPrevPage();
            }
        }
 public override void Update()
 {
     techincalTaskList.ItemsSource = null;
     techincalTaskList.ItemsSource = SitesCreateEntities.GetContext().TechnicalTask.ToList()
                                     .Except(
         SitesCreateEntities.GetContext().Logbook.ToList().Where(v => v.userLogin == MainTabItem.MainWindow.User.login && (v.userType == nameof(Logbook_userType.executor) || v.userType == nameof(Logbook_userType.customer))).Select(v => v.TechnicalTask).ToList()
         ).ToList();
 }
Beispiel #14
0
 private void CommandBindingBackPage_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     if (MainWindow.IsTabItemActive(this))   // если открыта текущая страница
     {
         this.ShowPrevPage();
         SitesCreateEntities.GetContext().ClearStateAndReloadAll();
     }
 }
        public override void Update()
        {
            listboxUser.ItemsSource = null;
            listboxUser.ItemsSource = SitesCreateEntities.GetContext().LayoutAccess.ToList()
                                      .Where(v => v.siteLayoutId == siteLayout.id && v.executerId != logbook.id);

            //  .Except(SitesCreateEntities.GetContext().)
        }
Beispiel #16
0
 public override void Update()
 {
     datagridSiteLayoutFullList.ItemsSource = null;
     //   all not self layouts of this task
     datagridSiteLayoutFullList.ItemsSource = SitesCreateEntities.GetContext().SiteLayout.ToList()
                                              .Where(v => v.LayoutAccess.Count() != 0 && v.LayoutAccess.First().Logbook.TechnicalTask.id == logbook.TechnicalTask.id)
                                              .Except(logbook.LayoutAccess.ToList().Where(v => v.haveAccess).Select(v => v.SiteLayout)) // except your layouts with access
     ;
 }
        private void ButtonSave_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Вы уверены, что хотите сохранить информацию о данном пользователе?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                StringBuilder errors = new StringBuilder();

                if (
                    String.IsNullOrWhiteSpace(surname.Text) ||
                    String.IsNullOrWhiteSpace(name.Text) ||
                    String.IsNullOrWhiteSpace(login.Text)
                    )
                {
                    errors.AppendLine("Вы не заполнили одно или несколько важных полей!");
                }

                if (String.IsNullOrWhiteSpace(user.password))
                {
                    errors.AppendLine("Вы не создали пароль!");
                }

                if (errors.Length != 0)
                {
                    MessageBox.Show(
                        errors.ToString(),
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                    return;
                }


                if (createFlag)
                {
                    SitesCreateEntities.GetContext().User.Add(user);
                }

                try
                {
                    SitesCreateEntities.GetContext().SaveChanges();
                    MessageBox.Show(
                        "Данные успешно сохранены!",
                        "Success",
                        MessageBoxButton.OK,
                        MessageBoxImage.Information);
                    MainTabItem.ExecuteShowPrevPage();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                }
            }
        }
        private void ButtonSave_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Вы уверены, что хотите сохранить информацию о данном примерном сайте?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                StringBuilder errors = new StringBuilder();

                if (
                    String.IsNullOrWhiteSpace(siteURL.Text)
                    )
                {
                    errors.AppendLine("Вы не заполнили одно или несколько важных полей!");
                }

                if (!Helper.IsValidURL(siteURL.Text))
                {
                    errors.AppendLine("Вы ввели неправильный сайт!");
                }

                if (errors.Length != 0)
                {
                    MessageBox.Show(
                        errors.ToString(),
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                    return;
                }


                if (createFlag)
                {
                    SitesCreateEntities.GetContext().SampleSite.Add(sampleSite);
                }

                try
                {
                    SitesCreateEntities.GetContext().SaveChanges();
                    MessageBox.Show(
                        "Данные успешно сохранены!",
                        "Success",
                        MessageBoxButton.OK,
                        MessageBoxImage.Information);
                    MainTabItem.ExecuteShowPrevPage();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                }
            }
        }
Beispiel #19
0
        // Логин сменить нельзя!

        /* private void buttonLoginChange_Click(object sender, RoutedEventArgs e)
         * {
         *   if (MessageBox.Show("Вы хотите сменить логин?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
         *   {
         *       var dialogEnterLogin = new Dialog("Введите существующий логин");
         *       if (dialogEnterLogin.ShowDialog() == true)
         *       {
         *           if (dialogEnterLogin.Answer != user.login)
         *           {
         *               MessageBox.Show("Вы ввели неверный логин", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
         *               return;
         *           }
         *           var dialogEnterNewLogin = new Dialog("Введите новый логин");
         *           if (dialogEnterNewLogin.ShowDialog() == true)
         *           {
         *               var newLogin = dialogEnterNewLogin.Answer;
         *               StringBuilder errors = new StringBuilder();
         *               if (!Helper.IsTextAllowed(newLogin) || newLogin.Length < 6)
         *               {
         *                   errors.AppendLine("Введенный логин не соответствует требованиям! Логин должен состоять из английских букв, знака подчеркивания, тире и цифр, а также длина должна быть не меньше 6 символов!");
         *               }
         *               if (SitesCreateEntities.GetContext().User.ToList().Where(v => v.login == newLogin).Count() != 0)
         *               {
         *                   errors.AppendLine("Пользователь с данным логином уже существует!");
         *               }
         *               if (errors.Length != 0)
         *               {
         *                   MessageBox.Show(errors.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
         *                   return;
         *               }
         *               try
         *               {
         *                   user.login = newLogin;
         *                   SitesCreateEntities.GetContext().SaveChanges();
         *                   MessageBox.Show(
         *                       "Логин успешно изменен!",
         *                       "Success",
         *                       MessageBoxButton.OK,
         *                       MessageBoxImage.Information);
         *               }
         *               catch (Exception ex)
         *               {
         *                   MessageBox.Show(
         *                       ex.Message,
         *                       "Error",
         *                       MessageBoxButton.OK,
         *                       MessageBoxImage.Error);
         *               }
         *               finally
         *               {
         *                   SitesCreateEntities.GetContext().ClearStateAndReloadAll();
         *                   MainTabItem.ExecuteShowPrevPage();
         *               }
         *           }
         *       }
         *   }
         * }*/

        private void buttonPasswordChange_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Вы хотите сменить пароль?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                var dialogEnterPassword = new Dialog("Введите существующий пароль");
                if (dialogEnterPassword.ShowDialog() == true)
                {
                    if (Helper.MD5Hash(dialogEnterPassword.Answer) != user.password)
                    {
                        MessageBox.Show("Вы ввели неверный пароль", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        return;
                    }
                    var dialogEnterNewPassword = new Dialog("Введите новый пароль");
                    if (dialogEnterNewPassword.ShowDialog() == true)
                    {
                        var           newPassword = dialogEnterNewPassword.Answer;
                        StringBuilder errors      = new StringBuilder();
                        if (!Helper.IsTextAllowed(newPassword) || newPassword.Length < 6)
                        {
                            errors.AppendLine("Введенный пароль не соответствует требованиям! Пароль должен состоять из английских букв, знака подчеркивания, тире и цифр, а также длина должна быть не меньше 6 символов!");
                        }
                        if (errors.Length != 0)
                        {
                            MessageBox.Show(errors.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                            return;
                        }
                        try
                        {
                            user.password = Helper.MD5Hash(newPassword);
                            SitesCreateEntities.GetContext().SaveChanges();
                            MessageBox.Show(
                                "Пароль успешно изменен!",
                                "Success",
                                MessageBoxButton.OK,
                                MessageBoxImage.Information);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(
                                ex.Message,
                                "Error",
                                MessageBoxButton.OK,
                                MessageBoxImage.Error);
                        }
                        finally
                        {
                            SitesCreateEntities.GetContext().ClearStateAndReloadAll();
                            MainTabItem.ExecuteShowPrevPage();
                        }
                    }
                }
            }
        }
        private void ButtonSave_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Вы уверены, что хотите сохранить данное требование?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                StringBuilder errors = new StringBuilder();

                if (
                    String.IsNullOrWhiteSpace(name.Text) ||
                    String.IsNullOrWhiteSpace(text.Text)
                    )
                {
                    errors.AppendLine("Вы не заполнили одно или несколько важных полей!");
                }

                if (errors.Length != 0)
                {
                    MessageBox.Show(
                        errors.ToString(),
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                    return;
                }


                if (createFlag)
                {
                    demand.technicalTaskId = technicalTask.id;
                    SitesCreateEntities.GetContext().Demand.Add(demand);
                }

                try
                {
                    SitesCreateEntities.GetContext().SaveChanges();
                    MessageBox.Show(
                        "Данные успешно обновлены!",
                        "Success",
                        MessageBoxButton.OK,
                        MessageBoxImage.Information);
                    MainTabItem.ExecuteShowPrevPage();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                }
            }
        }
        public override void Update()
        {
            techincalTaskList.ItemsSource = null;
            techincalTaskList.ItemsSource = SitesCreateEntities.GetContext().TechnicalTask.Where(v => v.Logbook
                                                                                                 .Where(s => s.userLogin == MainTabItem.MainWindow.User.login && s.userType == nameof(Logbook_userType.customer)).Count() != 0).ToList();

/*            techincalTaskList.Children.Clear();
 *          foreach (var technicalTask in )
 *          {
 *              techincalTaskList.Children.Add(new TechnicalTaskListSImple(MainTabItem, technicalTask));
 *          }*/
            filterBystatusGroup_Checked(
                filterBystatusGroupContainer.Children.OfType <RadioButton>()
                .FirstOrDefault(r => (bool)r.IsChecked),
                new RoutedEventArgs()
                );
        }
Beispiel #22
0
        private void ButtonSave_Click(object sender, RoutedEventArgs e)
        {
            StringBuilder errors = new StringBuilder();

            if (
                String.IsNullOrWhiteSpace(surname.Text) ||
                String.IsNullOrWhiteSpace(name.Text)
                )
            {
                errors.AppendLine("Вы не заполнили одно или несколько важных полей!");
            }
            if (!String.IsNullOrWhiteSpace(email.Text) && !Helper.IsEmailValid(email.Text))
            {
                errors.AppendLine("Email не правильный!");
            }

            if (errors.Length != 0)
            {
                MessageBox.Show(errors.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            try
            {
                SitesCreateEntities.GetContext().SaveChanges();
                MessageBox.Show(
                    "Данные успешно изменены!",
                    "Success",
                    MessageBoxButton.OK,
                    MessageBoxImage.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(
                    ex.Message,
                    "Error",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);
            }
            finally
            {
                SitesCreateEntities.GetContext().ClearStateAndReloadAll();
                MainTabItem.ExecuteShowPrevPage();
                MainTabItem.MainWindow.ReloadUser();
            }
        }
        public override void Update()
        {
            var currentMainViewModel = (MainViewModel)graphicControl.DataContext;

            if (siteLayout.FileName != null)
            {
                currentMainViewModel.LoadScenePublic(siteLayout.FileName);
            }
            else
            {
                if (SitesCreateEntities.GetContext().Entry(siteLayout).State == EntityState.Detached)
                {
                    this.MainTabItem.ExecuteShowPrevPage();
                    return;
                }
                MessageBox.Show(fileNameEmptyMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
 private void ButtonDelete_Click(object sender, RoutedEventArgs e)
 {
     if (MessageBox.Show("Вы уверены, что хотите удалить данное ТЗ?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes && !createFlag)
     {
         SitesCreateEntities.GetContext().TechnicalTask.Remove(technicalTask);
         try
         {
             SitesCreateEntities.GetContext().SaveChanges();
             MainTabItem.ExecuteShowPrevPage();
         }
         catch (Exception ex)
         {
             MessageBox.Show(
                 ex.Message,
                 "Error",
                 MessageBoxButton.OK,
                 MessageBoxImage.Error);
         }
     }
 }
        private void ButtonSampleSiteDelete_Click(object sender, RoutedEventArgs e)
        {
            var currentSiteGroup = (SampleSitesGroup)((Button)sender).DataContext;

            if (MessageBox.Show("Вы точно хотите удалить данный сайт у данного требования?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                try
                {
                    SitesCreateEntities.GetContext().SampleSitesGroup.Remove(currentSiteGroup);
                    SitesCreateEntities.GetContext().SaveChanges();
                    SitesCreateEntities.GetContext().ChangeTracker.Entries().ToList().ForEach(v => v.Reload());
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    SitesCreateEntities.GetContext().ClearStateAndReloadAll();
                    return;
                }
                Update();
                MessageBox.Show("Вы успешно удалили сайт!", "Success", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }
 private void buttonDenyLayout_Click(object sender, RoutedEventArgs e)
 {
     if (layoutAccess.isOwner)
     {
         throw new Exception("You are owner of this layout");
     }
     if (MessageBox.Show("Вы уверены, что хотите отказаться от доступа к данному макету?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
     {
         SitesCreateEntities.GetContext().LayoutAccess.Remove(layoutAccess);
         try
         {
             SitesCreateEntities.GetContext().SaveChanges();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
         }
         finally
         {
             this.MainTabItem.ExecuteShowPrevPage();
         }
     }
 }
        private void buttonRightsDelete_Click(object sender, RoutedEventArgs e)
        {
            var currentLayoutAccess = (LayoutAccess)((Button)sender).DataContext;

            if (MessageBox.Show("Вы уверены, что хотите удалить права для данного пользователя?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes && !createFlag)
            {
                SitesCreateEntities.GetContext().LayoutAccess.Remove(currentLayoutAccess);
                try
                {
                    SitesCreateEntities.GetContext().SaveChanges();
                    SitesCreateEntities.GetContext().ClearStateAndReloadAll();
                    MessageBox.Show("Права успешно удалены!", "Success", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                }
                Update();
            }
        }
        /// <summary>
        /// If urls exist => create and add else add
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SampleSitesComboboxSelect(ComboBox combobox)
        {
            SampleSite sampleSite = null;

            if (combobox.SelectedItem == null)
            {
                if (
                    String.IsNullOrWhiteSpace(combobox.Text) ||
                    !Helper.IsValidURL(combobox.Text)
                    )   // if text is empty or text is not url
                {
                    MessageBox.Show("Нельзя добавить к требованию данный сайт! Ошибка url.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                if (demand.SampleSites.ToList().Select(v => v.siteURL).Contains(combobox.Text))
                {
                    MessageBox.Show("Нельзя добавить к требованию данный сайт! Данный сайт уже прикреплен к требованию!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    SampleSitesList.SelectedItem = demand.SampleSitesGroup.ToList().Where(v => v.SampleSite.siteURL == combobox.Text).FirstOrDefault();
                    return;
                }

                if (MessageBox.Show("Вы хотите добавить сайт в систему?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                {
                    sampleSite         = new SampleSite();
                    sampleSite.siteURL = combobox.Text;
                    SitesCreateEntities.GetContext().SampleSite.Add(sampleSite);
                    SitesCreateEntities.GetContext().SaveChanges();
                    SitesCreateEntities.GetContext().ChangeTracker.Entries().ToList().ForEach(v => v.Reload());
                    // add new URL Site
                }
                else
                {
                    return;
                }
            }
            if (sampleSite == null)
            {
                sampleSite = (SampleSite)combobox.SelectedItem;
            }
            var dialog = new Dialog("Введите примечания.");

            if (dialog.ShowDialog() == true)
            {
                var sampleSitesGroup = new SampleSitesGroup();
                sampleSitesGroup.sampleSiteId = sampleSite.id;
                sampleSitesGroup.demandId     = demand.id;
                sampleSitesGroup.note         = dialog.Answer;

                try
                {
                    SitesCreateEntities.GetContext().SampleSitesGroup.Add(sampleSitesGroup);
                    SitesCreateEntities.GetContext().SaveChanges();
                    SitesCreateEntities.GetContext().ChangeTracker.Entries().ToList().ForEach(v => v.Reload());
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    SitesCreateEntities.GetContext().ClearStateAndReloadAll();
                }
            }
            Update();
        }
 public override void Update()
 {
     techincalTaskList.ItemsSource = null;
     techincalTaskList.ItemsSource = SitesCreateEntities.GetContext().TechnicalTask.Where(v => v.Logbook
                                                                                          .Where(s => s.userLogin == MainTabItem.MainWindow.User.login && s.userType == nameof(Logbook_userType.executor)).Count() != 0).ToList();
 }
        private void ButtonSave_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Вы уверены, что хотите сохранить данные о макете?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                StringBuilder errors = new StringBuilder();

                if (
                    String.IsNullOrWhiteSpace(description.Text)
                    )
                {
                    errors.AppendLine("Вы не заполнили одно или несколько важных полей!");
                }

                if (errors.Length != 0)
                {
                    MessageBox.Show(
                        errors.ToString(),
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                    return;
                }

                if (createFlag)
                {
                    var    uniqueFileName = String.Format(@"{0}.se", Guid.NewGuid());
                    String newFIleName    = $"{Environment.CurrentDirectory}\\{layoutFolder}\\{uniqueFileName}";
                    MainViewModel.CreateScene(newFIleName);
                    siteLayout.fileName = newFIleName;
                    SitesCreateEntities.GetContext().SiteLayout.Add(siteLayout);
                }

                try
                {
                    SitesCreateEntities.GetContext().SaveChanges();
                    if (createFlag)
                    {
                        var newLayoutAccess = new LayoutAccess();
                        newLayoutAccess.isOwner      = true;
                        newLayoutAccess.haveAccess   = true;
                        newLayoutAccess.executerId   = logbook.id;
                        newLayoutAccess.siteLayoutId = siteLayout.id;
                        SitesCreateEntities.GetContext().LayoutAccess.Add(newLayoutAccess);
                        SitesCreateEntities.GetContext().SaveChanges();
                    }
                    MessageBox.Show(
                        "Данные успешно обновлены!",
                        "Success",
                        MessageBoxButton.OK,
                        MessageBoxImage.Information);
                    this.MainTabItem.ExecuteShowPrevPage();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(
                        ex.Message,
                        "Error",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error);
                }
            }
        }