Exemplo n.º 1
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();
        }
        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();
            }
        }