Jade-ERP #5 – Małymi kroczkami do przodu

Kolejny wpis odnośnie projektu i kolejny tydzień konkursu. Jeszcze w ostatnim tygodniu przyrzekałem sobie, że więcej czasu włożę w rozwój projektu. Przyznaję – nie dałem rady. Ponownie natłok obowiązków dał się we znaki, przez co dodałem w tym tygodniu tylko dwa niewielkie commity.

 

 

Podsumowanie zmian

Firstly…

Poprawiłem mechanizm aktualizacji danych w bazie danych. Poniżej znajduje się kod odpowiedzialny za aktualizację lub dodanie nowej pozycji w bazie. Wydaje mi się, że istnieje możliwość stworzenia jakiejś abstrakcji, dzięki której mógłbym ten mechanizm w pewien sposób uogólnić na dodawanie innych obiektów bazie. Zdecydowanie muszę przenieść cześć tego kodu do innej (nowej?) klasy.

public void AddToDatabase()
{
    var counterparty = new Counterparty
    {
        Name1 = Name1,
        Name2 = Name2,
        Name3 = Name3,
        Code = Code,
        PESEL = PESEL,
        REGON = REGON,
        NIP = NIP,
        Address = new Address
        {
            Street = Street,
            House = House,
            Flat = Flat,
            PostalCode = PostalCode,
            City = City,
            Telephone = Telephone,
            Telephone2 = Telephone2,
            Email = Email,
            Fax = Fax,
            Url = Url,
            Province = new Province
            {
                Name = Province
            }
        }
    };

    if (_newContent)
    {
        _erpDatabase.Counterparty.Add(counterparty);
    }
    else
    {
        var dbFoo = _erpDatabase.Counterparty.
            Include(x => x.Address).
            Include(x => x.Address.Province).
            Include(x => x).Where(c => c.Id == _counterparty.Id).Select(d => d).Single();

        counterparty.Id = _counterparty.Id;
        _erpDatabase.Entry(dbFoo).CurrentValues.SetValues(counterparty);
        _erpDatabase.Entry(dbFoo.Address).CurrentValues.SetValues(counterparty.Address);
        _erpDatabase.Entry(dbFoo.Address.Province).CurrentValues.SetValues(counterparty.Address.Province);

    }

    _erpDatabase.SaveChanges();
}

 

Póki co nie sprawdzam poprawności wprowadzonych danych przez użytkownika – z pewnością powinienem za niedługo podjąć się tego tematu.

 

Secondly…

Stworzyłem słownik stringów na potrzeby tworzenia etykiet w widokach. Dzięki czemu, że scentralizuję cały tekst aplikacji, zdecydowanie uproszczę sobie ewentualną aktualizację tekstu etykiet w przyszłości.

 

Thirdly

Zaktualizowałem widok listy kontrahentów. Od teraz kolumny wyświetlają poprawnie dane z bazy. Przy okazji, przeniosłem kod odpowiedzialny za połączenie i pobranie danych z bazy do oddzielnego serwisu. Dzięki temu klasa bazowa modelu widoków tabel, znacznie się odchudziła i uprościła.

 

Co w planach?

W najbliższy weekend spędzę kilka godzin w podróży. Zamierzam czas ten poświęcić na przemyślenia dotyczące struktury kodu projektu. Zdecydowanie muszę przeprowadzić refaktoryzację kodu i poprawniej rozdzielić zadania pomiędzy poszczególnymi strukturami.

Mam coś dla Ciebie

Zapisz się do mojego newslettera, a ja prześlę Ci zbiór kilkunastu praktycznych wskazówek dla programisty aplikacji mobilnych.

Menu