Example #1
0
        public async Task <int> AddPeripheral(int id, Peripheral ph)
        {
            var gw = await _repo.Get(id);

            if (gw.Peripheral.Count == 10)
            {
                throw new Exception("Gateway is on full capacity(10)");
            }
            gw.Peripheral.Add(this.ConvetToDomain(ph));
            return(await _repo.Update(gw));
        }
Example #2
0
        public Object GetDeviceLocationByDeviceId(EntityDto <int> input)
        {
            var device = _deviceRepository.Get(input.Id);

            if (device.IsNullOrDeleted())
            {
                throw new ApplicationException("device不存在或已被删除");
            }
            var gateway  = _gatewayRepository.Get(device.GatewayId);
            var workshop = _workshopRepository.Get(gateway.WorkshopId);
            var factory  = _factoryRepository.Get(workshop.FactoryId);
            var city     = _cityRepository.Get(factory.CityId);

            if (city.IsNullOrDeleted())
            {
                throw new ApplicationException("city不存在或已被删除");
            }
            return(new
            {
                cityName = city.CityName,
                longitude = city.Longitude,
                latitude = city.Latitude,
                factoryName = factory.FactoryName,
                workshopName = workshop.WorkshopName,
                gatewayName = gateway.GatewayName
            });
        }
Example #3
0
 private void ConfigureData()
 {
     gateway = new Domain.Gateway()
     {
         Id           = 1,
         SerialNumber = "G1",
         IPV4Address  = "12.12.1.2",
         Name         = "G1"
     };
     gatewayDto = new GatewayDto()
     {
         Id           = 1,
         SerialNumber = "G1",
         IPV4Address  = "12.12.1.2",
         Name         = "G1"
     };
     gatewayDetailsDto = new GatewayDetailsDto()
     {
         Id           = 1,
         SerialNumber = "G1",
         IPV4Address  = "12.12.1.2",
         Name         = "G1",
         Devices      = new List <DeviceDto>()
     };
     mapper = new MapperConfiguration(c => c.AddProfile <AutoMapping>()).CreateMapper();
     gatewayRepositoryMock.Get(gateway.Id).Returns(Task <Domain.Gateway> .FromResult(gateway));
     gatewayRepositoryMock.Insert(gateway).Returns(Task <Domain.Gateway> .FromResult(gateway));
     gatewayRepositoryMock.Delete(gateway).Returns(Task <Domain.Gateway> .FromResult(gateway));
     service = new GatewayService(this.gatewayRepositoryMock, mapper);
 }
        public GatewayDto Update(UpdateGatewayDto input)
        {
            var entity    = _gatewayRepository.Get(input.Id);
            var cityQuery = _cityRepository.GetAll().Where(c => c.CityName == input.CityName);

            if (!cityQuery.Any())
            {
                throw new ApplicationException("City不存在");
            }
            var factoryQuery = _factoryRepository.GetAll().Where(f => f.FactoryName == input.FactoryName);

            if (!factoryQuery.Any())
            {
                throw new ApplicationException("Factory不存在");
            }

            var factory = factoryQuery.FirstOrDefault();

            if (factory != null)
            {
                factory.City = cityQuery.FirstOrDefault();
                var workshopQuery = _workshopRepository.GetAll().Where(w => w.WorkshopName == input.WorkshopName);
                if (!workshopQuery.Any())
                {
                    throw new ApplicationException("Workshop不存在");
                }

                var workshop = workshopQuery.FirstOrDefault();
                if (workshop != null)
                {
                    workshop.Factory = factory;
                    ObjectMapper.Map(input, entity);
                    entity.Workshop = workshop;
                }
            }

            var result = _gatewayRepository.Update(entity);

            CurrentUnitOfWork.SaveChanges();
            return(ObjectMapper.Map <GatewayDto>(result));
        }
Example #5
0
        public IHttpActionResult Get(int networkId, int id)
        {
            _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 gateway = _gatewayRep.Get(id);

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

            var gatewayModel = _mapper.Map <GatewayModelGet>(gateway);

            return(Ok(gatewayModel));
        }
Example #6
0
        public IHttpActionResult GetGatewayConnections(int networkId, int gatewayId, 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 gateway = _gatewayRep.Get(gatewayId);

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

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


            var totalCount = gateway.Connections.Count();

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


            var results = _sensorRep.GetAll()
                          .Join(gateway.Connections, s => s.Id, c => c.Sensor_Id, (s, c) => s)
                          .Skip(pageSize * (page - 1))
                          .Take(pageSize)
                          .Select(p => _mapper.Map <SensorModelGet>(p))
                          .ToList();


            return(Ok("GetGatewayConnections", page, pageSize, pageCount, totalCount, results));
        }