/// <summary>
        /// Metodo per salvare la descrizione.
        /// </summary>
        /// <param name="obj"></param>
        private void OnSaveDescrizione(object obj)
        {
            AppDbContext        ctx     = new AppDbContext();
            QdcDbDataRepository repoQdc = new QdcDbDataRepository(ctx);

            // ricavo l'ultimo Qdc inserito.
            int i = repoQdc.Get().Where(q1 => q1.Id == q1.Id).Max(q1 => q1.Id);

            Qdcs = new ObservableCollection <Qdc>(repoQdc.Get().Where(q1 => q1.Id == i));
            Qdc q = Qdcs[0];

            if (!string.IsNullOrEmpty(Descrizione))
            {
                // eseguo l'update della descrizione.
                q.Descrizione = Descrizione;
                repoQdc.Update(q);

                SaveInFile(q);

                OnRequisitoList(obj);
            }
            else
            {
                MessageBox.Show("Inserisci una descrizione");
            }
        }
        public VisualizzaViewModel()
        {
            AppDbContext ctx = new AppDbContext();

            repoQdc       = new QdcDbDataRepository(ctx);
            MenuCommand   = new DelegateCommand(OnMenuClick, CanMenuClick);
            VisualizzaQdc = new DelegateCommand(OnVisualizzaClick, CanVisualizzaClick);
        }
        /// <summary>
        /// Metodo per salvare i dati sul database e sul file Word.
        /// </summary>
        /// <param name="obj"></param>
        private void OnVisualizzaClick(object obj)
        {
            // controllo che siano stati scelti tutti i requisiti.
            if (controllo[0] == 1 && controllo[1] == 1 &&
                controllo[2] == 1 && controllo[3] == 1 &&
                controllo[4] == 1 && controllo[5] == 1 && controllo[6] == 1)
            {
                AppDbContext ctx = new AppDbContext();
                AssegnazioneDbDataRepository repoAss = new AssegnazioneDbDataRepository(ctx);

                // ricavo l'ultimo Qdc creato (quello al quale assegnare i Qdc).
                QdcDbDataRepository repoQdc = new QdcDbDataRepository(ctx);
                int ind = repoQdc.Get().Where(q1 => q1.Id == q1.Id).Max(q1 => q1.Id);
                Qdcs = new ObservableCollection <Qdc>(repoQdc.Get().Where(q1 => q1.Id == ind));
                Qdc q = Qdcs[0];

                // inserisco tutti i requisiti standard.
                for (int i = 0; i < codici.Length; i++)
                {
                    repoAss.Insert(new Assegnazione(codici[i], q, i + 1));
                }

                // inserisco i requisiti scelti dall'utente.
                repoAss.Insert(new Assegnazione(Cod14, q, Id14));
                repoAss.Insert(new Assegnazione(Cod15, q, Id15));
                repoAss.Insert(new Assegnazione(Cod16, q, Id16));
                repoAss.Insert(new Assegnazione(Cod17, q, Id17));
                repoAss.Insert(new Assegnazione(Cod18, q, Id18));
                repoAss.Insert(new Assegnazione(Cod19, q, Id19));
                repoAss.Insert(new Assegnazione(Cod20, q, Id20));

                // metodo per il salvataggio su Word.
                SaveInFile(q);

                // mi sposto in VisualizzaView.
                Messenger.Default.Send <BindableBase>(new VisualizzaViewModel());
            }
            else
            {
                MessageBox.Show("Inserisci tutti i requisiti");
            }
        }
        /// <summary>
        /// Metodo costruttore del ViewModel del requisito.
        /// </summary>
        public MotivazioneViewModel()
        {
            SaveVoto = new DelegateCommand(OnSaveClick, CanSaveClick);

            AppDbContext ctx = new AppDbContext();

            repoQdc = new QdcDbDataRepository(ctx);
            repoAss = new AssegnazioneDbDataRepository(ctx);
            try
            {
                int ind = repoQdc.Get().Where(q1 => q1.Id == q1.Id).Max(q1 => q1.Id);
                Motivazioni = new ObservableCollection <Assegnazione>(repoAss.Get().Where(a1 => a1.QdcId == ind));
                Ass         = Motivazioni[0];
            }
            catch (Exception e)
            {
                if (e is ArgumentOutOfRangeException || e is InvalidOperationException)
                {
                    MessageBox.Show("Non esistono requisiti assegnati a questo Qdc");
                }
            }
        }
Пример #5
0
 public SelezionaViewModel()
 {
     SelezionaCommand = new DelegateCommand(OnSeleziona, CanSeleziona);
     repoQdc          = new QdcDbDataRepository(new AppDbContext());
     Qdcs             = new ObservableCollection <Qdc>(repoQdc.Get());
 }
        /// <summary>
        /// Metodo per salvare i dati sul database e sul file Word.
        /// </summary>
        /// <param name="obj"></param>
        private void OnSaveInfo(object obj)
        {
            AppDbContext        ctx     = new AppDbContext();
            QdcDbDataRepository repoQdc = new QdcDbDataRepository(ctx);

            // controllo che il percorso dei due file sia differente.
            if (PathTemplate == PathSave)
            {
                MessageBox.Show("Inserisci un percorso differente per il salvataggio", "Internal Error", MessageBoxButton.OK);
            }
            else
            {
                // controllo che il percorso di salvataggio non esista già.
                if (File.Exists((string)PathSave))
                {
                    MessageBox.Show("Il percorso del file di salvataggio esiste già", "Internal Error", MessageBoxButton.OK);
                }
                else
                {
                    try
                    {
                        // copia del file
                        File.Copy(PathTemplate, PathSave, true);
                        // valori predefiniti per l'apertura del file
                        object missing = Missing.Value;
                        // crea l'oggetto che contiene l'istanza di Word
                        Word.Application wordApp = new Word.Application();
                        //  crea l'oggetto che contiene il documento
                        Word.Document aDoc = null;
                        // oggetto che definisce il file copiato (e da modificare)
                        object filename = PathSave;
                        // Se il file esiste
                        if (!File.Exists((string)filename))
                        {
                            MessageBox.Show("File does not exist.", "No File", MessageBoxButton.OK);
                        }
                        else
                        {
                            // controllo che l'utente abbia inserito tutti i dati.
                            if (!string.IsNullOrEmpty(Titolo) && !string.IsNullOrEmpty(NomeFormatore) &&
                                !string.IsNullOrEmpty(CognomeFormatore) && !string.IsNullOrEmpty(MailFormatore) &&
                                !string.IsNullOrEmpty(NomePerito) && !string.IsNullOrEmpty(CognomePerito) &&
                                !string.IsNullOrEmpty(MailPerito) && !string.IsNullOrEmpty(DataInizio.ToString()) &&
                                !string.IsNullOrEmpty(DataConsegna.ToString()) && !string.IsNullOrEmpty(OraInizio.ToString()) &&
                                !string.IsNullOrEmpty(OraFine.ToString()) && !string.IsNullOrEmpty(NumeroOre.ToString()) &&
                                !string.IsNullOrEmpty(PathTemplate) && !string.IsNullOrEmpty(PathSave))
                            {
                                if (DataConsegna == DateTime.MinValue)
                                {
                                    DataConsegna = DateTime.Today;
                                }
                                if (DataInizio == DateTime.MinValue)
                                {
                                    DataInizio = DateTime.Today;
                                }
                                if (OraInizio == DateTime.MinValue)
                                {
                                    OraInizio = DateTime.Today;
                                }
                                if (OraFine == DateTime.MinValue)
                                {
                                    OraFine = DateTime.Today;
                                }

                                // inserimento dei dati sul database.
                                repoQdc.Insert(new Qdc(Titolo, NomeFormatore, CognomeFormatore,
                                                       MailFormatore, NomePerito, CognomePerito, MailPerito,
                                                       DataInizio, DataConsegna, OraInizio, OraFine, NumeroOre, Descrizione,
                                                       NomePerito2, CognomePerito2, MailPerito2, PathTemplate, PathSave));
                                //repoQdc.Insert(new Qdc(Descrizione));

                                // mi sposto in DescrizioneView.
                                OnDescrizioneList(obj);
                            }
                            else
                            {
                                MessageBox.Show("Inserisci tutte le informazioni");
                            }
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Errore, il percorso inserito non è valido", "Internal Error", MessageBoxButton.OK);
                    }
                }
            }
        }