// ToDo: Jim Fisher Added on May 19 2014 #Backlog:8265 is tracking whether or not we need unit or integration tests public GetFacilitiesResponseDto GetFacilitiesData(GetFacilitiesRequestDto request, HeaderArgs headerArgs) { var enterpriseRequest = TypeAdapter.Adapt<GetFacilitiesRequestDto, GetFacilitiesRequest>(request); var facilitiesResponse = base.GetFacilities(enterpriseRequest); return TypeAdapter.Adapt<GetFacilitiesResponse, GetFacilitiesResponseDto>(facilitiesResponse); }
/// <summary> /// GetCopperAndFiberFacilitiesData /// </summary> /// <param name="facilityRequest">The facilityRequest</param> /// <param name="dpiRegion">The dpiRegion</param> /// <param name="userDto">The user dto</param> /// <returns></returns> public GetFacilitiesResponseDto GetCopperAndFiberFacilitiesData(GetFacilitiesRequestDto facilityRequest, string dpiRegion, UserDto userDto) { var taskArray = new List<Task>(); Task<GetFacilitiesResponseDto> dpiFacilityTask = null; Task<FacilityDataDto> rozFacilityTask = null; GetFacilitiesResponseDto dpiFacilityData = null; FacilityDataDto rozFacilityData = null; // retrieve copper and fiber facilities data from esb, rosettian respectively try { dpiFacilityTask = Task.Factory.StartNew( () => _enterpriseService.GetFacilitiesData(facilityRequest, new HeaderArgs(dpiRegion, userDto.Name, null, userDto.Name, userDto.Email, userDto.Role))); taskArray.Add(dpiFacilityTask); rozFacilityTask = Task.Factory.StartNew( () => _rozFacilityClient.GetFacilityData(facilityRequest.USI, userDto)); taskArray.Add(rozFacilityTask); Task.WaitAll(taskArray.ToArray()); } catch (AggregateException ae) { ae.InnerExceptions.ToList() .ForEach(innerException => _errorLoggingService.LogErrorNoContext(innerException)); } finally { foreach (var task in taskArray.Where(task => task.Status == TaskStatus.RanToCompletion)) { if (task == dpiFacilityTask && dpiFacilityTask != null) dpiFacilityData = dpiFacilityTask.Result; if (task == rozFacilityTask && rozFacilityTask != null) rozFacilityData = rozFacilityTask.Result; } } // construct facilities data with retrieved copper, fiber facilities data var currentSubFacilityData = dpiFacilityData ?? new GetFacilitiesResponseDto { PlantData = new PlantDataDto() }; if (currentSubFacilityData.PlantData == null) currentSubFacilityData.PlantData = new PlantDataDto(); if (rozFacilityData != null) { var fiberPlantDataStatus = string.Empty; if (currentSubFacilityData.PlantData.FiberPlantData != null) fiberPlantDataStatus = currentSubFacilityData.PlantData.FiberPlantData.Status; currentSubFacilityData.PlantData.FiberPlantData = MapToFiberPlantDataDto(rozFacilityData, fiberPlantDataStatus); } // return facilities data return currentSubFacilityData; }
// ToDo: Jim Fisher Added on May 19 2014 #Backlog:8265 is tracking whether or not we need unit or integration tests /// <summary> /// /// </summary> /// <param name="request"></param> /// <param name="headerArgs"></param> /// <returns></returns> public GetFacilitiesResponseDto GetFacilitiesData(GetFacilitiesRequestDto request, HeaderArgs headerArgs) { if (string.IsNullOrWhiteSpace(request.USI)) throw new ArgumentNullException("request.USI"); var getFacilitiesResponse = new GetFacilitiesResponseDto(); try { getFacilitiesResponse = _retrieveServiceDesign.RetrieveFacilitiesDesign(request, headerArgs); } catch (System.Exception e) { var isServiceException = _enterpriseExceptionHandler.HandleGeneralServiceExceptions(e); if (isServiceException) { var myException = new System.Exception(Constants.IsServiceExceptionUpperCase, e); throw myException; } throw; } return getFacilitiesResponse; }