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.

Newsletter

Zapisz się do mojego newslettera, aby nie przegapić nowych postów.

Dodatkowo wyślę Ci darmowego ebooka mojego autorstwa zawierającego mnóstwo wskazówek dla programisty aplikacji mobilnych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Wypełnij to pole
Wypełnij to pole
Proszę wprowadzić prawidłowy adres email.
You need to agree with the terms to proceed

Menu