예제 #1
0
        /// <summary>
        /// Covert data dto to public dto.
        /// </summary>
        /// <param name="deliveryPointGroupDataDTO">Delivery point Group data DTO.</param>
        /// <returns>Delivery point Group public DTO.</returns>
        private DeliveryPointGroupDTO ConvertToDTO(DeliveryPointGroupDataDTO deliveryPointGroupDataDTO)
        {
            DeliveryPointGroupDTO deliveryPointGroupDTO = null;

            if (deliveryPointGroupDataDTO != null)
            {
                deliveryPointGroupDTO = new DeliveryPointGroupDTO();
                // Not need these details as of now
                // Get boundary Location

                // Get centroid Location
                if (deliveryPointGroupDataDTO.AddedDeliveryPoints != null)
                {
                }
                // Get centroid Network Node

                // Get centroid Delivery Point

                // Get Delivery Point Group Details
                if (deliveryPointGroupDataDTO.DeliveryGroup != null)
                {
                    deliveryPointGroupDTO.ID                          = deliveryPointGroupDataDTO.DeliveryGroup.ID;
                    deliveryPointGroupDTO.GroupName                   = deliveryPointGroupDataDTO.DeliveryGroup.GroupName;
                    deliveryPointGroupDTO.DeliverToReception          = deliveryPointGroupDataDTO.DeliveryGroup.DeliverToReception;
                    deliveryPointGroupDTO.GroupTypeGUID               = deliveryPointGroupDataDTO.DeliveryGroup.GroupTypeGUID;
                    deliveryPointGroupDTO.NumberOfFloors              = deliveryPointGroupDataDTO.DeliveryGroup.NumberOfFloors;
                    deliveryPointGroupDTO.InternalDistanceMeters      = deliveryPointGroupDataDTO.DeliveryGroup.InternalDistanceMeters;
                    deliveryPointGroupDTO.WorkloadTimeOverrideMinutes = deliveryPointGroupDataDTO.DeliveryGroup.WorkloadTimeOverrideMinutes;
                }
            }

            return(deliveryPointGroupDTO);
        }
예제 #2
0
        /// <summary>
        /// Covert delivery point group public DTO to data DTO.
        /// </summary>
        /// <param name="deliveryPointGroupDTO">Delivery Point Group DTO.</param>
        /// <returns>Delivery point public DTO.</returns>
        private DeliveryPointGroupDataDTO ConvertToDataDTO(DeliveryPointGroupDTO deliveryPointGroupDTO)
        {
            DeliveryPointGroupDataDTO deliveryPointGroupDataDTO = new DeliveryPointGroupDataDTO();

            if (deliveryPointGroupDTO != null)
            {
                // Construct boundary Location
                deliveryPointGroupDataDTO.GroupBoundary.ID    = deliveryPointGroupDTO.GroupBoundaryGUID;
                deliveryPointGroupDataDTO.GroupBoundary.Shape = deliveryPointGroupDTO.GroupBoundary;

                // Construct centroid LocationRelationShip for relationship between centroid and deliveryPoints
                if (deliveryPointGroupDTO.AddedDeliveryPoints != null && deliveryPointGroupDTO.AddedDeliveryPoints.Count > 0)
                {
                    foreach (var deliveryPoint in deliveryPointGroupDTO.AddedDeliveryPoints)
                    {
                        LocationDataDTO addedDeliveryPoint = new LocationDataDTO();
                        addedDeliveryPoint.ID = deliveryPoint.ID;
                        deliveryPointGroupDataDTO.AddedDeliveryPoints.Add(addedDeliveryPoint);
                    }
                }

                // Construct Delivery Point Group Details
                deliveryPointGroupDataDTO.DeliveryGroup.ID                          = deliveryPointGroupDTO.ID;
                deliveryPointGroupDataDTO.DeliveryGroup.GroupName                   = deliveryPointGroupDTO.GroupName;
                deliveryPointGroupDataDTO.DeliveryGroup.DeliverToReception          = deliveryPointGroupDTO.DeliverToReception;
                deliveryPointGroupDataDTO.DeliveryGroup.GroupTypeGUID               = deliveryPointGroupDTO.GroupTypeGUID;
                deliveryPointGroupDataDTO.DeliveryGroup.NumberOfFloors              = deliveryPointGroupDTO.NumberOfFloors;
                deliveryPointGroupDataDTO.DeliveryGroup.InternalDistanceMeters      = deliveryPointGroupDTO.InternalDistanceMeters;
                deliveryPointGroupDataDTO.DeliveryGroup.WorkloadTimeOverrideMinutes = deliveryPointGroupDTO.WorkloadTimeOverrideMinutes;
                deliveryPointGroupDataDTO.DeliveryGroup.TimeOverrideApproved        = deliveryPointGroupDTO.TimeOverrideApproved;
                deliveryPointGroupDataDTO.DeliveryGroup.TimeOverrideReason          = deliveryPointGroupDTO.TimeOverrideReason;

                deliveryPointGroupDataDTO.DeliveryPointUseIndicatorGUID = deliveryPointGroupDTO.DeliveryPointUseIndicatorGUID;
                deliveryPointGroupDataDTO.NetworkNodeType = deliveryPointGroupDTO.NetworkNodeType;
                deliveryPointGroupDataDTO.RelationshipTypeForCentroidToBoundaryGUID      = deliveryPointGroupDTO.RelationshipTypeForCentroidToBoundaryGUID;
                deliveryPointGroupDataDTO.RelationshipTypeForCentroidToDeliveryPointGUID = deliveryPointGroupDTO.RelationshipTypeForCentroidToDeliveryPointGUID;
                deliveryPointGroupDataDTO.DeliveryGroupStatusGUID = deliveryPointGroupDTO.DeliveryGroupStatus;
            }

            return(deliveryPointGroupDataDTO);
        }
        public async Task <IActionResult> CreateDeliveryGroup([FromBody] DeliveryPointGroupDTO deliveryPointGroupDto)
        {
            try
            {
                using (loggingHelper.RMTraceManager.StartTrace("WebService.AddDeliveryPoint"))
                {
                    DeliveryPointGroupDTO createDeliveryPointGroupModelDTO = null;
                    string methodName = typeof(DeliveryPointGroupController) + "." + nameof(CreateDeliveryGroup);
                    loggingHelper.LogMethodEntry(methodName, priority, entryEventId);

                    // validate the method argument.
                    if (deliveryPointGroupDto == null)
                    {
                        throw new ArgumentNullException(nameof(deliveryPointGroupDto));
                    }

                    // validate the model state.
                    if (!ModelState.IsValid)
                    {
                        return(BadRequest(ModelState));
                    }

                    createDeliveryPointGroupModelDTO = deliveryPointGroupBusinessService.CreateDeliveryPointGroup(deliveryPointGroupDto);
                    loggingHelper.LogMethodExit(methodName, priority, exitEventId);

                    return(Ok(createDeliveryPointGroupModelDTO));
                }
            }
            catch (AggregateException ae)
            {
                foreach (var exception in ae.InnerExceptions)
                {
                    loggingHelper.Log(exception, TraceEventType.Error);
                }

                var realExceptions = ae.Flatten().InnerException;
                throw realExceptions;
            }
        }
예제 #4
0
        /// <summary>
        /// /// <summary>
        /// Create Delivery group
        /// </summary>
        /// <param name="deliveryPointGroupDto">Public Dto to create Delivery group</param>
        /// <returns></returns>
        public DeliveryPointGroupDTO CreateDeliveryPointGroup(DeliveryPointGroupDTO deliveryPointGroupDto)
        {
            using (loggingHelper.RMTraceManager.StartTrace("Business.CreateDeliveryPointGroup"))
            {
                string methodName = typeof(DeliveryPointGroupBusinessService) + "." + nameof(CreateDeliveryPointGroup);
                loggingHelper.LogMethodEntry(methodName, priority, entryEventId);

                if (deliveryPointGroupDto == null)
                {
                    throw new ArgumentNullException(nameof(deliveryPointGroupDto), string.Format(ErrorConstants.Err_ArgumentmentNullException, deliveryPointGroupDto));
                }

                // Get reference data related to Delivery group
                List <string> categoryNamesSimpleLists = new List <string>
                {
                    ReferenceDataCategoryNames.NetworkNodeType,
                    ReferenceDataCategoryNames.DeliveryPointOperationalStatus,
                    ReferenceDataCategoryNames.DeliveryPointUseIndicator,
                    ReferenceDataCategoryNames.LocationRelationshipType
                };
                var referenceDataCategoryList = deliveryPointGroupIntegrationService.GetReferenceDataSimpleLists(categoryNamesSimpleLists).Result;
                deliveryPointGroupDto.NetworkNodeType                                = GetReferenceData(referenceDataCategoryList, ReferenceDataCategoryNames.NetworkNodeType, DeliveryPointGroupConstants.DeliveryPointGroupDataProviderGUID, true);
                deliveryPointGroupDto.DeliveryGroupStatus                            = GetReferenceData(referenceDataCategoryList, ReferenceDataCategoryNames.DeliveryPointOperationalStatus, DeliveryPointGroupConstants.OperationalStatusGUIDLive, true);
                deliveryPointGroupDto.DeliveryPointUseIndicatorGUID                  = GetReferenceData(referenceDataCategoryList, ReferenceDataCategoryNames.DeliveryPointUseIndicator, DeliveryPointGroupConstants.Residential, true);
                deliveryPointGroupDto.RelationshipTypeForCentroidToBoundaryGUID      = GetReferenceData(referenceDataCategoryList, ReferenceDataCategoryNames.LocationRelationshipType, DeliveryPointGroupConstants.RelationshipTypeForCentroidToBoundary, true);
                deliveryPointGroupDto.RelationshipTypeForCentroidToDeliveryPointGUID = GetReferenceData(referenceDataCategoryList, ReferenceDataCategoryNames.LocationRelationshipType, DeliveryPointGroupConstants.RelationshipTypeForCentroidToDeliveryPoint, true);

                deliveryPointGroupDto.ID = Guid.NewGuid();
                deliveryPointGroupDto.GroupBoundaryGUID = Guid.NewGuid();
                deliveryPointGroupDto.GroupBoundary     = CreateGroupBoundary(deliveryPointGroupDto.GroupCoordinates);
                deliveryPointGroupDto.GroupCentroid     = deliveryPointGroupDto.GroupBoundary.Centroid;

                deliveryPointGroupDataService.CreateDeliveryGroup(ConvertToDataDTO(deliveryPointGroupDto));

                loggingHelper.LogMethodExit(methodName, priority, exitEventId);

                return(null);
            }
        }
예제 #5
0
        public DeliveryPointGroupDTO UpdateDeliveryGroup(DeliveryPointGroupDTO deliveryPointGroupDto)
        {
            using (loggingHelper.RMTraceManager.StartTrace($"Business.{nameof(UpdateDeliveryGroup)}"))
            {
                //    List<string> categoryNamesSimpleLists = new List<string>
                //{
                //        ReferenceDataCategoryNames.DataProvider,
                //    ReferenceDataCategoryNames.OperationalObjectType,
                //    ReferenceDataCategoryNames.AccessLinkDirection,
                //    ReferenceDataCategoryNames.AccessLinkStatus,
                //    ReferenceDataCategoryNames.AccessLinkType, // access link type (NLNodetype)
                //    ReferenceDataCategoryNames.NetworkLinkType,
                //    ReferenceDataCategoryNames.DeliveryPointUseIndicator,
                //    ReferenceDataCategoryNames.NetworkNodeType
                //};

                //    var referenceDataCategoryList =
                //       deliveryPointGroupIntegrationService.GetReferenceDataSimpleLists(categoryNamesSimpleLists).Result;
                deliveryPointGroupDataService.UpdateDeliveryGroup(ConvertToDataDTO(deliveryPointGroupDto));
            }

            return(deliveryPointGroupDto);
        }