Example #1
0
        /// <summary>
        /// Modifies the ID of EMeter in Database.
        /// </summary>
        /// <param name="newID"> New value of ID field. </param>
        /// <param name="eMeterOld"> EMeter object read from DB. </param>
        public static void WriteModified(int newID, EMeter eMeterOld)
        {
            string destination = @"C:\Users\stefan\Desktop\blok22\db_tmp.txt";
            string line        = null;

            using (var reader = new StreamReader(_dbPath))
                using (var writer = new StreamWriter(destination))
                {
                    while ((line = reader.ReadLine()) != null)
                    {
                        var lineContent    = line.Split(' ');
                        int currentReading = Int32.Parse(lineContent[0]);

                        if (currentReading == eMeterOld.ID)
                        {
                            // Modify the eMeterOld and write to file.
                            eMeterOld.ID = newID;
                            writer.WriteLine(eMeterOld.ToString());
                        }
                        else
                        {
                            writer.WriteLine(line);
                        }
                    }
                }

            // Delete old db.txt and create new.
            File.Delete(_dbPath);
            File.Move(destination, _dbPath);
        }
Example #2
0
        /// <summary>
        /// Finds the EMeter with id in DB.
        /// </summary>
        /// <param name="id"> EMeter ID. </param>
        /// <returns> EMeter object read from DB. </returns>
        public static EMeter Read(int id)
        {
            string line;
            bool   found = false;

            using (var reader = new StreamReader(_dbPath))
            {
                while ((line = reader.ReadLine()) != null)
                {
                    var meterIDStr = line.Split(' ')[0];
                    var meterID    = Int32.Parse(meterIDStr);
                    if (meterID == id)
                    {
                        found = true;
                        break;
                    }
                }
            }

            if (found)
            {
                return(EMeter.FromString(line));
            }

            return(null);
        }
Example #3
0
        public bool AddDB(int id, string fullName, double reading)
        {
            bool            added     = false;
            EMeter          newEMeter = new EMeter(id, fullName, reading);
            CustomPrincipal principal = Thread.CurrentPrincipal as CustomPrincipal;

            var permission = Permissions.Add.ToString().ToLower();

            /// audit both successfull and failed authorization checks

            if (principal.IsInRole(permission))
            {
                Console.WriteLine("AddDB() passed for user {0}.", principal.Identity.Name);
                DataBase.Write(newEMeter);
                added = true;
                logger.Log(principal.Identity.Name, "AddDB", "", EventType.AuthorizationSuccess);
            }
            else
            {
                logger.Log(principal.Identity.Name, "AddDB", permission, EventType.AuthorizationFailure);
                Console.WriteLine("AddDB() failed for user {0}.", principal.Identity.Name);
            }

            return(added);
        }
Example #4
0
        /// <summary>
        /// Write EMeter to DB.
        /// </summary>
        /// <param name="eMeter"> EMeter object to be written to DB. </param>
        public static void Write(EMeter eMeter)
        {
            // Check if EMeter with same ID already exists.
            if (Read(eMeter.ID) != null)
            {
                throw new Exception("EMeter with ID = " + eMeter.ID + " already exists.");
            }

            using (var writer = new StreamWriter(_dbPath, true))
            {
                writer.WriteLine(eMeter.ToString());
            }
        }