private void _worker_DoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                var eventArgs = e.Argument as ApiEventArgs;
                if (eventArgs != null)
                {
                    var apiHandler = new ApiHandler();

                    if (!String.IsNullOrWhiteSpace(eventArgs.ProduktId))
                    {
                        var produkt = apiHandler.SucheEinzelnenArtikel(eventArgs.Datenbank,
                                                                       eventArgs.ApiToken,
                                                                       eventArgs.ProduktId);
                        ResultProduktString += produkt.Data.Produkt.Kategorie.Title.Trim() + Environment.NewLine;
                        ResultProduktString += produkt.Data.Produkt.Manufacturer.Name.Trim() + Environment.NewLine;
                        ResultProduktString += produkt.Data.Produkt.Name.Trim() + Environment.NewLine;
                        if (!string.IsNullOrWhiteSpace(produkt.Data.Produkt.Groesse))
                        {
                            ResultProduktString += produkt.Data.Produkt.Groesse.Trim() + Environment.NewLine;
                        }
                        else
                        {
                            ResultProduktString += Environment.NewLine;
                        }
                        if (!string.IsNullOrWhiteSpace(produkt.Data.Produkt.Jahr))
                        {
                            ResultProduktString += produkt.Data.Produkt.Jahr.Trim() + Environment.NewLine;
                        }
                        else
                        {
                            ResultProduktString += Environment.NewLine;
                        }
                        var converter = new Converter.IntToWeightConverter();
                        ResultProduktString += converter.Convert((int)produkt.Data.Produkt.Gewicht, null, null, null);

                        ResultProduktLink = produkt.Data.Produkt.Url.Trim();

                        e.Result = true;
                    }
                    else if (string.IsNullOrWhiteSpace(eventArgs.HerstellerId) &&
                             string.IsNullOrWhiteSpace(eventArgs.KategorieId))
                    {
                        ResultHerstellerDto = apiHandler.GetHerstellerListe(eventArgs.Datenbank, eventArgs.ApiToken);
                        var resultDto = apiHandler.GetKategorienListe(eventArgs.Datenbank, eventArgs.ApiToken);
                        KonvertiereKategorien(resultDto);
                        e.Result = true;
                    }
                    else
                    {
                        bool herstellerMitnehmen = !string.IsNullOrWhiteSpace(eventArgs.HerstellerId);
                        bool kategorienMitnehmen = !string.IsNullOrWhiteSpace(eventArgs.KategorieId);
                        var  produkteHersteller  = new ResponseProduktListeDto();
                        var  produkteKategorie   = new ResponseProduktListeDto();
                        if (herstellerMitnehmen)
                        {
                            produkteHersteller = apiHandler.SucheArtikel(eventArgs.Datenbank,
                                                                         eventArgs.ApiToken,
                                                                         eventArgs.HerstellerId,
                                                                         true);
                        }
                        if (kategorienMitnehmen && !herstellerMitnehmen)
                        {
                            produkteKategorie = apiHandler.SucheArtikel(eventArgs.Datenbank,
                                                                        eventArgs.ApiToken,
                                                                        eventArgs.KategorieId,
                                                                        false);
                        }

                        if (herstellerMitnehmen && kategorienMitnehmen)
                        {
                            foreach (var item in produkteHersteller.Data.Produkte)
                            {
                                if (item.Produkt.Kategorie.Id == eventArgs.KategorieId)
                                {
                                    var viewModel = new DatenbankteilAuswahlViewModel
                                    {
                                        Komponente    = item.Produkt.Kategorie.Title,
                                        Hersteller    = item.Produkt.Manufacturer.Name,
                                        DatenbankLink = item.Produkt.Url,
                                        DatenbankId   = eventArgs.Datenbank + ":" + item.Produkt.Id,
                                        Beschreibung  = item.Produkt.Name,
                                        Gewicht       = (int)item.Produkt.Gewicht,
                                        Groesse       = item.Produkt.Groesse,
                                        Jahr          = item.Produkt.Jahr
                                    };
                                    ResultList.Add(viewModel);
                                }
                            }
                        }
                        else if (herstellerMitnehmen)
                        {
                            foreach (var item in produkteHersteller.Data.Produkte)
                            {
                                var viewModel = new DatenbankteilAuswahlViewModel
                                {
                                    Komponente    = item.Produkt.Kategorie.Title,
                                    Hersteller    = item.Produkt.Manufacturer.Name,
                                    DatenbankLink = item.Produkt.Url,
                                    DatenbankId   = eventArgs.Datenbank + ":" + item.Produkt.Id,
                                    Beschreibung  = item.Produkt.Name,
                                    Gewicht       = (int)item.Produkt.Gewicht,
                                    Groesse       = item.Produkt.Groesse,
                                    Jahr          = item.Produkt.Jahr
                                };
                                ResultList.Add(viewModel);
                            }
                        }
                        else
                        {
                            foreach (var item in produkteKategorie.Data.Produkte)
                            {
                                var viewModel = new DatenbankteilAuswahlViewModel
                                {
                                    Komponente    = item.Produkt.Kategorie.Title,
                                    Hersteller    = item.Produkt.Manufacturer.Name,
                                    DatenbankLink = item.Produkt.Url,
                                    DatenbankId   = eventArgs.Datenbank + ":" + item.Produkt.Id,
                                    Beschreibung  = item.Produkt.Name,
                                    Gewicht       = (int)item.Produkt.Gewicht,
                                    Groesse       = item.Produkt.Groesse,
                                    Jahr          = item.Produkt.Jahr
                                };
                                ResultList.Add(viewModel);
                            }
                        }


                        e.Result = true;
                    }
                }
            }
            catch (Exception ex)
            {
                e.Result  = false;
                ErrorText = ex.Message;
            }
        }
Exemple #2
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();
        }
        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;
        }