/// <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); }
/// <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); }
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); }
/// <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()); } }