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)); }
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 }); }
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)); }
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)); }
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)); }