__author__ = 'jmeline'

from datetime import datetime

from odm2api.ODM2 import serviceBase
from odm2api.ODM2.models import *


# ################################################################################
# Annotations
# ################################################################################

class UpdateODM2(serviceBase):
    def test(self):
        return None


# ################################################################################
# CV
# ################################################################################




# ################################################################################
# Core
# ################################################################################
    def updateResultValidDateTime(self, resultId, dateTime):
        q = self._session.query(Results).filter(Results.ResultID==int(resultId)).update({'ValidDateTime':dateTime.to_datetime()})
        self._session.commit()


# ################################################################################
# Data Quality
# ################################################################################




# ################################################################################
# Equipment
# ################################################################################





# ################################################################################
# Extension Properties
# ################################################################################




# ################################################################################
# External Identifiers
# ################################################################################




# ################################################################################
# Lab Analyses
# ################################################################################




# ################################################################################
# Provenance
# ################################################################################




# ################################################################################
# Results
# ################################################################################




# ################################################################################
# Sampling Features
# ################################################################################




# ################################################################################
# Sensors
# ################################################################################



# ################################################################################
# ODM2
# ################################################################################


__author__ = 'jmeline'

from datetime import datetime

from odm2api.ODM2 import serviceBase
from odm2api.ODM2.models import *


# ################################################################################
# Annotations
# ################################################################################

class UpdateODM2(serviceBase):
    def test(self):
        return None


# ################################################################################
# CV
# ################################################################################




# ################################################################################
# Core
# ################################################################################
    def updateResultValidDateTime(self, resultId, dateTime):
        q = self._session.query(Results).filter(Results.ResultID==int(resultId)).update({'ValidDateTime':dateTime.to_datetime()})
        self._session.commit()

    def updateResult(self, resultID, valuecount = None):
        q = self._session.query(Results).filter(Results.ResultID ==int(resultID))
        if valuecount:
            q.update({"ValueCount":valuecount})

        self._session.commit()

    def updateAction(self, actionID, begin=None, end=None):
        q = self._session.query(Actions).filter(Actions.ActionID == int(actionID))
        if begin:
            q.update({"BeginDateTime": begin.to_datetime()})
        if end:
            q.update({"EndDateTime": end.to_datetime()})

        self._session.commit()


# ################################################################################
# Data Quality
# ################################################################################




# ################################################################################
# Equipment
# ################################################################################





# ################################################################################
# Extension Properties
# ################################################################################




# ################################################################################
# External Identifiers
# ################################################################################




# ################################################################################
# Lab Analyses
# ################################################################################




# ################################################################################
# Provenance
# ################################################################################




# ################################################################################
# Results
# ################################################################################




# ################################################################################
# Sampling Features
# ################################################################################




# ################################################################################
# Sensors
# ################################################################################



# ################################################################################
# ODM2
# ################################################################################


add updates for result and action