Version 26 (modified by marek, 14 years ago)

--

Taski

Ogólny opis idei

Założenie jest takie, że codziennie chodzi program odpowiedzialny za włączanie / wyłączanie ogłoszeń i abonamentów*.

Ogłoszenie i abonament posiadają pola: Status (ProductStatus), StartDate oraz EndDate.

    public enum ProductStatus
    {
        Online = 1,       // aktywne
        Suspended = 2,    // wstrzymane przez uzytkownika
        New = 3,          // w trakcie zamieszczania
        Deleted = 5,      // usuniete przez uzytkownika
        Censored = 6,     // ocenzurowane
        Expired = 7,      // wygasła data ważności ogłoszenia lub abonamentu
        OverLimit = 8,    //ogłoszenie nie mieści się do aktualnego abonamentu, wcześniej klient miał abo na 50 a po przedłużeniu ma na 25
    }

* Abonamenty oznaczają ogłoszenia abonamentowe, włączanie abonamentu polega na ustawieniu statusu na Online, dat StartDate i EndDate dla Subscription oraz dla ogłoszeń klienta posiadającego ten abonament zgodnie z tym co mamy w OrderItem dla abonamentu

Włączamy ogłoszenia i abonamenty

  • Ogłoszenia
    • Włączamy wszystkie ogłoszenia, których StartDate w OrderItem jest dziś - ustawiamy status Online, Promotion, StartDate oraz EndDate zgodnie z OrderItem
  • Abonamenty
    • Włączamy wszystkie abonamenty, których StartDate w OrderItem jest dziś - dla Subscription ustawiamy odpowiednio StartDate, EndDate, dla ogłoszeń klienta posiadającego ten abonament ustawiamy status Online, wyróżnienia, StartDate oraz EndDate zgodnie z Subscription, jeśli mamy więcej ogłoszeń Online niż ustalono w abonamencie - włączamy tylko tą ilość (posortowane po dacie ostatniej aktualizacji malejąco), która jest określona w abonamencie, reszta powinna otrzymać status OverLimit

Wyłączamy pozostałe ogłoszenia i abonamenty

  • Ogłoszenia i abonamenty Wyłączamy (ustawiamy status Expired) dla wszystkich ogłoszeń i abonamentów które posiadają status Online oraz EndDate jest mniejsza niż dziś