Example #1
0
        public PagedResultDto <DeviceDto> GetByGateway(string GatewayName)
        {
            var gatewayQuery = _gatewayRepository.GetAll().Where(g => g.GatewayName == GatewayName).Where(g => g.IsDeleted == false);

            if (!gatewayQuery.Any())
            {
                throw new ApplicationException("gateway 不存在或已被删除");
            }
            var query = _deviceRepository.GetAll().Where(d => d.IsDeleted == false).Where(d => d.Gateway.GatewayName == GatewayName)
                        .Include(d => d.Gateway)
                        .Include(d => d.Gateway.Workshop)
                        .Include(d => d.Gateway.Workshop.Factory)
                        .Include(d => d.Gateway.Workshop.Factory.City)
                        .Include(d => d.DeviceType);
            var total  = query.Count();
            var result = query.ToList();

            return(new PagedResultDto <DeviceDto>(total, ObjectMapper.Map <List <DeviceDto> >(result)));
        }
Example #2
0
        //获得城市下拉选项直到网关
        public List <object> GetCityCascaderOptionsTilGateway()
        {
            var            cityQuery = _cityRepository.GetAll().Where(c => c.IsDeleted == false);
            List <City>    cities1   = cityQuery.ToList();
            List <CityDto> cities    = ObjectMapper.Map <List <CityDto> >(cities1);
            List <object>  result    = new List <object>();

            result.Add(new { value = "全部", label = "全部" });
            foreach (CityDto c in cities)
            {
                List <object>     children     = new List <object>();
                var               factoryQuery = _factoryRepository.GetAll().Where(f => f.IsDeleted == false).Where(f => f.City.CityName == c.CityName);
                List <Factory>    factories1   = factoryQuery.ToList();
                List <FactoryDto> factories    = ObjectMapper.Map <List <FactoryDto> >(factories1);
                children.Add(new { value = "全部", label = "全部" });
                foreach (FactoryDto f in factories)
                {
                    List <object>      subchildren   = new List <object>();
                    var                workshopQuery = _workshopRepository.GetAll().Where(w => w.IsDeleted == false).Where(w => w.Factory.FactoryName == f.FactoryName);
                    List <Workshop>    workshops1    = workshopQuery.ToList();
                    List <WorkshopDto> workshops     = ObjectMapper.Map <List <WorkshopDto> >(workshops1);
                    subchildren.Add(new { value = "全部", label = "全部" });
                    foreach (WorkshopDto w in workshops)
                    {
                        List <object>     subchildren_2 = new List <object>();
                        var               gatewayQuery  = _gatewayRepository.GetAll().Where(g => g.IsDeleted == false).Where(g => g.Workshop.WorkshopName == w.WorkshopName);
                        List <Gateway>    gateways1     = gatewayQuery.ToList();
                        List <GatewayDto> gateways      = ObjectMapper.Map <List <GatewayDto> >(gateways1);
                        subchildren_2.Add(new { value = "全部", label = "全部" });
                        foreach (GatewayDto g in gateways)
                        {
                            subchildren_2.Add(new { varlue = g.GatewayName, label = g.GatewayName });
                        }
                        subchildren.Add(new { value = w.WorkshopName, label = w.WorkshopName, Gateway = subchildren_2 });
                    }
                    children.Add(new { value = f.FactoryName, label = f.FactoryName, Workshop = subchildren });
                }
                result.Add(new { value = c.CityName, label = c.CityName, Factory = children });
            }

            return(result);
        }
        public GatewayDto Get(EntityDto <int> input)
        {
            var query = _gatewayRepository.GetAll().Where(g => g.Id == input.Id)
                        .Include(g => g.Workshop)
                        .Include(g => g.Workshop.Factory)
                        .Include(g => g.Workshop.Factory.City)
                        .Include(g => g.GatewayType);
            var entity = query.FirstOrDefault();

            if (entity.IsNullOrDeleted())
            {
                throw new ApplicationException("该设备不存在或已被删除");
            }
            return(ObjectMapper.Map <GatewayDto>(entity));
        }
Example #4
0
        public IHttpActionResult GetSensorConnections(int networkId, int sensorId, int page = 1, int pageSize = 30)
        {
            _credentials.SetCredentials(Request.Headers.Authorization.Parameter);
            var userId = _userRep.Get(_credentials.Email, _credentials.Password).Id;

            if (!_networkRep.GetAll().Any(n => n.Id == networkId && n.User_Id == userId))
            {
                var errorMessage = _messages.GetMessage(Custom.NotFound, "Network", "Id");
                return(NotFound(errorMessage));
            }

            var sensor = _sensorRep.Get(sensorId);

            if (sensor == null)
            {
                var errorMessage = _messages.GetMessage(Custom.NotFound, "Sensor", "Id");
                return(NotFound(errorMessage));
            }

            if (page < 1)
            {
                page = 1;
            }
            if (pageSize < 1)
            {
                pageSize = 30;
            }

            var connections = _connectionRep.GetAll()
                              .Where(c => c.Sensor_Id == sensorId);

            var totalCount = connections.Count();
            var pageCount  = (int)Math.Ceiling((float)totalCount / pageSize);

            var results = _gatewayRep.GetAll()
                          .Join(connections, g => g.Id, c => c.Gateway_Id, (g, c) => g)
                          .Skip(pageSize * (page - 1))
                          .Take(pageSize)
                          .Select(p => _mapper.Map <GatewayModelGet>(p))
                          .ToList();


            return(Ok("GetGatewayConnections", page, pageSize, pageCount, totalCount, results));
        }
Example #5
0
        public IHttpActionResult Add(int networkId, GatewayModelPost gatewayModel)
        {
            _credentials.SetCredentials(Request.Headers.Authorization.Parameter);
            var userId = _userRep.Get(_credentials.Email, _credentials.Password).Id;

            if (!_networkRep.GetAll().Any(n => n.Id == networkId && n.User_Id == userId))
            {
                var errorMessage = _messages.GetMessage(Custom.NotFound, "Network", "Id");
                return(NotFound(errorMessage));
            }

            if (gatewayModel == null)
            {
                var errorMessage = _messages.GetMessage(Generic.NullObject);
                return(BadRequest(errorMessage));
            }

            if (_gatewayRep.GetAll().Any(g => g.Name == gatewayModel.Name))
            {
                var errorMessage = _messages.GetMessage(Custom.Conflict, "Gateway", "Name");
                return(Conflict(errorMessage));
            }

            if (_gatewayRep.GetAll().Any(g => g.Address == gatewayModel.Address))
            {
                var errorMessage = _messages.GetMessage(Custom.Conflict, "Gateway", "Address");
                return(Conflict(errorMessage));
            }


            var newGateway = _mapper.Map <Gateway>(gatewayModel);

            newGateway.Network_Id     = networkId;
            newGateway.ProductionDate = _dateTime.GetDateTime();
            _gatewayRep.Add(newGateway);

            var createdGateway = _mapper.Map <GatewayModelGet>(newGateway);

            return(CreatedAtRoute("GetGateway", new
            {
                networkId,
                id = createdGateway.Id
            }, createdGateway));
        }
Example #6
0
 public IQueryable <Gateway> GetAll()
 {
     return(_gatewayRepositories.GetAll());
 }
 public IQueryable <TEntity> GetAll <TEntity>() where TEntity : class
 {
     return(repository.GetAll <TEntity>());
 }
Example #8
0
        public IHttpActionResult Add(SensorReadingModelPost sensorReadingModel)
        {
            if (sensorReadingModel == null)
            {
                var errorMessage = _messages.GetMessage(Generic.NullObject);
                return(BadRequest(errorMessage));
            }

            _throttler.ThrottlerSetup(sensorReadingModel.SensorAddress, 1, 3);
            if (_throttler.RequestShouldBeThrottled())
            {
                return(TooManyRequests(_throttler));
            }

            var sensor = _sensorRep.GetAll()
                         .Where(s => s.Address == sensorReadingModel.SensorAddress)
                         .SingleOrDefault();


            if (sensor != null)
            {
                var gateway = _gatewayRep.GetAll()
                              .SingleOrDefault(g => g.Address == sensorReadingModel.GatewayAddress);

                if (gateway == null)
                {
                    var errorMessage = _messages.GetMessage(Custom.NotFound, "Gateway", "Address");
                    return(NotFound(errorMessage));
                }

                var sensorReading = _mapper.Map <SensorReading>(sensorReadingModel);
                sensorReading.Sensor_Id  = sensor.Id;
                sensorReading.InsertDate = _dateTime.GetDateOffSet();
                _readingRep.Add(sensorReading);

                var pending =
                    TheSensorIntervalPending
                    .GetPendingMember(sensor.Id);

                //Check if the pending exists
                if (pending != null)
                {
                    _mapper.Map(pending, sensor);
                    TheSensorIntervalPending.ClearPending(pending);
                }

                sensor.Active          = true;
                sensor.LastReadingDate = sensorReading.ReadingDate;
                sensor.LastInsertDate  = sensorReading.InsertDate;
                _sensorRep.Update(sensor);

                var address = sensorReadingModel.SensorAddress;
                Hub.Clients.Group(address).refreshReadings();



                //add the gateway connections
                if (!_connectionRep.GetAll()
                    .Any(
                        c => c.Gateway_Id == gateway.Id &&
                        c.Sensor_Id == sensor.Id)
                    )
                {
                    var connection = _connectionService.Create(gateway.Id, sensor.Id);
                    _connectionRep.Add(connection);
                }

                gateway.LastSensorDate = sensorReading.ReadingDate;
                _gatewayRep.Update(gateway);

                var createdReading = _mapper.Map <SensorReadingModelGet>(sensorReading);
                return(Created($"api/networks/{sensor.Network_Id}/sensors/{sensor.Id}/readings", createdReading));
            }
            else
            {
                var errorMessage = _messages.GetMessage(Custom.NotFound, "Sensor", "Address");
                return(NotFound(errorMessage));
            }
        }
Example #9
0
 public async Task <ICollection <Gateway> > GetAll()
 {
     return((await _repo.GetAll()).Select(i => ConvertoModel(i)).ToList());
 }