Exemplo n.º 1
0
        public void TestValidateBooking1()
        {
            IDStation dbStation = new DStation();
            IDBatteryType dbType = new DBatteryType();
            IDBBatteryStorage dbStorage = new DBBatteryStorage();
            IDPeriod dbPeriod = new DBPeriod();
            int sid = dbStation.addNewRecord("name", "address", "country", "state");
            int btid = dbType.addNewRecord("name", "producer", 10, 10);
            int bsid = dbStorage.addNewRecord(btid, sid, 10);
            MBatteryStorage storage = dbStorage.getRecord(bsid, true);
            try
            {

                MPeriod firstPeriod = new MPeriod();
                firstPeriod.bookedBatteryNumber = 6;
                firstPeriod.initBatteryNumber = 10;
                firstPeriod.time = DateTime.Today;
                dbPeriod.addNewRecord(bsid, firstPeriod.time, firstPeriod.initBatteryNumber, firstPeriod.bookedBatteryNumber);
                storage.periods.Add(firstPeriod);
                MPeriod testPeriod = new MPeriod();
                testPeriod.time = DateTime.Today.AddHours(10);
                testPeriod.initBatteryNumber = 10;
                testPeriod.bookedBatteryNumber = 4;
                dbPeriod.addNewRecord(bsid, testPeriod.time, testPeriod.initBatteryNumber, testPeriod.bookedBatteryNumber);
                storage.periods.Add(testPeriod);
                MPeriod lastPeriod = new MPeriod();
                lastPeriod.time = DateTime.Today.AddHours(20);
                lastPeriod.initBatteryNumber = 10;
                lastPeriod.bookedBatteryNumber = 5;
                dbPeriod.addNewRecord(bsid, lastPeriod.time, lastPeriod.initBatteryNumber, lastPeriod.bookedBatteryNumber);
                storage.periods.Add(lastPeriod);
                BatteryStorageCtr storageCtr = new BatteryStorageCtr();
                if (storageCtr.validateBookingForStation(sid, btid, 1, DateTime.Today.AddHours(10)))
                {
                    Assert.AreEqual(2, 1);
                }
                else
                {
                    Assert.AreEqual(1, 1); //it should fail
                }
                if (storageCtr.validateUpdateBookingForStation(sid, btid, 1, DateTime.Today.AddHours(10)))
                {
                    Assert.AreEqual(2, 1);
                }
                else
                {
                    Assert.AreEqual(1, 1); //it should fail
                }
            }
            finally
            {
                foreach (MPeriod p in storage.periods)
                {
                    dbPeriod.deleteRecord(bsid, p.time);
                }
                dbStorage.deleteRecord(bsid);
                dbType.deleteRecord(btid);
                dbStation.deleteRecord(sid);
            }
        }
Exemplo n.º 2
0
 public void updateRecord(int bsID, DateTime time)
 {
     IDPeriod dbPeriod = new DBPeriod();
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     MBatteryStorage storage = dbStorage.getRecord(bsID, true);
     int init = storage.storageNumber;
     dbPeriod.updateRecord(bsID, time, init);
 }
Exemplo n.º 3
0
 public int addNewRecord(int bsID, DateTime time)
 {
     IDPeriod dbPeriod = new DBPeriod();
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     MBatteryStorage storage = dbStorage.getRecord(bsID, true);
     int init = storage.storageNumber;
     int id = dbPeriod.addNewRecord(bsID,time,init,0);
     return id;
 }
Exemplo n.º 4
0
 public int addNewRecord(int btID, int sID, int storageNumber)
 {
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     BatteryTypeCtr bCtr = new BatteryTypeCtr();
     int id = dbStorage.addNewRecord(btID, sID, storageNumber);
         PeriodCalculator pCalc = new PeriodCalculator();
         pCalc.createFirstPeriod(id);
     return id;
 }
Exemplo n.º 5
0
 public bool deleteBookingForStation(int sId, int btId, int quantity, DateTime time)
 {
     bool success = false;
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     MBatteryStorage storage = dbStorage.getRecord(btId, sId, true);
     IDPeriod dbPeriod = new DBPeriod();
     PeriodCalculator pCalc = new PeriodCalculator();
     try
     {
         MPeriod period = pCalc.getBookingPeriod(storage, time);
         period.bookedBatteryNumber = period.bookedBatteryNumber - quantity;
         dbPeriod.updateRecord(storage.id, period.time, period.initBatteryNumber, period.bookedBatteryNumber);
         success = true;
     }
     catch (Exception)
     {
         throw new SystemException("Can not delete Booking");
     }
     return success;
 }
Exemplo n.º 6
0
 public void deleteRecord(int id)
 {
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     IDPeriod dbPeriod = new DBPeriod();
     bool success = false;
     using (TransactionScope scope = new TransactionScope())
     {
         try
         {
             dbPeriod.deleteRecord(id);
             dbStorage.deleteRecord(id);
             success = true;
         }
         catch (Exception)
         {
             throw new System.NullReferenceException("Can not delete battery.");
             //throw new SystemException("Can not find battery type");
         }
         if (success)
         {
             scope.Complete();
         }
     }
 }
Exemplo n.º 7
0
 public void deleteRecordByType(int btID)
 {
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     int bsID = dbStorage.getRecordByType(btID, true).id;
     BatteryTypeCtr bCtr = new BatteryTypeCtr();
     bool success = false;
     using (TransactionScope scope = new TransactionScope())
     {
         try
         {
             deleteRecord(bsID);
             bCtr.deleteRecord(btID);
             success = true;
         }
         catch (Exception)
         {
             throw new System.NullReferenceException("Can not delete battery.");
             //throw new SystemException("Can not find battery type");
         }
         if (success)
         {
             scope.Complete();
         }
     }
 }
Exemplo n.º 8
0
 public bool validateUpdateBookingForStation(int sId, int btId, int updateQuantity, DateTime time)
 {
     bool validate = false;
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     MBatteryStorage storage = dbStorage.getRecord(btId, sId, true);
     PeriodCalculator pCalc = new PeriodCalculator();
     MPeriod period = pCalc.getBookingPeriod(storage, time);
     MPeriod previous = pCalc.getPreviousPeriod(storage, period);
     MPeriod next = pCalc.getNextPeriod(storage, period);
     int booked = period.bookedBatteryNumber + previous.bookedBatteryNumber;
     int available = period.initBatteryNumber - booked;
     int futureBooked = period.bookedBatteryNumber + next.bookedBatteryNumber;
     int futureAvailable = next.initBatteryNumber - futureBooked;
     if (available >= updateQuantity && futureAvailable >= updateQuantity)
     {
         validate = true;
     }
     return validate;
 }
Exemplo n.º 9
0
 public void updateRecord(int id, int btid, int sID, int storageNumber)
 {
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     dbStorage.updateRecord(id, btid, sID, storageNumber);
     IDPeriod dbPeriod = new DBPeriod();
     PeriodCalculator pCalc = new PeriodCalculator();
     MPeriod period = pCalc.getBookingPeriod(getRecord(id,true),DateTime.Now);
     List<MPeriod> periods = pCalc.getAllPeriodsAfter(getRecord(id, true), period);
     foreach (MPeriod p in periods)
     {
         dbPeriod.updateRecord(id, p.time, pCalc.getInitNumber(getRecord(id, true)));
     }
 }
Exemplo n.º 10
0
 public List<MBatteryStorage> getStationStorages(int sID)
 {
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     return dbStorage.getStationStorages(sID);
 }
Exemplo n.º 11
0
 public MBatteryStorage getRecord(int id, Boolean getAssociation)
 {
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     return dbStorage.getRecord(id, true);
 }
Exemplo n.º 12
0
 public List<MBatteryStorage> getAllRecord(Boolean getAssociation)
 {
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     return dbStorage.getAllRecord(true);
 }
Exemplo n.º 13
0
 public List<string> getAllInfo()
 {
     IDBBatteryStorage dbStorage = new DBBatteryStorage();
     return dbStorage.getAllInfo();
 }