private void OnNeuesFahrrad(Window window)
        {
            try
            {
                var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                var file = Path.Combine(path, "Szenariorechner_"
                                        + HilfsFunktionen.GetValidFileName(NeuesFahrrad)
                                        + ".csv");
                var i = 1;
                while (File.Exists(file))
                {
                    file = Path.Combine(path, "Szenariorechner_"
                                        + HilfsFunktionen.GetValidFileName(NeuesFahrrad)
                                        + string.Format(" ({0}).csv", i++));
                }

                using (var sw = new StreamWriter(file, false, Encoding.Default))
                {
                    sw.Write(CsvFormatter.GetFormattetAlternativen(VergleichsListe));
                }

                Process.Start(new ProcessStartInfo("explorer.exe")
                {
                    Arguments = "/select, \"" + file + "\""
                });
            }
            catch (IOException ex)
            {
                HilfsFunktionen.ShowMessageBox(window, "Szenariorechner", ex.Message, true);
            }

            NeuesFahrrad = "";
        }
Exemple #2
0
        private void OnArtikelInfosAbrufen(Window window)
        {
            var errorText = string.Empty;

            if (!string.IsNullOrWhiteSpace(DatenbankId))
            {
                var index = DatenbankId.IndexOf(':');
                if (index > 0)
                {
                    var produktId = DatenbankId.Substring(index + 1);

                    if (!string.IsNullOrWhiteSpace(produktId))
                    {
                        var datenbanken = new List <DatenbankDto>
                        {
                            new DatenbankDto {
                                Datenbank = DatenbankAnzeigeString
                            }
                        };

                        PluginManager.DbManager.GetDatenbankDaten(ref datenbanken);

                        var dialog = new WaitWindow(DatenbankAnzeigeString,
                                                    datenbanken[0].ApiToken,
                                                    "",
                                                    "",
                                                    produktId)
                        {
                            Owner = window
                        };
                        dialog.ShowDialog();
                        if (dialog.Success)
                        {
                            DatenbankInfos = dialog.ResultProduktString;
                        }
                        else
                        {
                            errorText = dialog.ErrorText;
                        }
                    }
                    else
                    {
                        errorText = "Verknüpfung zur Gewichtsdatenbank fehlerhaft.";
                    }
                }
                else
                {
                    errorText = "Verknüpfung zur Gewichtsdatenbank fehlerhaft.";
                }
            }
            else
            {
                errorText = "Verknüpfung zur Gewichtsdatenbank fehlerhaft.";
            }

            if (!string.IsNullOrWhiteSpace(errorText))
            {
                HilfsFunktionen.ShowMessageBox(window, "Teileliste", errorText, true);
            }
        }
 public void OnClosing(object sender, CancelEventArgs e)
 {
     if (IsDirty)
     {
         var window = sender as Window;
         var owner  = window ?? Application.Current.MainWindow;
         if (HilfsFunktionen.ShowCloseQuestionBox(owner, "Wunschliste"))
         {
             Sichern();
         }
         else
         {
             foreach (var item in _dateiCache)
             {
                 foreach (var file in item.Item2)
                 {
                     try
                     {
                         File.Delete(Path.Combine("Daten", "Temp", file.Guid + "." + file.Dateiendung));
                     }
                     catch (Exception)
                     {
                     }
                 }
             }
         }
     }
 }
Exemple #4
0
        private void OnFileManager(Window window)
        {
            var dateiName = Path.Combine("Daten", KomponenteGuid, Guid + "." + Dateiendung);

            if (!string.IsNullOrWhiteSpace(dateiName))
            {
                try
                {
                    if (File.Exists(dateiName))
                    {
                        Process.Start(dateiName);
                    }
                    else
                    {
                        dateiName = Path.Combine("Daten", "Temp", Guid + "." + Dateiendung);
                        if (File.Exists(dateiName))
                        {
                            Process.Start(dateiName);
                        }
                    }
                }
                catch (Exception e)
                {
                    var message = "Die Datei konnte nicht geöffnet werden."
                                  + Environment.NewLine
                                  + Environment.NewLine
                                  + e.Message;
                    HilfsFunktionen.ShowMessageBox(window,
                                                   "Dateimanager",
                                                   message,
                                                   true);
                }
            }
        }
        private void OnFahrradLoeschen(Window owner)
        {
            var text = "Möchten Sie das Fahrrad wirklich löschen?";

            if (HilfsFunktionen.ShowQuestionBox(owner, "Teileliste", text))
            {
                FahrradLoeschenAction(Guid);
            }
        }
 public void OnClosing(object sender, CancelEventArgs e)
 {
     if (IsDirty)
     {
         var window = sender as Window;
         var owner  = window ?? Application.Current.MainWindow;
         if (HilfsFunktionen.ShowCloseQuestionBox(owner, "Kategorien"))
         {
             Sichern();
         }
     }
 }
Exemple #7
0
 public void OnClosing(object sender, CancelEventArgs e)
 {
     if (IsDirty)
     {
         var window = sender as Window;
         var owner  = window ?? Application.Current.MainWindow;
         if (HilfsFunktionen.ShowCloseQuestionBox(owner, "Dateimanager"))
         {
             if (!Sichern(owner))
             {
                 e.Cancel = true;
             }
         }
     }
 }
        public void OnSuchen(Window window)
        {
            var selectedKategorie = string.Empty;

            foreach (var item in KategorienList)
            {
                selectedKategorie = GetSelectedKategorie(item);
                if (!string.IsNullOrWhiteSpace(selectedKategorie))
                {
                    break;
                }
            }
            var progressWindow = new WaitWindow(AusgewaelteDatenbank,
                                                UserApiToken,
                                                HerstellerSuchen ? SelectedHersteller.Key : "",
                                                KategorieSuchen ? selectedKategorie : "",
                                                "")
            {
                Owner = window
            };

            progressWindow.ShowDialog();

            if (progressWindow.Success)
            {
                Datenbankteile.Clear();
                foreach (var item in progressWindow.ResultList)
                {
                    if (AktuellerDatenbankModus == DatenbankModus.NoneSelection)
                    {
                        item.EinbauenAction = EinbauenAction;
                        item.TauschenAction = TauschenAction;
                        item.Differenz      = SelectedTeilGewicht == -1 ? 0 : item.Gewicht - SelectedTeilGewicht;
                    }
                    item.PropertyChanged += ContentPropertyChanged;
                    Datenbankteile.Add(item);
                }
                SelectedItem = null;

                UpdateProperty("KeineTeileVisible");
            }
            else
            {
                HilfsFunktionen.ShowMessageBox(window, "Teileliste", progressWindow.ErrorText, true);
            }
        }
Exemple #9
0
        private void Loeschen(Window window, string guid)
        {
            var item = DateiListe.First(teil => teil.Guid == guid);

            try
            {
                var dateiName = Path.Combine("Daten", _komponenteGuid, item.Guid + "." + item.Dateiendung);
                if (File.Exists(dateiName))
                {
                    using (var file = File.Open(dateiName, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
                    {
                        file.Close();
                    }
                }
                else
                {
                    dateiName = Path.Combine("Daten", "Temp", item.Guid + "." + item.Dateiendung);
                    if (File.Exists(dateiName))
                    {
                        using (var file = File.Open(dateiName, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
                        {
                            file.Close();
                        }
                    }
                }

                _deletedItems.Add(item.Guid + "." + item.Dateiendung);
                DateiListe.Remove(item);
                IsDirty = true;
            }
            catch (Exception ex)
            {
                var message = "Die Datei konnte nicht entfernt werden.";
                message += Environment.NewLine + Environment.NewLine;
                message += "Stellen Sie sicher, dass die Datei nicht geöffnet ist und versuchen Sie es dann erneut.";

                if (!string.IsNullOrWhiteSpace(ex.Message))
                {
                    message += Environment.NewLine + Environment.NewLine;
                    message += ex.Message;
                }

                HilfsFunktionen.ShowMessageBox(window, "Dateimanager", message, true);
            }
        }
 internal void OnShopClick(Window window)
 {
     if (!string.IsNullOrWhiteSpace(Link))
     {
         try
         {
             Process.Start(Link);
         }
         catch (Exception e)
         {
             var message = "Der Link konnte nicht geöffnet werden."
                           + Environment.NewLine
                           + Environment.NewLine
                           + e.Message;
             HilfsFunktionen.ShowMessageBox(window,
                                            "Teileliste",
                                            message,
                                            true);
         }
     }
 }
Exemple #11
0
 private void OnArtikelAufrufen(Window window)
 {
     if (!string.IsNullOrWhiteSpace(DatenbankLink))
     {
         try
         {
             Process.Start(DatenbankLink);
         }
         catch (Exception e)
         {
             var message = "Der Link konnte nicht geöffnet werden."
                           + Environment.NewLine
                           + Environment.NewLine
                           + e.Message;
             HilfsFunktionen.ShowMessageBox(window,
                                            TitelText,
                                            message,
                                            true);
         }
     }
 }
Exemple #12
0
        private void OnArtikelInfosAbrufen(Window window)
        {
            var errorText = string.Empty;

            var datenbanken = new List <DatenbankDto>
            {
                new DatenbankDto {
                    Datenbank = Datenbank
                }
            };

            PluginManager.DbManager.GetDatenbankDaten(ref datenbanken);

            var dialog = new WaitWindow(Datenbank,
                                        datenbanken[0].ApiToken,
                                        "",
                                        "",
                                        ProduktId)
            {
                Owner = window
            };

            dialog.ShowDialog();
            if (dialog.Success)
            {
                DatenbankInfos = dialog.ResultProduktString;
            }
            else
            {
                errorText = dialog.ErrorText;
            }

            if (!string.IsNullOrWhiteSpace(errorText))
            {
                HilfsFunktionen.ShowMessageBox(window,
                                               TitelText,
                                               errorText,
                                               true);
            }
        }
        public void OnAbrufen(Window window)
        {
            var progressWindow = new WaitWindow(AusgewaelteDatenbank,
                                                UserApiToken,
                                                "",
                                                "",
                                                "")
            {
                Owner = window
            };

            progressWindow.ShowDialog();

            if (progressWindow.Success)
            {
                SaveDatenbanken();

                HerstellerList     = new ObservableCollection <KeyValuePair <string, string> >(progressWindow.ResultHerstellerDto.Data);
                SelectedHersteller = HerstellerList.FirstOrDefault();

                KategorienList = new ObservableCollection <KategorienViewModel>(progressWindow.ResultKategorienList);
                foreach (var item in KategorienList)
                {
                    SetAction(item);
                }

                UpdateProperty("KannSuchen");
            }
            else
            {
                HilfsFunktionen.ShowMessageBox(window,
                                               "Teileliste",
                                               progressWindow.ErrorText,
                                               true);
            }
        }
        private void OnExport(Window window)
        {
            if (ExportformatCsv)
            {
                try
                {
                    var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                    var file = Path.Combine(path, "Wunschliste.csv");

                    var i = 1;
                    while (File.Exists(file))
                    {
                        file = Path.Combine(path, string.Format("Wunschliste ({0}).csv", i++));
                    }

                    using (var sw = new StreamWriter(file, false, Encoding.Default))
                    {
                        sw.Write(CsvFormatter.GetFormattetWunschliste(Wunschliste));
                    }

                    Process.Start(new ProcessStartInfo("explorer.exe")
                    {
                        Arguments = "/select, \"" + file + "\""
                    });
                }
                catch (IOException ex)
                {
                    HilfsFunktionen.ShowMessageBox(window, "Wunschliste", ex.Message, true);
                }
            }
            else
            {
                var liste = new List <EinzelteilExportDto>();

                foreach (var item in Wunschliste)
                {
                    var wunschteil = new EinzelteilExportDto
                    {
                        Guid            = item.Guid,
                        Komponente      = item.Komponente,
                        Hersteller      = item.Hersteller,
                        Beschreibung    = item.Beschreibung,
                        Groesse         = item.Groesse,
                        Jahr            = item.Jahr,
                        DatenbankId     = item.DatenbankId,
                        DatenbankLink   = item.DatenbankLink,
                        Preis           = item.Preis,
                        Gewicht         = item.Gewicht,
                        DokumentenListe = new List <DateiDto>()
                    };

                    if (item.IsNeueKomponente)
                    {
                        var cachedItem = _dateiCache.FirstOrDefault(teil => teil.Item1 == wunschteil.Guid);
                        if (cachedItem != null)
                        {
                            wunschteil.DokumentenListe.AddRange(cachedItem.Item2);
                        }
                    }
                    else
                    {
                        var dateiListe = new List <DateiDto>();
                        PluginManager.DbManager.GetDateiInfos(item.Guid, ref dateiListe);
                        wunschteil.DokumentenListe.AddRange(dateiListe);
                    }

                    liste.Add(wunschteil);
                }

                PluginManager.ExportManager.ExportKomponenten(new WindowInteropHelper(window).Handle,
                                                              "Wunschliste",
                                                              CsvFormatter.GetFormattetWunschliste(Wunschliste),
                                                              liste);
            }
        }
Exemple #15
0
        private void PackAndOpenZipFile(IEnumerable <ZipOrdnerDto> fileList, string baseFileName, string csvDatei)
        {
            var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            var secureBaseFileName = HilfsFunktionen.GetValidFileName(baseFileName);
            var file = Path.Combine(path, secureBaseFileName + ".zip");
            var i    = 1;

            while (File.Exists(file))
            {
                file = Path.Combine(path, string.Format(secureBaseFileName + " ({0}).zip", i++));
            }

            using (FileStream fs = new FileStream(file, FileMode.Create))
            {
                using (ZipArchive arch = new ZipArchive(fs, ZipArchiveMode.Create))
                {
                    if (!string.IsNullOrWhiteSpace(csvDatei))
                    {
                        var entry = arch.CreateEntry("Komponenten.csv");
                        entry.LastWriteTime = DateTimeOffset.Now;
                        using (var entryStream = entry.Open())
                        {
                            using (var streamWriter = new StreamWriter(entryStream, System.Text.Encoding.Default))
                            {
                                streamWriter.Write(csvDatei);
                            }
                        }
                    }

                    var zipFileList = new List <DateiVerzeichnisEintragDto>();

                    foreach (var folder in fileList)
                    {
                        var folderName = HilfsFunktionen.GetValidFileName(folder.FolderName);

                        foreach (var item in folder.FileList)
                        {
                            var subFolder = HilfsFunktionen.GetValidFileName(item.Kategorie);
                            var fileName  = HilfsFunktionen.GetValidFileName(item.Beschreibung);

                            var baseFile       = Path.Combine(folderName, subFolder, fileName);
                            var secureFileName = baseFile;

                            var j = 1;

                            while (!IsUniqueFileName(secureFileName, item.Dateiendung, zipFileList))
                            {
                                secureFileName = string.Format("{0} ({1})", secureFileName, j++);
                            }

                            zipFileList.Add(new DateiVerzeichnisEintragDto
                            {
                                ParentGuid   = folder.ParentGuid,
                                FileName     = secureFileName + "." + item.Dateiendung,
                                Kategorie    = item.Kategorie,
                                Dateiendung  = item.Dateiendung,
                                Beschreibung = item.Beschreibung
                            });

                            var fileToExport = Path.Combine("Daten", folder.ParentGuid, item.Guid + "." + item.Dateiendung);
                            if (!File.Exists(fileToExport))
                            {
                                fileToExport = Path.Combine("Daten", "Temp", item.Guid + "." + item.Dateiendung);
                            }

                            arch.CreateEntryFromFile(fileToExport, secureFileName + "." + item.Dateiendung);
                        }
                    }

                    if (!string.IsNullOrWhiteSpace(csvDatei))
                    {
                        var entry = arch.CreateEntry("Dateiverzeichnis.csv");
                        entry.LastWriteTime = DateTimeOffset.Now;
                        using (var entryStream = entry.Open())
                        {
                            using (var streamWriter = new StreamWriter(entryStream, Encoding.Default))
                            {
                                var dateiMap = new StringBuilder();

                                foreach (var item in zipFileList)
                                {
                                    dateiMap.AppendLine(string.Format("{0};{1};{2};{3};{4}",
                                                                      item.ParentGuid,
                                                                      item.FileName,
                                                                      item.Dateiendung,
                                                                      item.Kategorie == null ? "" : item.Kategorie.Replace(";", ""),
                                                                      item.Beschreibung == null ? "" : item.Beschreibung.Replace(";", "")));
                                }

                                streamWriter.Write(dateiMap.ToString());
                            }
                        }
                    }
                }
            }

            Process.Start(new ProcessStartInfo("explorer.exe")
            {
                Arguments = "/select, \"" + file + "\""
            });
        }
        public void OnOkFunc(Window window)
        {
            if (!BestehendSuchen)
            {
                var datenbanken = new List <DatenbankDto>
                {
                    new DatenbankDto {
                        Datenbank = AnlegenViewModel.DatenbankViewModel.AusgewaelteDatenbank
                    }
                };

                PluginManager.DbManager.GetDatenbankDaten(ref datenbanken);

                var dateiName = string.Empty;

                if (AnlegenViewModel.NeuesAusgewaehlt)
                {
                    dateiName = AnlegenViewModel.DateiViewModel.Datei;
                }
                else
                {
                    dateiName = Path.Combine("Daten", AnlegenViewModel.Guid, AnlegenViewModel.SelectedDatei.Guid + "." + AnlegenViewModel.SelectedDatei.Dateiendung);

                    if (!File.Exists(dateiName))
                    {
                        dateiName = Path.Combine("Daten", "Temp", AnlegenViewModel.SelectedDatei.Guid + "." + AnlegenViewModel.SelectedDatei.Dateiendung);
                    }
                }

                string base64ImageRepresentation;

                try
                {
                    byte[] imageArray = File.ReadAllBytes(dateiName);
                    base64ImageRepresentation = Convert.ToBase64String(imageArray);
                }
                catch (Exception ex)
                {
                    var message = "Die Datei konnte nicht geöffnet werden."
                                  + Environment.NewLine
                                  + Environment.NewLine
                                  + ex.Message;

                    HilfsFunktionen.ShowMessageBox(window,
                                                   TitelText,
                                                   message,
                                                   true);
                    return;
                }

                var progressWindow = new UploadWaitwindow(AnlegenViewModel.DatenbankViewModel.AusgewaelteDatenbank,
                                                          datenbanken[0].ApiToken,
                                                          null,
                                                          new ProduktHochladenDto
                {
                    Beschreibung      = AnlegenViewModel.Beschreibung,
                    Gewicht           = AnlegenViewModel.Gewicht,
                    GewichtHersteller = AnlegenViewModel.GewichtHersteller,
                    Groesse           = AnlegenViewModel.Groesse,
                    Hersteller        = AnlegenViewModel.DatenbankViewModel.SelectedHersteller.Key,
                    ImageBase64       = base64ImageRepresentation,
                    Jahr      = AnlegenViewModel.Jahr,
                    Kategorie = AnlegenViewModel.DatenbankViewModel.GetSelectedKategorieId(),
                    Kommentar = AnlegenViewModel.Kommentar,
                    Link      = AnlegenViewModel.Link
                })
                {
                    Owner = window
                };
                progressWindow.ShowDialog();

                if (progressWindow.Success)
                {
                    ResultDatenbankLink = progressWindow.ResultProduktUrl;
                    ResultDatenbankId   = AnlegenViewModel.DatenbankViewModel.AusgewaelteDatenbank + ":" + progressWindow.ResultProduktId;

                    var message = "Die Messung wurde erfolgreich hochgeladen.";

                    if (AnlegenViewModel.NeuesAusgewaehlt)
                    {
                        try
                        {
                            var datei       = AnlegenViewModel.DateiViewModel.Datei;
                            var guid        = Guid.NewGuid().ToString();
                            var dateiendung = Path.GetExtension(datei);
                            if (dateiendung.StartsWith("."))
                            {
                                dateiendung = dateiendung.Substring(1);
                            }

                            dateiendung = dateiendung.ToLower();

                            File.Copy(datei, "Daten\\Temp\\" + guid + "." + dateiendung);

                            SaveDateiAction(new DateiDto
                            {
                                Guid         = guid,
                                Kategorie    = "Gewichtsmessung",
                                Beschreibung = Path.GetFileNameWithoutExtension(datei),
                                Dateiendung  = dateiendung
                            });
                        }
                        catch (Exception ex)
                        {
                            message += Environment.NewLine + Environment.NewLine;

                            message += "Die Datei konnte nicht kopiert werden.";

                            if (!string.IsNullOrWhiteSpace(ex.Message))
                            {
                                message += Environment.NewLine + Environment.NewLine;
                                message += ex.Message;
                            }
                        }
                    }

                    HilfsFunktionen.ShowMessageBox(window,
                                                   TitelText,
                                                   message,
                                                   false);
                    IsOk = true;
                    CloseAction();
                }
                else
                {
                    HilfsFunktionen.ShowMessageBox(window,
                                                   TitelText,
                                                   progressWindow.ErrorText,
                                                   true);
                }
            }
            else
            {
                ResultDatenbankLink = DatenbankViewModel.SelectedItem.DatenbankLink;
                ResultDatenbankId   = DatenbankViewModel.SelectedItem.DatenbankId;
                IsOk = true;
                CloseAction();
            }
        }
        public SzenariorechnerViewModel(FahrradViewModel selectedFahrrad, List <KomponenteDto> alternativenListe)
        {
            var komponentenListe = new List <KomponenteDto>();

            PluginManager.DbManager.GetKomponente(selectedFahrrad.Guid, ref komponentenListe);

            VergleichsListe = new ObservableCollection <SzenarioKomponenteViewModel>();
            OhneAlternative = new ObservableCollection <OhneZuordnungViewModel>();
            OhneKomponente  = new ObservableCollection <OhneZuordnungViewModel>();
            Restekiste      = new ObservableCollection <SzenarioAlternativeViewModel>();
            Wunschliste     = new ObservableCollection <SzenarioAlternativeViewModel>();

            foreach (var item in komponentenListe)
            {
                var vm = new SzenarioKomponenteViewModel()
                {
                    Komponente           = item.Komponente,
                    Gewicht              = item.Gewicht,
                    Guid                 = item.Guid,
                    Beschreibung         = HilfsFunktionen.GetAnzeigeName(item),
                    AlternativeVorhanden = false,
                    LoeschenAction       = ZeileLoeschen
                };
                vm.PropertyChanged += ContentPropertyChanged;

                var alternative = alternativenListe.Find(x => x.Komponente == item.Komponente);
                if (alternative != null)
                {
                    vm.AlternativeHersteller   = alternative.Hersteller;
                    vm.AlternativeBeschreibung = alternative.Beschreibung;
                    vm.AlternativeGroesse      = alternative.Groesse;
                    vm.AlternativeJahr         = alternative.Jahr;
                    vm.AlternativeGewicht      = alternative.Gewicht;
                    vm.AlternativeVorhanden    = true;
                    alternativenListe.Remove(alternative);
                }
                else
                {
                    vm.AlternativeVorhanden    = false;
                    vm.AlternativeHersteller   = "";
                    vm.AlternativeBeschreibung = "";
                    vm.AlternativeGroesse      = "";
                    vm.AlternativeJahr         = "";
                    vm.AlternativeGewicht      = 0;

                    var zuord = new OhneZuordnungViewModel
                    {
                        Guid         = vm.Guid,
                        Komponente   = vm.Komponente,
                        Beschreibung = vm.Beschreibung,
                        Gewicht      = vm.Gewicht,
                        Differenz    = -vm.Gewicht,
                        Alternative  = vm.AlternativeName
                    };
                    zuord.ZuordnenAction = OnZuordnenOhneAlternative;
                    OhneAlternative.Add(zuord);
                }
                VergleichsListe.Add(vm);
            }

            foreach (var item in alternativenListe)
            {
                var vm = new SzenarioKomponenteViewModel
                {
                    Komponente              = item.Komponente,
                    Gewicht                 = 0,
                    Beschreibung            = null,
                    Guid                    = item.Guid,
                    AlternativeHersteller   = item.Hersteller,
                    AlternativeBeschreibung = item.Beschreibung,
                    AlternativeGroesse      = item.Groesse,
                    AlternativeJahr         = item.Jahr,
                    AlternativeGewicht      = item.Gewicht,
                    AlternativeVorhanden    = true,
                    LoeschenAction          = ZeileLoeschen
                };
                vm.PropertyChanged += ContentPropertyChanged;
                VergleichsListe.Add(vm);

                var zuord = new OhneZuordnungViewModel
                {
                    Guid         = vm.Guid,
                    Komponente   = vm.Komponente,
                    Beschreibung = vm.Beschreibung,
                    Alternative  = vm.AlternativeName,
                    Gewicht      = vm.AlternativeGewicht,
                    Differenz    = vm.AlternativeDifferenz
                };
                zuord.ZuordnenAction = OnZuordnenOhneKomponente;
                OhneKomponente.Add(zuord);
            }

            SelectedKomponente = null;

            var restekiste = new List <RestteilDto>();

            PluginManager.DbManager.GetEinzelteile(ref restekiste);

            foreach (var restteil in restekiste)
            {
                var vm = new SzenarioAlternativeViewModel()
                {
                    Komponente     = restteil.Komponente,
                    Gewicht        = restteil.Gewicht,
                    Hersteller     = restteil.Hersteller,
                    Beschreibung   = restteil.Beschreibung,
                    Groesse        = restteil.Groesse,
                    Jahr           = restteil.Jahr,
                    Guid           = restteil.Guid,
                    Differenz      = 0,
                    EinbauenAction = EinbauenRestekiste,
                    TauschenAction = TauschenRestekiste
                };
                Restekiste.Add(vm);
            }

            AlleRestteile         = CollectionViewSource.GetDefaultView(Restekiste);
            RestekisteFilterAktiv = true;
            AlleRestteile.Filter  = FilterRestekiste;

            var wunschliste = new List <WunschteilDto>();

            PluginManager.DbManager.GetWunschteile(ref wunschliste);

            foreach (var wunschteil in wunschliste)
            {
                var vm = new SzenarioAlternativeViewModel()
                {
                    Komponente     = wunschteil.Komponente,
                    Gewicht        = wunschteil.Gewicht,
                    Hersteller     = wunschteil.Hersteller,
                    Beschreibung   = wunschteil.Beschreibung,
                    Groesse        = wunschteil.Groesse,
                    Jahr           = wunschteil.Jahr,
                    Guid           = wunschteil.Guid,
                    Differenz      = 0,
                    EinbauenAction = EinbauenWunschliste,
                    TauschenAction = TauschenWunschliste
                };
                Wunschliste.Add(vm);
            }

            AlleWunschteile        = CollectionViewSource.GetDefaultView(Wunschliste);
            WunschlisteFilterAktiv = true;
            AlleWunschteile.Filter = FilterWunschliste;

            var datenbanken = new List <DatenbankDto>
            {
                new DatenbankDto {
                    Datenbank = "mtb-news.de"
                },
                new DatenbankDto {
                    Datenbank = "rennrad-news.de"
                }
            };

            PluginManager.DbManager.GetDatenbankDaten(ref datenbanken);

            DatenbankViewModel = new WebAuswahlViewModel(datenbanken, DatenbankModus.NoneSelection);
            DatenbankViewModel.EinbauenAction = EinbauenGewichtsdatenbank;
            DatenbankViewModel.TauschenAction = TauschenGewichtsdatenbank;

            NeueKomponente    = "";
            NeuerHersteller   = "";
            NeueBeschreibung  = "";
            NeueGroesse       = "";
            NeuesJahr         = "";
            KomponenteEnabled = true;

            NeuesFahrrad = "";

            NameFahrrad = selectedFahrrad.Name;

            AlternativeBearbeiten = true;

            HinzufuegenCommand  = new MyCommand(OnHinzufuegen);
            TauschenCommand     = new MyCommand(OnTauschen);
            NeuesFahrradCommand = new MyParameterCommand <Window>(OnNeuesFahrrad);
        }
Exemple #18
0
        private void OnHochladen(Window window)
        {
            var dateiName = string.Empty;

            if (_neuesAusgewaehlt)
            {
                dateiName = DateiViewModel.Datei;
            }
            else
            {
                dateiName = Path.Combine("Daten", _guid, SelectedDatei.Guid + "." + SelectedDatei.Dateiendung);

                if (!File.Exists(dateiName))
                {
                    dateiName = Path.Combine("Daten", "Temp", SelectedDatei.Guid + "." + SelectedDatei.Dateiendung);
                }
            }

            string base64ImageRepresentation;

            try
            {
                byte[] imageArray = File.ReadAllBytes(dateiName);
                base64ImageRepresentation = Convert.ToBase64String(imageArray);
            }
            catch (Exception ex)
            {
                var message = "Die Datei konnte nicht geöffnet werden."
                              + Environment.NewLine
                              + Environment.NewLine
                              + ex.Message;

                HilfsFunktionen.ShowMessageBox(window,
                                               TitelText,
                                               message,
                                               true);
                return;
            }

            var datenbanken = new List <DatenbankDto>
            {
                new DatenbankDto {
                    Datenbank = Datenbank
                }
            };

            PluginManager.DbManager.GetDatenbankDaten(ref datenbanken);

            var progressWindow = new UploadWaitwindow(Datenbank,
                                                      datenbanken[0].ApiToken,
                                                      new MessungHochladenDto
            {
                Gewicht     = Gewicht,
                ProduktId   = ProduktId,
                ImageBase64 = base64ImageRepresentation
            },
                                                      null)
            {
                Owner = window
            };

            progressWindow.ShowDialog();

            if (progressWindow.Success)
            {
                var message = "Die Messung wurde erfolgreich hochgeladen.";

                if (_neuesAusgewaehlt)
                {
                    try
                    {
                        var datei       = DateiViewModel.Datei;
                        var guid        = Guid.NewGuid().ToString();
                        var dateiendung = Path.GetExtension(datei);
                        if (dateiendung.StartsWith("."))
                        {
                            dateiendung = dateiendung.Substring(1);
                        }

                        dateiendung = dateiendung.ToLower();

                        File.Copy(datei, "Daten\\Temp\\" + guid + "." + dateiendung);

                        SaveDateiAction(new DateiDto
                        {
                            Guid         = guid,
                            Kategorie    = "Gewichtsmessung",
                            Beschreibung = Path.GetFileNameWithoutExtension(datei),
                            Dateiendung  = dateiendung
                        });
                    }
                    catch (Exception ex)
                    {
                        message += Environment.NewLine + Environment.NewLine;

                        message += "Die Datei konnte nicht kopiert werden.";

                        if (!string.IsNullOrWhiteSpace(ex.Message))
                        {
                            message += Environment.NewLine + Environment.NewLine;
                            message += ex.Message;
                        }
                    }
                }

                HilfsFunktionen.ShowMessageBox(window,
                                               TitelText,
                                               message,
                                               false);
            }
            else
            {
                HilfsFunktionen.ShowMessageBox(window,
                                               TitelText,
                                               progressWindow.ErrorText,
                                               true);
            }

            CloseAction();
        }
Exemple #19
0
        public void ExportKomponenten(IntPtr parent,
                                      string dateiName,
                                      string csvContent,
                                      List <EinzelteilExportDto> listeKomponenten)
        {
            var dialog = new ExportManagerDialog();

            new WindowInteropHelper(dialog).Owner = parent;

            var viewModel = new ExportManagerViewModel(listeKomponenten, !string.IsNullOrWhiteSpace(csvContent))
            {
                CloseAction = dialog.Close
            };

            dialog.DataContext = viewModel;

            dialog.ShowDialog();

            if (viewModel.DoExport)
            {
                try
                {
                    var komponentenList = new List <ZipOrdnerDto>();

                    foreach (var komponente in viewModel.DateiListe)
                    {
                        if (komponente.DateiViewModelListe.Any(teil => teil.IsChecked))
                        {
                            var newItem = new ZipOrdnerDto
                            {
                                ParentGuid = komponente.Guid,
                                FolderName = HilfsFunktionen.GetValidFileName(komponente.Komponente)
                            };
                            if (newItem.FolderName.Length >= 64)
                            {
                                newItem.FolderName = newItem.FolderName.Substring(0, 64);
                            }

                            newItem.FileList = new List <ZipDateiDto>();
                            foreach (var item in komponente.DateiViewModelListe)
                            {
                                newItem.FileList.Add(new ZipDateiDto()
                                {
                                    Dateiendung  = item.Dateiendung,
                                    Guid         = item.Guid,
                                    Kategorie    = item.Kategorie,
                                    Beschreibung = item.Beschreibung
                                });
                            }

                            komponentenList.Add(newItem);
                        }
                    }

                    PackAndOpenZipFile(komponentenList, dateiName, viewModel.MitCsv ? csvContent : "");
                }
                catch (IOException ex)
                {
                    throw new Exception("Die Daten konnten nicht exportiert werden", ex);
                }
            }
        }
Exemple #20
0
        public bool Sichern(Window window)
        {
            var bReturn = true;

            try
            {
                if (_isCachedKomponente)
                {
                    foreach (var item in _deletedItems)
                    {
                        var deletedItem = DateiCache.FirstOrDefault(teil => teil.Guid == item);
                        if (deletedItem != null)
                        {
                            try
                            {
                                File.Delete(Path.Combine("Daten", "Temp", deletedItem.Guid + "." + deletedItem.Dateiendung));
                            }
                            catch (Exception)
                            {
                            }
                        }
                    }
                    DateiCache.Clear();

                    foreach (var item in DateiListe)
                    {
                        DateiCache.Add(new DateiDto
                        {
                            Guid         = item.Guid,
                            Kategorie    = item.Kategorie,
                            Beschreibung = item.Beschreibung,
                            Dateiendung  = item.Dateiendung
                        });
                    }
                }
                else
                {
                    PluginManager.DbManager.DeleteDateiInfos(_komponenteGuid, _deletedItems);
                    _deletedItems.Clear();
                    PluginManager.DbManager.SaveDateiInfos(_komponenteGuid, DateiListe.Select(item => new DateiDto
                    {
                        Guid         = item.Guid,
                        Kategorie    = item.Kategorie,
                        Beschreibung = item.Beschreibung,
                        Dateiendung  = item.Dateiendung
                    }).ToList());
                }

                IsDirty = false;
            }
            catch (Exception ex)
            {
                var message = "Beim Speichern der Dateien ist ein Fehler aufgetreten.";

                if (!string.IsNullOrWhiteSpace(ex.Message))
                {
                    message += Environment.NewLine + Environment.NewLine;
                    message += ex.Message;
                }

                HilfsFunktionen.ShowMessageBox(window, "Dateimanager", message, true);

                bReturn = false;
            }

            return(bReturn);
        }
Exemple #21
0
        private void OnHinzufuegen(Window window)
        {
            var dialog = new NeuesDokumentDialog()
            {
                Top   = window.Top + 40,
                Left  = window.Left + (window.ActualWidth - 505) / 2,
                Owner = window
            };

            var viewModel = new DokumentBearbeitenViewModel("", true)
            {
                CloseAction = dialog.Close
            };

            dialog.DataContext = viewModel;
            dialog.ShowDialog();

            if (viewModel.IsOk)
            {
                try
                {
                    var datei       = viewModel.DateiViewModel.Datei;
                    var dateiendung = Path.GetExtension(datei);
                    if (!string.IsNullOrWhiteSpace(dateiendung))
                    {
                        if (dateiendung.Substring(0, 1) == ".")
                        {
                            dateiendung = dateiendung.Substring(1);
                        }
                    }

                    dateiendung = dateiendung.ToLower();

                    var guid = Guid.NewGuid().ToString();

                    File.Copy(datei, "Daten\\Temp\\" + guid + "." + dateiendung);

                    var newItem = new DokumentViewModel(_komponenteGuid, new DateiDto()
                    {
                        Guid         = guid,
                        Beschreibung = viewModel.Beschreibung,
                        Kategorie    = viewModel.SelectedKategorie,
                        Dateiendung  = dateiendung
                    })
                    {
                        NachObenAction  = NachObenSortieren,
                        NachUntenAction = NachUntenSortieren,
                        LoeschenAction  = Loeschen
                    };
                    newItem.PropertyChanged += ContentPropertyChanged;

                    DateiListe.Add(newItem);

                    IsDirty = true;
                }
                catch (Exception ex)
                {
                    var message = "Die Datei konnte nicht kopiert werden.";

                    if (!string.IsNullOrWhiteSpace(ex.Message))
                    {
                        message += Environment.NewLine + Environment.NewLine;
                        message += ex.Message;
                    }

                    HilfsFunktionen.ShowMessageBox(window, "Dateimanager", message, true);
                }
            }
        }
        public EinzelteilZuordnenViewModel(KomponenteDto einzelteil, List <DateiDto> listeDateien, EinzelteilBearbeitenEnum typ)
        {
            IsOk = false;

            switch (typ)
            {
            case EinzelteilBearbeitenEnum.Komponente:
            {
                TitelText = "Teileliste";
                break;
            }

            case EinzelteilBearbeitenEnum.Restteil:
            {
                TitelText = "Restekiste";
                break;
            }

            case EinzelteilBearbeitenEnum.Wunschteil:
            {
                TitelText = "Wunschliste";
                break;
            }
            }

            var converter = new Converter.IntToWeightConverter();

            Artikeltext = einzelteil.Komponente + " "
                          + HilfsFunktionen.GetAnzeigeName(einzelteil.Hersteller,
                                                           einzelteil.Beschreibung,
                                                           einzelteil.Groesse,
                                                           einzelteil.Jahr)
                          + " " + converter.Convert(einzelteil.Gewicht, null, null, null);

            ResultDatenbankLink = "";
            ResultDatenbankId   = "";

            var datenbanken = new List <DatenbankDto>
            {
                new DatenbankDto {
                    Datenbank = "mtb-news.de"
                },
                new DatenbankDto {
                    Datenbank = "rennrad-news.de"
                }
            };

            PluginManager.DbManager.GetDatenbankDaten(ref datenbanken);

            DatenbankViewModel = new WebAuswahlViewModel(datenbanken, DatenbankModus.SingleSelection);
            DatenbankViewModel.PropertyChanged += ContentPropertyChanged;

            AnlegenViewModel = new ArtikelAnlegenViewModel(datenbanken, listeDateien, einzelteil);
            AnlegenViewModel.PropertyChanged += ContentPropertyChanged;

            BestehendSuchen = true;

            OnOkCommand = new MyParameterCommand <Window>(OnOkFunc);

            HasError = true;
        }
Exemple #23
0
        internal MessungHochladenViewModel(KomponenteDto einzelteil, List <DateiDto> listeDateien, EinzelteilBearbeitenEnum typ)
        {
            DatenbankInfos = "";

            switch (typ)
            {
            case EinzelteilBearbeitenEnum.Komponente:
            {
                TitelText = "Teileliste";
                break;
            }

            case EinzelteilBearbeitenEnum.Restteil:
            {
                TitelText = "Restekiste";
                break;
            }

            case EinzelteilBearbeitenEnum.Wunschteil:
            {
                TitelText = "Wunschliste";
                break;
            }
            }

            DatenbankLink = einzelteil.DatenbankLink;

            if (!string.IsNullOrWhiteSpace(einzelteil.DatenbankId))
            {
                var index = einzelteil.DatenbankId.IndexOf(':');
                if (index > 0)
                {
                    Datenbank = einzelteil.DatenbankId.Substring(0, index);
                    ProduktId = einzelteil.DatenbankId.Substring(index + 1);
                }
            }

            var converter = new Converter.IntToWeightConverter();

            Artikeltext = einzelteil.Komponente + " "
                          + HilfsFunktionen.GetAnzeigeName(einzelteil.Hersteller,
                                                           einzelteil.Beschreibung,
                                                           einzelteil.Groesse,
                                                           einzelteil.Jahr)
                          + " " + converter.Convert(einzelteil.Gewicht, null, null, null);

            OnHochladenCommand         = new MyParameterCommand <Window>(OnHochladen);
            ArtikelInfosAbrufenCommand = new MyParameterCommand <Window>(OnArtikelInfosAbrufen);
            ArtikelAufrufenCommand     = new MyParameterCommand <Window>(OnArtikelAufrufen);

            DateiViewModel = new CommonDateiViewModel(DateiOeffnenEnum.Image);
            DateiViewModel.PropertyChanged += ContentPropertyChanged;

            Gewicht = einzelteil.Gewicht;
            _guid   = einzelteil.Guid;

            var liste = new List <DateiDto>(listeDateien);

            liste.RemoveAll(item => item.Kategorie != "Gewichtsmessung");
            liste.RemoveAll(item => !(item.Dateiendung.ToLower() == "png" ||
                                      item.Dateiendung.ToLower() == "jpg" ||
                                      item.Dateiendung.ToLower() == "jpeg"));

            NeuesAusgewaehlt = liste.Count == 0;
            AuswahlEnabled   = liste.Count > 0;

            DateiListe = new ObservableCollection <DateiAuswahlViewModel>();

            foreach (var item in liste)
            {
                DateiListe.Add(new DateiAuswahlViewModel(_guid, TitelText, item));
            }

            SelectedDatei = DateiListe.FirstOrDefault();

            HasError = CheckForError();
        }