Jednostka organizacyjna to inaczej mówiąc - oddział. Zgodnie z komunikatem magazyn musi być elementem co najmniej jednego oddziału. Typ JednostkaOrganizacyjna to klasa bazowa dla centrali, która zawsze jest jedna i jest tworzona podczas zakładania podmiotu oraz pozostałych oddziałów. Teraz w zależności od tego czy chcemy magazyn podłączyć do centrali można wykorzystać menedżer ICentrale, a jeśli do innego oddziału - menedżer IOddzialy:
var magazyny = sfera.Magazyny();
var encjaMag = magazyny.Dane.Wszystkie().Where(m=> m.Symbol == dok.Warehouse).FirstOrDefault();
ICentrale centrala = sfera.Centrale();
IOddzialy oddzialy = sfera.Oddzialy();
if (encjaMag != null) /// Jeśli encja istnieje to ją zwraca i pomija dodawanie nowej
{
return encjaMag;
}
using (var magazyn = magazyny.Utworz())
{
magazyn.Dane.Symbol = dok.Warehouse;
magazyn.Dane.Nazwa = dok.Warehouse;
// jeśli chcemy dodać go do centrali:
nowy.Dane.JednostkiOrganizacyjne.Add(centrala.Dane.Wszystkie().FirstOrDefault());
// jeśli chcemy dodać go do innego oddziału:
Oddzial szukany = oddzialy.Dane.Wszystkie().Where(o => o.Symbol == "SZUKANY").FirstOrDefault();
if (szukany != null)
nowy.Dane.JednostkiOrganizacyjne.Add(szukany);
if (magazyn.Zapisz())
{
Console.WriteLine("Poprawnie zapisano centralę.");
}
else
{
magazyn.WypiszBledy();
}
return magazyn.Dane;
}