Skocz do zawartości

[Sfera] Dodawanie tabeli kursów walut - problem z walutami innymi niż EUR

Polecane posty

Mam taki kod, który ma za zadanie stworzyć tabelę kursów walut i uzupełnić ją kursami:

ITabeleKursowWalut tabele = sfera.PodajObiektTypu<ITabeleKursowWalut>();                 
ILinieKursowWalut linie = sfera.PodajObiektTypu<ILinieKursowWalut>(); 
IWalutyDaneDomyslne walutyDD = sfera.PodajObiektTypu<IWaluty>().DaneDomyslne;
// tworzenie nowej oferty            
using (ITabelaKursowWalut tabela = tabele.Utworz())
  {	
  string number = results.number;
  tabela.Dane.Numer = number;
  string dateString = results.date+" 07:00:00,000";
  DateTime tableDate = DateTime.ParseExact(dateString,"yyyy-MM-dd HH:mm:ss,fff",System.Globalization.CultureInfo.InvariantCulture);
  tabela.Dane.DataPublikacji = tableDate; 
  int line = results.line;
  tabela.Dane.Linia = linie.Dane.Wszystkie().Where(l => l.Id == line).SingleOrDefault();
  // wypełnienie kursów
  foreach(var rate in results.rates)
    {
  	string code = rate.code; decimal ask = rate.ask;
  	Console.WriteLine(code);
    TabelaKursowWalutPozycja kurs = new TabelaKursowWalutPozycja();
    tabela.Dane.Pozycje.Add(kurs);    
    kurs.WalutaBazowa = walutyDD.PLN;
    if(code=="EUR") { Console.WriteLine("Euro"); kurs.WalutaPrzeliczana = walutyDD.EUR; }
    if(code=="CHF") { Console.WriteLine("Frank"); kurs.WalutaPrzeliczana = walutyDD.CHF; }
    if(code=="GBP") { Console.WriteLine("Funty"); kurs.WalutaPrzeliczana = walutyDD.GBP; }
    kurs.Kurs = ask;
    Console.WriteLine(kurs.WalutaPrzeliczana.Symbol);
    
    }
  tabela.Zapisz()
  }

I kod działał Sobie spokojnie do tej pory, do czasu aż zostałem poproszony o dodanie innych walut niż EUR. I tutaj nie rozumiem, bo zasady skopiowałem, nawet próbowałem przesłać tylko GBP, ale tak jakby nie podłączała się taka waluta. W samy programie spokojnie mogę taką tabelę stworzyć.

Poniżej przykład co zwraca dla EUR, a co dla GBP:

obraz.png.16126db05aa409f6153cd88d79666208.png

Link to postu

Proszę sprawdzić jaki jest identyfikator waluty GBP w bazie danych (powinien to być guid EE50AB7F-D2CA-43A7-B1B8-0F8FE5CCADC5), bo być może waluta pochodząca z danych domyślnych została usunięta, a następnie waluta GBP została dodana ręcznie. W takim przypadku interfejs danych domyślnych zwróci null dla tej waluty, ponieważ posługuje się on wbudowanymi identyfikatorami. Jedyne wyjście to wyszukanie waluty w repozytorium na podstawie symbolu.

Link to postu
×
×
  • Dodaj nową pozycję...