public async Task <IHttpActionResult> DeleteStation(int stationId)
        {
            string token  = Request.Headers.GetValues("Authorization").FirstOrDefault();
            int    userId = JwtHelper.Instance.GetUserId(token);

            IStationDao           stationDao = AdoFactory.Instance.GetStationDao("wetr");
            IEnumerable <Station> stations   = await stationDao.FindByUserIdAsync(userId);

            if (stations.Where(s => s.StationId == stationId).Count() == 0)
            {
                /* No station found so it might have been already deleted. */
                return(Content(HttpStatusCode.Forbidden, new object()));
            }

            IMeasurementDao measurementDao = AdoFactory.Instance.GetMeasurementDao("wetr");

            if ((await measurementDao.FindByStationIdAsync(stationId)).Count() > 0)
            {
                /* There must not be any measurmenets associated with this station. */
                return(Content(HttpStatusCode.Forbidden, new object()));
            }

            await stationDao.DeleteAsync(stationId);

            return(Content(HttpStatusCode.OK, new object()));
        }
Exemple #2
0
 public async Task <IEnumerable <Measurement> > GetLatestMeasurementsForStation(int stationId, int queryMode, int limitation)
 {
     try {
         IMeasurementDao measurementDao = GetIMeasurementDao();
         return(await measurementDao.GetLastMeasurementsForStation(stationId, queryMode, limitation));
     }
     catch (Exception) {
         return(null);
     }
 }
Exemple #3
0
 public async Task <IEnumerable <MeasurementAnalytic> > Avg(DateTime start, DateTime end, int queryMode, int groupByMode, IEnumerable <Station> stations)
 {
     try {
         IMeasurementDao measurementDao = GetIMeasurementDao();
         return((await measurementDao.GetAvg(start, end, queryMode, groupByMode, stations)).OrderBy(x => x.GetDateTime()));
     }
     catch (Exception) {
         return(null);
     }
 }
Exemple #4
0
 public async Task <IEnumerable <Measurement> > GetMeasurementsForStation(int stationId, DateTime start, DateTime end, int queryMode)
 {
     try {
         IMeasurementDao measurementDao = GetIMeasurementDao();
         return(await measurementDao.GetMeasurementsForStation(stationId, start, end, queryMode));
     }
     catch (Exception) {
         return(null);
     }
 }
Exemple #5
0
        public async Task <bool> AddNewMeasurementDataPackage(Measurement measurement)
        {
            try {
                IMeasurementDao measurementDao = GetIMeasurementDao();
                if (measurement != null)
                {
                    return(await measurementDao.AddMeasurementAsync(measurement));
                }

                return(false);
            }
            catch (Exception) {
                return(false);
            }
        }
        public async Task <IHttpActionResult> PostMeasurement(MeasurementDTO measurement)
        {
            /* Check if model is valid */
            if (!ModelState.IsValid)
            {
                var errors = ModelState.ToDictionary(
                    kvp => kvp.Key,
                    kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToArray()
                    );
                return(Content(HttpStatusCode.BadRequest, errors));
            }

            IMeasurementDao dao = AdoFactory.Instance.GetMeasurementDao("wetr");
            await dao.InsertAsync(measurement.ToMeasurement());

            return(Content(HttpStatusCode.OK, new object()));
        }
        public async Task <IHttpActionResult> QueryMeasurements(QueryRequest query)
        {
            /* Check if model is valid */
            if (!ModelState.IsValid)
            {
                var errors = ModelState.ToDictionary(
                    kvp => kvp.Key,
                    kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToArray()
                    );
                return(Content(HttpStatusCode.BadRequest, errors));
            }

            IMeasurementDao dao        = AdoFactory.Instance.GetMeasurementDao("wetr");
            IStationDao     stationDao = AdoFactory.Instance.GetStationDao("wetr");
            Station         s          = await stationDao.FindByIdAsync(query.StationId);

            double[] result = await dao.GetQueryResult(query.Start, query.End, query.MeasurementTypeId, query.ReductionTypeId, query.GroupingTypeId,
                                                       new List <Station>() { s });

            return(Content(HttpStatusCode.OK, result));
        }
Exemple #8
0
        public MeasurementManager(IMeasurementDao measurementDao, IStationDao stationDao, IAddressManager addressManager)
        {
            this.measurementDao = measurementDao;
            this.stationDao     = stationDao;
            this.addressManager = addressManager;

            SetupTwitter();

            /* Twitter Testing
             *
             * Measurement m = new Measurement()
             * {
             *  StationId = 45,
             *  MeasurementTypeId = 1,
             *  Value = -23,
             *  TimesStamp = DateTime.Now,
             *  UnitId=1
             *
             * };
             *
             * bool res = AddMeasurement(m).Result;
             *
             */
        }
 public StationManager(IStationDao stationDao, IStationTypeDao stationTypeDao, IMeasurementDao measurementDao)
 {
     this.stationDao     = stationDao;
     this.stationTypeDao = stationTypeDao;
     this.measurementDao = measurementDao;
 }
Exemple #10
0
 private static IMeasurementDao GetIMeasurementDao()
 {
     return(_iMeasurementDao ?? (_iMeasurementDao =
                                     new AdoMeasurementDao(DefaultConnectionFactory.FromConfiguration(_connectionStringConfigName))));
 }