public MainContentViewModel(IRadnoMestoSqlProvider radnoMestoSqlProvider, IOperacijaSqlProvider operacijaSqlProvider
                             , IPredmetRadaSqlProvider predmetRadaSqlProvider, IRadnaListaSqlProvider radnaListaSqlProvider
                             , IRadnikProizvodnjaSqlProvider radnikProizvodnjaSqlProvider, IRadniNalogSqlProvider radniNalogSqlProvider
                             , ITehnoloskiPostupakSqlProvider tehnoloskiPostupakSqlProvider, ITrebovanjeSqlProvider trebovanjeSqlProvider,
                             RadnoMestoViewModel radnoMestoViewModel, OperacijaViewModel operacijaViewModel, PredmetRadaViewModel predmetRadaViewModel,
                             RadnaListaViewModel radnaListaViewModel, RadnikProizvodnjaViewModel radnikProizvodnjaViewModel, RadniNalogViewModel radniNalogViewModel,
                             TehnoloskiPostupakViewModel tehnoloskiPostupakViewModel, TrebovanjeViewModel trebovanjeViewModel,
                             TehnPostupakOperacijaViewModel tehnPostupakOperacijaViewModel, ITehnPostupakOperacijaSqlProvider tehnPostupakOperacijaSqlProvider, User loggedUser)
 {
     _radnoMestoSqlProvider              = radnoMestoSqlProvider;
     _operacijaSqlProvider               = operacijaSqlProvider;
     _predmetRadaSqlProvider             = predmetRadaSqlProvider;
     _radnikProizvodnjaSqlProvider       = radnikProizvodnjaSqlProvider;
     _radniNalogSqlProvider              = radniNalogSqlProvider;
     _radnaListaSqlProvider              = radnaListaSqlProvider;
     _tehnoloskiPostupakSqlProvider      = tehnoloskiPostupakSqlProvider;
     _trebovanjeSqlProvider              = trebovanjeSqlProvider;
     this.radnoMestoViewModel            = radnoMestoViewModel;
     this.operacijaViewModel             = operacijaViewModel;
     this.predmetRadaViewModel           = predmetRadaViewModel;
     this.radnaListaViewModel            = radnaListaViewModel;
     this.radnikProizvodnjaViewModel     = radnikProizvodnjaViewModel;
     this.radniNalogViewModel            = radniNalogViewModel;
     this.tehnoloskiPostupakViewModel    = tehnoloskiPostupakViewModel;
     this.trebovanjeViewModel            = trebovanjeViewModel;
     this.tehnPostupakOperacijaViewModel = tehnPostupakOperacijaViewModel;
     this.tehnPostupakOperacijaViewModel.DataShouldBeRefreshed += TehnPostupakOperacijaViewModel_DataShouldBeRefreshed;
     this.tehnPostupakOperacijaSqlProvider = tehnPostupakOperacijaSqlProvider;
     GetDataFromDb();
     _userName     = loggedUser.Ime;
     _userLastName = loggedUser.Prezime;
     SetImage(loggedUser.ImagePath);
 }
 public ApplictionMainWindowViewModel(IRadnoMestoSqlProvider radnoMestoSqlProvider, IOperacijaSqlProvider operacijaSqlProvider
                                      , IPredmetRadaSqlProvider predmetRadaSqlProvider, IRadnaListaSqlProvider radnaListaSqlProvider
                                      , IRadnikProizvodnjaSqlProvider radnikProizvodnjaSqlProvider, IRadniNalogSqlProvider radniNalogSqlProvider
                                      , ITehnoloskiPostupakSqlProvider tehnoloskiPostupakSqlProvider, ITrebovanjeSqlProvider trebovanjeSqlProvider,
                                      ITehnPostupakOperacijaSqlProvider tehnPostupakOperacijaSqlProvider
                                      , IUserSqlProvider userSqlProvider, RadnoMestoViewModel radnoMestoViewModel, OperacijaViewModel operacijaViewModel, PredmetRadaViewModel predmetRadaViewModel,
                                      RadnaListaViewModel radnaListaViewModel, RadnikProizvodnjaViewModel radnikProizvodnjaViewModel, RadniNalogViewModel radniNalogViewModel,
                                      TehnoloskiPostupakViewModel tehnoloskiPostupakViewModel, TrebovanjeViewModel trebovanjeViewModel,
                                      TehnPostupakOperacijaViewModel tehnPostupakOperacijaViewModel)
 {
     _userSqlProvider                      = userSqlProvider;
     this.radnoMestoViewModel              = radnoMestoViewModel;
     this.operacijaViewModel               = operacijaViewModel;
     this.predmetRadaViewModel             = predmetRadaViewModel;
     this.radnaListaViewModel              = radnaListaViewModel;
     this.radnikProizvodnjaViewModel       = radnikProizvodnjaViewModel;
     this.radniNalogViewModel              = radniNalogViewModel;
     this.tehnoloskiPostupakViewModel      = tehnoloskiPostupakViewModel;
     this.trebovanjeViewModel              = trebovanjeViewModel;
     this.tehnPostupakOperacijaViewModel   = tehnPostupakOperacijaViewModel;
     _radnoMestoSqlProvider                = radnoMestoSqlProvider;
     _operacijaSqlProvider                 = operacijaSqlProvider;
     _predmetRadaSqlProvider               = predmetRadaSqlProvider;
     _radnikProizvodnjaSqlProvider         = radnikProizvodnjaSqlProvider;
     _radniNalogSqlProvider                = radniNalogSqlProvider;
     _radnaListaSqlProvider                = radnaListaSqlProvider;
     _tehnoloskiPostupakSqlProvider        = tehnoloskiPostupakSqlProvider;
     _trebovanjeSqlProvider                = trebovanjeSqlProvider;
     this.tehnPostupakOperacijaSqlProvider = tehnPostupakOperacijaSqlProvider;
 }
        public ApplicationMainWindow(IUserSqlProvider userSqlProvider
                                     , IRadnoMestoSqlProvider radnoMestoSqlProvider, IOperacijaSqlProvider operacijaSqlProvider
                                     , IPredmetRadaSqlProvider predmetRadaSqlProvider, IRadnaListaSqlProvider radnaListaSqlProvider
                                     , IRadnikProizvodnjaSqlProvider radnikProizvodnjaSqlProvider, IRadniNalogSqlProvider radniNalogSqlProvider
                                     , ITehnoloskiPostupakSqlProvider tehnoloskiPostupakSqlProvider, ITrebovanjeSqlProvider trebovanjeSqlProvider
                                     , ITehnPostupakOperacijaSqlProvider tehnPostupakOperacijaSqlProvider, RadnoMestoViewModel radnoMestoViewModel, OperacijaViewModel operacijaViewModel, PredmetRadaViewModel predmetRadaViewModel,
                                     RadnaListaViewModel radnaListaViewModel, RadnikProizvodnjaViewModel radnikProizvodnjaViewModel, RadniNalogViewModel radniNalogViewModel,
                                     TehnoloskiPostupakViewModel tehnoloskiPostupakViewModel, TrebovanjeViewModel trebovanjeViewModel, TehnPostupakOperacijaViewModel tehnPostupakOperacijaViewModel)
        {
            InitializeComponent();

            DataContext = new ApplictionMainWindowViewModel(radnoMestoSqlProvider, operacijaSqlProvider, predmetRadaSqlProvider, radnaListaSqlProvider,
                                                            radnikProizvodnjaSqlProvider, radniNalogSqlProvider, tehnoloskiPostupakSqlProvider, trebovanjeSqlProvider, tehnPostupakOperacijaSqlProvider, userSqlProvider,
                                                            radnoMestoViewModel, operacijaViewModel, predmetRadaViewModel, radnaListaViewModel, radnikProizvodnjaViewModel, radniNalogViewModel
                                                            , tehnoloskiPostupakViewModel, trebovanjeViewModel, tehnPostupakOperacijaViewModel);
        }
        private void DeleteButtonCommandExecute(object param)
        {
            {
                bool succeded = false;
                switch (_selectedTabIndex)
                {
                case 0:
                    RadnoMestoViewModel radnoMestoViewModel = (RadnoMestoViewModel)ContentMainScreen;
                    RadnoMesto          selected            = radnoMestoViewModel.ItemSelected;
                    if (selected != null)
                    {
                        if (!DoesRadnikProizvodnjaContainsRadnoMestoId(selected.IDRadnoMesto))
                        {
                            succeded = _radnoMestoSqlProvider.DeleteFromRadnoMestoById(selected.IDRadnoMesto);
                            if (succeded)
                            {
                                radnoMestoViewModel.RadnoMestoList.Remove(selected);
                            }
                        }
                        else
                        {
                            ShowCantDeleteErrorDialog();
                        }
                    }
                    else
                    {
                        ShowNotSelectedErrorDialog(true);
                    }
                    break;

                case 1:
                    OperacijaViewModel operacijaViewModel = (OperacijaViewModel)ContentMainScreen;
                    Operacija          selectedOperacija  = operacijaViewModel.ItemSelected;
                    if (selectedOperacija != null)
                    {
                        succeded = _operacijaSqlProvider.DeleteFromOperacijaById(selectedOperacija.IDOperacija);
                        if (succeded)
                        {
                            operacijaViewModel.OperacijaList.Remove(selectedOperacija);
                        }
                    }
                    else
                    {
                        ShowNotSelectedErrorDialog(true);
                    }
                    break;

                case 2:
                    PredmetRadaViewModel predmetRadaViewModel = (PredmetRadaViewModel)ContentMainScreen;
                    PredmetRada          predmetRadaSelected  = predmetRadaViewModel.ItemSelected;
                    if (predmetRadaSelected != null)
                    {
                        succeded = _predmetRadaSqlProvider.DeleteFromPredmetRadaById(predmetRadaSelected.IDPredmetRada);
                        if (succeded)
                        {
                            predmetRadaViewModel.PredmetRadaList.Remove(predmetRadaSelected);
                        }
                    }
                    else
                    {
                        ShowNotSelectedErrorDialog(true);
                    }
                    break;

                case 3:
                    RadnaListaViewModel radnaListaViewModel = (RadnaListaViewModel)ContentMainScreen;
                    RadnaLista          radnaListaSelected  = radnaListaViewModel.ItemSelected;
                    if (radnaListaSelected != null)
                    {
                        succeded = _radnaListaSqlProvider.DeleteFromRadnaListaById(radnaListaSelected.IDRadnaLista);
                        if (succeded)
                        {
                            radnaListaViewModel.RadnaListaList.Remove(radnaListaSelected);
                        }
                    }
                    else
                    {
                        ShowNotSelectedErrorDialog(true);
                    }
                    break;

                case 4:
                    RadnikProizvodnjaViewModel radnikProizvodnjaViewModel = (RadnikProizvodnjaViewModel)ContentMainScreen;
                    RadnikProizvodnja          radnikProizvodnjaSelected  = radnikProizvodnjaViewModel.ItemSelected;
                    if (radnikProizvodnjaSelected != null)
                    {
                        succeded = _radnikProizvodnjaSqlProvider.DeleteFromRadnikProizvodnjaById(radnikProizvodnjaSelected.IDRadnik);
                        if (succeded)
                        {
                            radnikProizvodnjaViewModel.RadnikProizvodnjaList.Remove(radnikProizvodnjaSelected);
                        }
                    }
                    else
                    {
                        ShowNotSelectedErrorDialog(true);
                    }
                    break;

                case 5:
                    RadniNalogViewModel radniNalogViewModel = (RadniNalogViewModel)ContentMainScreen;
                    RadniNalog          radniNalogSelected  = radniNalogViewModel.ItemSelected;
                    if (radniNalogSelected != null)
                    {
                        succeded = _radniNalogSqlProvider.DeleteFromRadniNalogById(radniNalogSelected.IDRadniNalog);
                        if (succeded)
                        {
                            radniNalogViewModel.RadniNalogList.Remove(radniNalogSelected);
                        }
                    }
                    else
                    {
                        ShowNotSelectedErrorDialog(true);
                    }
                    break;

                case 6:
                    TehnoloskiPostupakViewModel tehnoloskiPostupakViewModel = (TehnoloskiPostupakViewModel)ContentMainScreen;
                    TehnoloskiPostupak          tehnoloskiPostupakSelected  = tehnoloskiPostupakViewModel.ItemSelected;
                    if (tehnoloskiPostupakSelected != null)
                    {
                        succeded = _tehnoloskiPostupakSqlProvider.DeleteFromTehnoloskiPostupakById(tehnoloskiPostupakSelected.IDTehPostupak);
                        if (succeded)
                        {
                            tehnoloskiPostupakViewModel.TehnoloskiPostupakList.Remove(tehnoloskiPostupakSelected);
                        }
                    }
                    else
                    {
                        ShowNotSelectedErrorDialog(true);
                    }
                    break;

                case 7:
                    TrebovanjeViewModel trebovanjeViewModel = (TrebovanjeViewModel)ContentMainScreen;
                    Trebovanje          trebovanjeSelected  = trebovanjeViewModel.ItemSelected;
                    if (trebovanjeSelected != null)
                    {
                        succeded = _trebovanjeSqlProvider.DeleteFromTrebovanjeById(trebovanjeSelected.IDTrebovanje);
                        if (succeded)
                        {
                            trebovanjeViewModel.TrebovanjeList.Remove(trebovanjeSelected);
                        }
                    }
                    else
                    {
                        ShowNotSelectedErrorDialog(true);
                    }
                    break;

                case 8:
                    TehnPostupakOperacijaViewModel tpoViewModel = (TehnPostupakOperacijaViewModel)ContentMainScreen;
                    tpoViewModel.DeleteSelected();
                    break;
                }
            }
        }