Exemple #1
0
        public void ManualWriteToHistory(Codes code, Value val)
        {
            if (val == null)
            {
                throw new ArgumentNullException("Parameters cannot be null");
            }
            if ((int)code < 0 || (int)code > 9)
            {
                throw new ArgumentException("Something wront with code");
            }
            HistoricalProperty hProp = new HistoricalProperty(code, val);

            HistoricalDescription hDesc = new HistoricalDescription();

            hDesc.HistoricalProperties.Add(hProp);
            int dataset = CheckDataset(code);


            if (dataset == -1)
            {
                Console.WriteLine("Dataset parsing went wrong!");
                return;
            }

            hDesc.Dataset           = dataset;
            hDesc.ListDescriptionId = dataset;

            lock (syncLock)
            {
                Logger.WriteLog("Writing to history", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name);
            }

            databaseOperations.AddHistoricalDescription(hDesc, dataset);
        }
        public void UpdateHistoricalDescriptions(HistoricalDescription hd, int dataset)
        {
            if (hd == null)
            {
                throw new ArgumentNullException("Arguments cannot be null");
            }
            if (dataset < 1 || dataset > 5)
            {
                throw new ArgumentException("Something wrong with dataset");
            }
            List <HistoricalProperty> historicalProperties = ReadHistoricalProperties();

            lock (syncLock)
            {
                Logger.WriteLog("Updating historical properties", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name);
            }

            foreach (HistoricalProperty hp in historicalProperties)
            {
                foreach (HistoricalProperty hpTemp in hd.HistoricalProperties)
                {
                    if (hp.HistoricalValue.GeographicalLocationId == hpTemp.HistoricalValue.GeographicalLocationId && hp.Code.Equals(hpTemp.Code))
                    {
                        hpTemp.Id = hp.Id;
                        if (CheckDeadband(hp, hpTemp))
                        {
                            hp.HistoricalValue = hpTemp.HistoricalValue;
                            break;
                        }
                    }
                }
            }
            database.SaveChanges();
        }
Exemple #3
0
        public void ReadFromDumpingBuffer(DeltaCD deltaCD)
        {
            if (deltaCD == null || deltaCD.Add == null || deltaCD.Remove == null || deltaCD.Update == null || deltaCD.TransactionID == null)
            {
                throw new ArgumentNullException("parameters cannot be null");
            }
            lock (syncLock)
            {
                Logger.WriteLog("Reading from Dumping buffer", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name);
            }

            for (int i = 1; i < 6; i++)
            {
                //check if i have data in any of these
                if (checkIfTheresDataInCollectionDescription(deltaCD.Add[i]))
                {
                    HistoricalDescription hd = converter.ConvertCollectionDescription(deltaCD.Add[i]);
                    databaseOperations.AddHistoricalDescription(hd, i);
                }

                if (checkIfTheresDataInCollectionDescription(deltaCD.Update[i]))
                {
                    HistoricalDescription hd = converter.ConvertCollectionDescription(deltaCD.Update[i]);
                    databaseOperations.UpdateHistoricalDescriptions(hd, i);
                }

                if (checkIfTheresDataInCollectionDescription(deltaCD.Remove[i]))
                {
                    HistoricalDescription hd = converter.ConvertCollectionDescription(deltaCD.Remove[i]);
                    databaseOperations.RemoveHistoricalProperties(hd, i);
                }
            }
        }
        public HistoricalDescription ConvertCollectionDescription(CollectionDescription cd)
        {
            if (cd == null)
            {
                throw new ArgumentNullException("Parameters cannot be null");
            }
            HistoricalDescription     hd       = new HistoricalDescription();
            List <HistoricalProperty> histProp = new List <HistoricalProperty>();

            lock (syncLock)
            {
                Logger.WriteLog("Converting CollectionDescriprion", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name);
            }
            foreach (DumpingProperty dp in cd.DumpingPropertyCollection.DumpingProperties)
            {
                HistoricalProperty hp = new HistoricalProperty();
                hp.Code            = dp.Code;
                hp.Time            = DateTime.Now;
                hp.Id              = Guid.NewGuid().ToString();
                hp.HistoricalValue = dp.DumpingValue;
                histProp.Add(hp);
            }
            hd.HistoricalProperties = histProp;
            hd.Dataset = cd.Dataset;

            return(hd);
        }
 public void ConstructorBadParameters(int dataset)
 {
     Assert.Throws <ArgumentException>(() =>
     {
         HistoricalDescription hd = new HistoricalDescription(dataset);
     });
 }
        public void AddHistoricalDescription(HistoricalDescription hd, int dataset)
        {
            if (hd == null)
            {
                throw new ArgumentNullException("Arguments cannot be null");
            }
            if (dataset < 1 || dataset > 5)
            {
                throw new ArgumentException("Something wrong with dataset");
            }
            //call logger
            lock (syncLock)
            {
                Logger.WriteLog("Adding historical description", MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name);
            }
            ListDescription list1 = database.ListDescriptions.Where(x => x.Id == dataset).FirstOrDefault();

            if (list1 == null)
            {
                throw new ArgumentNullException("Object reference not set to instance of an object(list null for db)");
            }
            list1.HistoricalDescriptions.Add(hd);
            database.SaveChanges();
        }
        /// <summary>
        /// Pomocna funkcija
        /// </summary>
        /// <param name="CD"></param>
        public void WriteToHistory(CollectionDescription CD)
        {
            historicalDesc       = new HistoricalDescription();
            historicalProperties = new List <HistoricalProperty>();

            //Prepakivanje u LD strukturu
            historicalDesc.ID      = CD.ID;
            historicalDesc.Dataset = CD.Dataset;

            foreach (DumpingProperty dp in CD.DumpingPropertyCollection.DumpingCollection)
            {
                tempProperty                 = new HistoricalProperty();
                tempProperty.Code            = dp.Code;
                tempProperty.HistoricalValue = dp.DumpingValue;
                tempProperty.Time            = DateTime.Now;

                valid = CheckDataset(tempProperty.Code);

                //Property ce biti dodat samo ako su Code i Dataset validni.
                if (valid)
                {
                    historicalProperties.Add(tempProperty);
                }
            }
            historicalDesc.HistoricalProperties = historicalProperties;

            //Dodaj u LD strukturu.
            if (historicalDesc.HistoricalProperties.Count == 2)     //bice 2 samo ako su oba prosla CheckDataset().
            {
                switch (dataset)
                {
                case 1:
                    LD1.ListHistoricalDesc.Add(historicalDesc);
                    write = CheckDeadband(LD1, false);

                    if (write)
                    {
                        //Ako izlazi iz Deadband-a, onda upisi
                        SaveToXML();
                    }
                    else
                    {
                        //Ako nije prosao Deadband, obrisi ga iz LD strukture.
                        LD1.ListHistoricalDesc.Remove(historicalDesc);
                    }
                    break;

                case 2:
                    LD2.ListHistoricalDesc.Add(historicalDesc);
                    write = CheckDeadband(LD1, false);

                    if (write)
                    {
                        //Ako izlazi iz Deadband-a, onda upisi
                        SaveToXML();
                    }
                    else
                    {
                        //Ako nije prosao Deadband, obrisi ga iz LD strukture.
                        LD2.ListHistoricalDesc.Remove(historicalDesc);
                    }
                    break;

                case 3:
                    LD3.ListHistoricalDesc.Add(historicalDesc);
                    write = CheckDeadband(LD1, false);

                    if (write)
                    {
                        //Ako izlazi iz Deadband-a, onda upisi
                        SaveToXML();
                    }
                    else
                    {
                        //Ako nije prosao Deadband, obrisi ga iz LD strukture.
                        LD3.ListHistoricalDesc.Remove(historicalDesc);
                    }
                    break;

                case 4:
                    LD4.ListHistoricalDesc.Add(historicalDesc);
                    write = CheckDeadband(LD1, false);

                    if (write)
                    {
                        //Ako izlazi iz Deadband-a, onda upisi
                        SaveToXML();
                    }
                    else
                    {
                        //Ako nije prosao Deadband, obrisi ga iz LD strukture.
                        LD4.ListHistoricalDesc.Remove(historicalDesc);
                    }
                    break;
                }
            }
        }
        /// <summary>
        /// Rucni upis u History. Writer salje Code i Value unesen rucno, koji se upisuju u LD strukturu.
        /// </summary>
        /// <param name="code"></param>
        /// <param name="value"></param>
        public void ManualWriteToHistory(Codes code, float value)
        {
            LoadLD();       //deserijalizacija LD struktura

            //Temp
            tempProperty         = new HistoricalProperty();
            historicalDesc       = new HistoricalDescription();
            historicalProperties = new List <HistoricalProperty>();

            tempProperty.Code            = code;
            tempProperty.HistoricalValue = value;
            tempProperty.Time            = DateTime.Now;
            historicalProperties.Add(tempProperty);

            historicalDesc.ID = Guid.NewGuid().ToString();
            CheckDataset(code);
            historicalDesc.Dataset = dataset;
            historicalDesc.HistoricalProperties = historicalProperties;

            switch (dataset)
            {
            case 1:
                LD1.ListHistoricalDesc.Add(historicalDesc);
                write = CheckDeadband(LD1, true);

                if (write)
                {
                    //Ako izlazi iz Deadband-a, onda upisi
                    SaveToXML();
                }
                else
                {
                    //Ako nije prosao Deadband, obrisi ga iz LD strukture.
                    LD1.ListHistoricalDesc.Remove(historicalDesc);
                }
                break;

            case 2:
                LD2.ListHistoricalDesc.Add(historicalDesc);
                write = CheckDeadband(LD2, true);


                if (write)
                {
                    //Ako izlazi iz Deadband-a, onda upisi
                    SaveToXML();
                }
                else
                {
                    //Ako nije prosao Deadband, obrisi ga iz LD strukture.
                    LD2.ListHistoricalDesc.Remove(historicalDesc);
                }
                break;

            case 3:
                LD3.ListHistoricalDesc.Add(historicalDesc);
                write = CheckDeadband(LD3, true);


                if (write)
                {
                    //Ako izlazi iz Deadband-a, onda upisi
                    SaveToXML();
                }
                else
                {
                    //Ako nije prosao Deadband, obrisi ga iz LD strukture.
                    LD3.ListHistoricalDesc.Remove(historicalDesc);
                }
                break;

            case 4:
                LD4.ListHistoricalDesc.Add(historicalDesc);
                write = CheckDeadband(LD4, true);

                if (write)
                {
                    //Ako izlazi iz Deadband-a, onda upisi
                    SaveToXML();
                }
                else
                {
                    //Ako nije prosao Deadband, obrisi ga iz LD strukture.
                    LD4.ListHistoricalDesc.Remove(historicalDesc);
                }
                break;
            }
        }
        public void ConstructorGoodParameters(int dataset)
        {
            HistoricalDescription hd = new HistoricalDescription(dataset);

            Assert.AreEqual(hd.Dataset, dataset);
        }