Esempio n. 1
0
 // 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);
 }
Esempio n. 2
0
        /// <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;
        }
Esempio n. 3
0
        // 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;
        }