Exemplo n.º 1
0
        public virtual IList <string> UpraveneHodnotyVHistorii(int kolikataZHistorie)
        {
            IList <string> historieZmen = new List <string>();

            //první historie se porovnává s nynějším objektem - bohužel nejde jen tak přetipovat - takže se takhle vytvoří nová "historie"
            var thisAsHistory = new LopHistory()
            {
                Action   = Action
                , Status = Status
                           //,Materialy = Materialy //TODO?
                , StartDate        = StartDate
                , PlannedCloseDate = PlannedCloseDate
                , CloseDate        = CloseDate
                , FinishDate       = FinishDate
                , CheckDate        = CheckDate
                , LastChangedDate  = LastChangedDate
                , Zadavatel        = Zadavatel
                , Resitel          = Resitel
                , Nazev            = Nazev
                , Popis            = Popis
                , Komentar         = Komentar
                , DeniedMessage    = DeniedMessage
                , Investice        = Investice
                , LessonLearned    = LessonLearned
                , Dilna            = Dilna
            };
            //kopie materiálu trochu těžkopádně
            IList <LopHistoryMaterial> matrose = new List <LopHistoryMaterial>();

            for (int i = 0; i < Materialy.Count; i++)
            {
                LopHistoryMaterial lhm = new LopHistoryMaterial()
                {
                    DateAdded = Materialy[i].DateAdded, Id = Materialy[i].Id, Produkt = Materialy[i].Produkt
                };
                lhm.LopHistory    = new LopHistory();
                lhm.LopHistory.Id = Materialy[i].Lop.Id;
                //matrose[i] = lhm; //stačí jen ID??? TODO
                matrose.Add(lhm);
            }
            thisAsHistory.Materialy = matrose;

            //není naplněn Material na Historii -_-
            LopHistory lastHist = History[0]; //a mrkneme se na první záznam historie

            if (lastHist != null)             //pokud alespoň nějaká je, zapíšeme ji do seznamu
            {
                if (kolikataZHistorie == 0)
                {
                    IEnumerable <string> zmeny = GetRozdilyString(thisAsHistory, lastHist);
                    foreach (string s in zmeny)
                    {
                        historieZmen.Add(s); //PRVNÍ ZMĚNY
                    }
                }
                else
                {
                    IEnumerable <string> zmeny = GetRozdilyString(History[kolikataZHistorie - 1], History[kolikataZHistorie]);
                    foreach (string s in zmeny)
                    {
                        historieZmen.Add(s); //OSTATNÍ ZMĚNY
                    }
                }
            }
            return(historieZmen); //vrací seznam dvojic stringů (vždy CO, HODNOTA) se změněnými hodnotami
        }
Exemplo n.º 2
0
        private IEnumerable <string> GetRozdilyString(LopHistory newer, LopHistory older)
        {
            var whiteSpace = "-";
            //MYŠLENKA: - zapíšeme do pole vždycky dvojici (ATRIBUT,HODNOTA .... ATRIBUT,HODNOTA ....
            //Z toho potom hezky vytáhneme která hodnota se změnila a jaká byla původní hodnota před změnou ;)

            IList <string> zmeny = new List <string>();

            if (newer.Action != older.Action)
            {
                zmeny.Add("Action");            zmeny.Add(older.Action.ToString());
            }
            if (newer.Status != older.Status)
            {
                zmeny.Add("Status");            zmeny.Add(older.Status.ToString());
            }
            if (newer.StartDate != older.StartDate)
            {
                zmeny.Add("StartDate");         zmeny.Add(older.StartDate.ToString(CultureInfo.CurrentCulture));
            }
            if (newer.PlannedCloseDate != older.PlannedCloseDate)
            {
                zmeny.Add("PlannedCloseDate");  zmeny.Add(older.PlannedCloseDate == null ? whiteSpace : older.PlannedCloseDate.GetValueOrDefault().ToShortDateString());
            }
            if (newer.CloseDate != older.CloseDate)
            {
                zmeny.Add("CloseDate");         zmeny.Add(older.CloseDate == null? whiteSpace : older.CloseDate.GetValueOrDefault().ToShortDateString());
            }
            if (newer.FinishDate != older.FinishDate)
            {
                zmeny.Add("FinishDate");        zmeny.Add(older.FinishDate == null ? whiteSpace : older.FinishDate.GetValueOrDefault().ToShortDateString());
            }
            if (newer.CheckDate != older.CheckDate)
            {
                zmeny.Add("CheckDate");         zmeny.Add(older.CheckDate == null ? whiteSpace : older.CheckDate.GetValueOrDefault().ToShortDateString());
            }
            //if (newer.LastChangedDate != older.LastChangedDate)    { zmeny.Add("LastChangedDate");   zmeny.Add(older.LastChangedDate.ToShortDateString());     }
            if (newer.Zadavatel != older.Zadavatel)
            {
                zmeny.Add("Zadavatel");         zmeny.Add(older.Zadavatel.Prijmeni + " " + Zadavatel.Jmeno);
            }
            if (newer.Resitel != older.Resitel)
            {
                zmeny.Add("Resitel");           zmeny.Add(older.Resitel.Prijmeni + " " + Resitel.Jmeno);
            }
            if (newer.Nazev != older.Nazev)
            {
                zmeny.Add("Nazev");             zmeny.Add(older.Nazev);
            }
            if (newer.Popis != older.Popis)
            {
                zmeny.Add("Popis");             zmeny.Add("Pro zobrazení popisu otevřete detail historie");
            }
            //if (newer.Komentar != older.Komentar&&older.Komentar!=null){ zmeny.Add("Komentar");          zmeny.Add(older.Komentar);                                 }
            if (newer.Investice != older.Investice)
            {
                zmeny.Add("Investice");         zmeny.Add(older.Investice.ToString());
            }
            if (newer.LessonLearned != older.LessonLearned)
            {
                zmeny.Add("LessonLearned");     zmeny.Add(older.LessonLearned.ToString());
            }
            if (newer.Dilna != older.Dilna)
            {
                zmeny.Add("Dilna");             zmeny.Add(older.Dilna.ToString());
            }

            if (newer.Materialy.Count != older.Materialy.Count)
            {
                zmeny.Add("Produkty");
                if (older.Materialy.Count != 0)
                {
                    zmeny.Add("Změna v počtu z " + older.Materialy.Count + " na " + newer.Materialy.Count);
                }
                else
                {
                    zmeny.Add("Byly přidány " + newer.Materialy.Count + " produkty");
                }
            }
            else
            {
                string produkty = "";
                for (int i = 0; i < newer.Materialy.Count; i++)
                {
                    if (newer.Materialy[i].Produkt.Id != older.Materialy[i].Produkt.Id)
                    {
                        produkty += older.Materialy[i].Produkt.Druh + ", ";
                    }
                }
                if (produkty.Length > 2)
                {
                    zmeny.Add("Produkty");
                    zmeny.Add(produkty.Substring(0, produkty.Length - 2));
                }
            }


            return(zmeny);
        }