(haveUserCreationIMEvent, haveWorkingUserState) match {
case (true, true) ⇒
// (User CREATEd, with balance state)
+ val realtimeMillis = TimeHelpers.nowMillis()
+ chargingService.calculateRealtimeWorkingUserState(
+ this._workingUserState,
+ BillingMonthInfo.fromMillis(realtimeMillis),
+ realtimeMillis
+ )
+
sender ! GetUserBalanceResponse(Right(GetUserBalanceResponseData(this._userID, this._workingUserState.totalCredits)))
case (true, false) ⇒
def onGetUserStateRequest(event: GetUserStateRequest): Unit = {
haveWorkingUserState match {
case true ⇒
+ val realtimeMillis = TimeHelpers.nowMillis()
+ chargingService.calculateRealtimeWorkingUserState(
+ this._workingUserState,
+ BillingMonthInfo.fromMillis(realtimeMillis),
+ realtimeMillis
+ )
+
sender ! GetUserStateResponse(Right(this._workingUserState))
case false ⇒
haveWorkingUserState match {
case true ⇒
DEBUG("haveWorkingUserState: %s", event)
+ val realtimeMillis = TimeHelpers.nowMillis()
+ chargingService.calculateRealtimeWorkingUserState(
+ this._workingUserState,
+ BillingMonthInfo.fromMillis(realtimeMillis),
+ realtimeMillis
+ )
+
sender ! GetUserWalletResponse(
Right(
GetUserWalletResponseData(
import gr.grnet.aquarium.policy.ResourceType
import gr.grnet.aquarium.util.{Lifecycle, Loggable}
import gr.grnet.aquarium.util.LogHelpers.Debug
+import gr.grnet.aquarium.util.LogHelpers.DebugSeq
import gr.grnet.aquarium.util.LogHelpers.Warn
import gr.grnet.aquarium.util.date.{MutableDateCalc, TimeHelpers}
import gr.grnet.aquarium.{AquariumInternalError, AquariumAwareSkeleton}
val chargingBehavior = aquarium.chargingBehaviorOf(resourceType)
for((resourceInstanceID, workingResourceInstanceState) ← workingResourcesState.stateOfResourceInstance) {
+ Debug(logger, "Realtime calculation for %s, %s", resourceTypeName, resourceInstanceID)
val virtualEvents = chargingBehavior.createVirtualEventsForRealtimeComputation(
workingUserState.userID,
resourceTypeName,
realtimeMillis,
workingResourceInstanceState
)
+ DebugSeq(logger, "virtualEvents", virtualEvents, 1)
processResourceEvents(
virtualEvents,