示例#1
0
 public CreateFileCommand(FileMenager fileMenager, string pathTo)
 {
     _fileMenager = fileMenager;
     _pathTo      = pathTo;
 }
示例#2
0
 public HTTPDownloadCommand(FileMenager fileMenager, string addres, string pathTo)
 {
     _fileMenager = fileMenager;
     _addres      = addres;
     _pathTo      = pathTo;
 }
示例#3
0
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            try
            {
                List <string> importFileLines = FileMenager.ReadFileLines(FileMenager.SelectFile(new string[] { "CSV ", "Text" }, new string[] { "csv ", "txt" }));

                List <string> binariStringa = importFileLines[0].Replace("Calendario;", "").Split(';').ToList();

                List <string> nomiBinari       = new List <string>();
                List <string> dimensioneBinari = new List <string>();
                List <string> commentiBinari   = new List <string>();

                binariStringa.ForEach(x =>
                {
                    nomiBinari.Add(x.Split('(')[0].Split('{')[0]);

                    if (x.Contains("(") && x.Contains("}"))
                    {
                        commentiBinari.Add(x.Split('(')[1].Split(')')[0]);
                        dimensioneBinari.Add(x.Split('{')[1].Split('}')[0]);
                    }
                    else if (x.Contains("("))
                    {
                        commentiBinari.Add(x.Split('(')[1].Split(')')[0]);
                    }
                    else if (x.Contains("{"))
                    {
                        dimensioneBinari.Add(x.Split('{')[1].Split('}')[0]);
                    }

                    if (!x.Contains("{"))
                    {
                        dimensioneBinari.Add(null);
                    }
                });

                binari.RemoveAll();
                binari = new Class_binari(Grid_scrollOrizzontale);

                for (int i = 0; i < binariStringa.Count; i++)
                {
                    if (binariStringa[i] != "" && binariStringa[i] != " ")
                    {
                        Class_binario binario = new Class_binario();
                        binario.NomeBinario = nomiBinari[i].Split('{')[0];

                        if (dimensioneBinari.Count > i && dimensioneBinari[i] != null)
                        {
                            binario.userControl.UtilizzareMisure  = true;
                            binario.userControl.DimensioneBinario = Convert.ToInt32(dimensioneBinari[i].Replace("m", ""));
                        }
                        if (commentiBinari.Count > i)
                        {
                            binario.userControl.Commenti = commentiBinari[i];
                        }

                        binari.Add(binario);

                        //Ciclo lines per progetti
                        bool            enter             = false;
                        List <string>   listNomePMultipli = new List <string>();
                        List <DateTime> listDataPMultipli = new List <DateTime>();

                        for (int j = 1; j < importFileLines.Count; j++)
                        {
                            if (importFileLines[j].Replace(";", "").Replace("\n", "") != "" && importFileLines[j].Replace(";", "").Replace("\n", "") != " " && i + 1 < importFileLines[j].Split(';').Length)
                            {
                                string progettoStringa = importFileLines[j].Split(';')[i + 1];

                                if (progettoStringa.Replace(";", "").Replace("\n", "") != "" && progettoStringa.Replace(";", "").Replace("\n", "") != " ")
                                {
                                    if (!enter)
                                    {
                                        Class_progettoTreno progettoTreno = new Class_progettoTreno();

                                        progettoTreno.NomeProgetto = progettoStringa.Split('(')[0].Split('{')[0];

                                        if (progettoStringa.Contains("{") && dimensioneBinari.Count > i && dimensioneBinari[i] != null)
                                        {
                                            progettoTreno.DimensioneProgetto = Convert.ToInt32(progettoStringa.Split('{')[1].Split('}')[0].Replace("m", ""));

                                            if (progettoTreno.DimensioneProgetto > 0)
                                            {
                                                progettoTreno.userControl.SetAvviso = null;
                                            }
                                        }

                                        if (progettoStringa.Contains("("))
                                        {
                                            progettoTreno.Commenti = progettoStringa.Split('(')[1].Split(')')[0];
                                        }

                                        if (progettoStringa.Contains("["))
                                        {
                                            progettoTreno.Colore = progettoStringa.Split('[')[1].Split(']')[0];
                                        }

                                        progettoTreno.DataInizio = Convert.ToDateTime(importFileLines[j].Split(';')[0]);
                                        binari.list_binari[i].progettiTreni.Add(progettoTreno);

                                        if (progettoStringa.Contains("/"))
                                        {
                                            //Gestione progetti multipli

                                            listNomePMultipli.Add(progettoStringa.Split('/')[1].Split('(')[0].Split('{')[0].Split('[')[0]);
                                            listDataPMultipli.Add(progettoTreno.DataInizio);
                                        }
                                    }
                                    else
                                    {
                                        enter = false;

                                        DateTime dataFine = new DateTime();
                                        int      index    = listNomePMultipli.FindIndex((x) => x == binari.list_binari[i].progettiTreni.list_progettiTreni.Last().NomeProgetto);
                                        if (index > 0)
                                        {
                                            dataFine = listDataPMultipli[index];
                                        }
                                        else
                                        {
                                            dataFine = Convert.ToDateTime(importFileLines[j].Split(';')[0]);
                                        }

                                        if (dataFine >= binari.list_binari[i].progettiTreni.list_progettiTreni.Last().DataInizio)
                                        {
                                            binari.list_binari[i].progettiTreni.list_progettiTreni.Last().DataFine = dataFine;
                                        }
                                        else
                                        {
                                            binari.list_binari[i].progettiTreni.list_progettiTreni.Last().DataFine = binari.list_binari[i].progettiTreni.list_progettiTreni.Last().DataInizio;
                                        }
                                    }

                                    if (j + 1 < importFileLines.Count && importFileLines[j + 1] != "" && importFileLines[j + 1] != " ")
                                    {
                                        try
                                        {
                                            if (importFileLines[j + 1].Split(';')[i + 1].Split('(')[0] == progettoStringa.Split('(')[0])
                                            {
                                                enter = true;
                                            }
                                        }
                                        catch { enter = false; }
                                    }
                                }
                            }
                        }
                    }
                }

                binari.list_binari.ForEach(x => x.progettiTreni.list_progettiTreni.ForEach(z => { if (Convert.ToInt32(z.Durata) < 0)
                                                                                                  {
                                                                                                      z.DataFine = z.DataInizio;
                                                                                                  }
                                                                                           }));
            }
            catch (Exception ex) { MessageBox.Show("Errore durante l'importazione:\n" + ex.Message); }
        }
示例#4
0
        private void Button_exportCSV_Click(object sender, RoutedEventArgs e)
        {
            ExportAllData = (bool)CheckBox_ExportAll.IsChecked;
            string FileContent = "";

            // { Aprire una finestra di caricamento }.

            try
            {
                //Trovare intervallo di date coperto [
                List <DateTime> dateInizioCandidati = new List <DateTime>();
                binari.list_binari.ForEach((x) =>
                {
                    if (x.progettiTreni.list_progettiTreni.Count > 0)
                    {
                        dateInizioCandidati.Add(x.progettiTreni.list_progettiTreni[0].DataInizio);
                    }
                });
                dateInizioCandidati.Sort((a, b) => a.CompareTo(b));
                DateTime dataInizio = dateInizioCandidati[0];

                List <DateTime> dateFineCandidati = new List <DateTime>();
                binari.list_binari.ForEach((x) =>
                {
                    if (x.progettiTreni.list_progettiTreni.Count > 0)
                    {
                        dateFineCandidati.Add(x.progettiTreni.list_progettiTreni.Last().DataFine);
                    }
                });
                dateFineCandidati.Sort((a, b) => a.CompareTo(b));
                DateTime dataFine       = dateFineCandidati.Last();
                TimeSpan intervalloDate = dataFine - dataInizio;
                // ]

                string sBinari = "";
                binari.list_binari.ForEach(x =>
                {
                    if (x.UtilizzaMisure)
                    {
                        sBinari += x.NomeBinario.Replace(";", " ") + " {" + x.userControl.DimensioneBinario + " m}";
                    }
                    else
                    {
                        sBinari += x.NomeBinario.Replace(";", " ");
                    }

                    if (ExportAllData)
                    {
                        sBinari += " (Commento: " + x.userControl.Commenti.Replace("\n", " ").Replace("\r", "").Replace(";", " ") + ")";
                    }

                    sBinari += ";";
                });

                FileContent += "Calendario;";
                FileContent += sBinari + " \n";

                for (int i = 0; i < intervalloDate.Days + 1; i++)
                {
                    //Ottenere il progetto presente in questa data per ogni binario.

                    string sData     = (dataInizio.AddDays(i)).ToString("dd/MM/yyyy");
                    string sProgetti = "";

                    List <Class_progettoTreno> progettiInData = new List <Class_progettoTreno>();
                    for (int j = 0; j < binari.list_binari.Count; j++)
                    {
                        List <Class_progettoTreno> progettiInDataBinario = binari.list_binari[j].progettiTreni.list_progettiTreni.FindAll(x =>
                        {
                            if (x.DataInizio <= Convert.ToDateTime(sData) && x.DataFine >= Convert.ToDateTime(sData))
                            {
                                return(true);
                            }
                            else
                            {
                                return(false);
                            }
                        });

                        progettiInData.AddRange(progettiInDataBinario);
                    }

                    if (progettiInData.Count > 0)
                    {
                        for (int j = 0; j < binari.list_binari.Count; j++)
                        {
                            string s = "";

                            progettiInData.ForEach(x =>
                            {
                                bool progettiMultipli = false;
                                progettiInData.ForEach((z) => { if (z != x && z.thisProgettiTreni.thisBinario.NomeBinario == x.thisProgettiTreni.thisBinario.NomeBinario)
                                                                {
                                                                    progettiMultipli = true;
                                                                }
                                                       });

                                if (x.thisProgettiTreni.thisBinario.NomeBinario == binari.list_binari[j].NomeBinario)
                                {
                                    if (binari.list_binari[j].UtilizzaMisure)
                                    {
                                        s += x.NomeProgetto.Replace(";", " ") + " {" + x.DimensioneProgetto + " m}";
                                    }
                                    else
                                    {
                                        s += x.NomeProgetto.Replace(";", " ");
                                    }

                                    if (ExportAllData && x.Commenti.Replace("\n", "").Replace("\r", "").Replace(";", "").Replace(" ", "") != "")
                                    {
                                        s += " (Commento: " + x.Commenti.Replace("\n", " ").Replace("\r", "").Replace(";", " ") + ")" + " [" + x.Colore + "]";
                                    }

                                    if (progettiMultipli)
                                    {
                                        s += " / ";
                                    }
                                    else
                                    {
                                        s += "  ";
                                    }
                                }
                            });

                            if (s == "")
                            {
                                s = " ";
                            }

                            sProgetti += s + ";";
                        }
                    }

                    FileContent += sData + ";";
                    FileContent += sProgetti + " \n";
                }

                FileContent += " \n ";

                FileMenager.SaveFile("Export", FileContent, new string[] { "CSV ", "Text" }, new string[] { "csv ", "txt" });
            }
            catch { MessageBox.Show("Errore durante l'esportazione, impossibile portare a termine l'operazione"); }
        }
 public CopyFileCommand(FileMenager fileMenager, string pathFrom, string pathTo)
 {
     _fileMenager = fileMenager;
     _pathFrom    = pathFrom;
     _pathTo      = pathTo;
 }