Example #1
0
        public void AddDevice(RestServiceRequest <DeviceInfo> request, RestServiceResponse <DeviceInfo> response)
        {
            if (request.Body == null ||
                !request.Body.DeviceNumber.HasValue() ||
                !request.Body.DeviceName.HasValue())
            {
                throw new RequestDataInvalidException("DeviceNumber", "DeviceName");
            }

            var retVal = _DeviceInfoRepository.AddDevice(DeviceInfoTransfer.BuildDeviceInfoSource(request.Body),
                                                         DeviceSparePartTransfer.BuildDeviceSparePartSources(request.Body.DeviceSpareParts),
                                                         DeviceCheckpointTransfer.BuildDeviceCheckpointSources(request.Body.DeviceCheckpoints));

            if (retVal < 0)
            {
                switch (retVal)
                {
                case -1: throw new DeviceAlreadyExistedException(request.Body.DeviceNumber);

                default: throw new UndefinedException(retVal);
                }
            }

            response.Body = new DeviceInfo()
            {
                DeviceNumber = request.Body.DeviceNumber
            };
        }
Example #2
0
        public void QueryBriefDevices(RestServiceRequest request, RestServiceResponse <DeviceInfo[]> response)
        {
            response.Paging = request.Paging;

            response.Body = DeviceInfoTransfer.BuildDeviceInfos(_DeviceInfoRepository.QueryDeviceInfos(
                                                                    request.Paging,
                                                                    request.GetValue("DeviceNumber"),
                                                                    request.GetValue("DeviceName")));
        }
Example #3
0
        public void DeleteDevice(RestServiceRequest <DeviceInfo> request, RestServiceResponse <DeviceInfo> response)
        {
            if (!request.Body.DeviceNumber.HasValue())
            {
                throw new RequestDataInvalidException("DeviceNumber");
            }

            var retVal = _DeviceInfoRepository.DeleteDevice(DeviceInfoTransfer.BuildDeviceInfoSource(request.Body));

            if (retVal < 0)
            {
                switch (retVal)
                {
                case -1: throw new DeviceNotFoundException(request.Body.DeviceNumber);

                default: throw new UndefinedException(retVal);
                }
            }
        }
Example #4
0
        public void QueryDetailDevices(RestServiceRequest request, RestServiceResponse <DeviceInfo[]> response)
        {
            response.Paging = request.Paging;

            var deviceInfos = DeviceInfoTransfer.BuildDeviceInfos(_DeviceInfoRepository.QueryDeviceInfos(
                                                                      request.Paging,
                                                                      request.GetValue("DeviceNumber"),
                                                                      request.GetValue("DeviceName")));

            var deviceCheckpoints = DeviceCheckpointTransfer.BuildDeviceCheckpoints(
                _DeviceCheckpointRepository.QueryDeviceCheckpoints(deviceInfos.Select(x => x.DeviceNumber).ToArray()));

            var deviceSparePartDeviceInfoMappings = DeviceSparePartDeviceInfoMappingTransfer.BuildDeviceSparePartDeviceInfoMappings(
                _DeviceSparePartRepository.QueryDeviceSpareParts(deviceInfos.Select(x => x.DeviceNumber).ToArray()));

            foreach (var deviceInfo in deviceInfos)
            {
                deviceInfo.DeviceCheckpoints = deviceCheckpoints.Where(x => x.DeviceInfo != null && x.DeviceInfo.DeviceNumber == deviceInfo.DeviceNumber).ToArray();
                deviceInfo.DeviceSpareParts  = deviceSparePartDeviceInfoMappings.Where(x => x.DeviceInfo != null && x.DeviceInfo.DeviceNumber == deviceInfo.DeviceNumber)
                                               .Select(x => x.DeviceSparePart).ToArray();
            }

            response.Body = deviceInfos;
        }