Beispiel #1
0
        /// <summary>
        /// sample: { "entity": { "entity_type": "Request", "properties": { "ImpactScope": "Enterprise", "Urgency": "NoDisruption", "RequestedByPerson": "10016", "RequestsOffering": "11428", "DisplayLabel": "Request from Postman", "Description": "<p>This is a request created from Postman</p>", "UserOptions": "{"complexTypeProperties":[{"properties":{"OptionSet5FCCC5624DDDBA17DA397224C5D4ED0B_c":{"Option55F063755603608CB8287224C5D426DE_c":true},"OptionSetB9C2FB0D304A86418C651492D37A5E72_c":{"Option90AB77B8232585150B951492D37AE403_c":true},"changedUserOptionsForSimulation":"EndDate&","PropertyamazonResourceProvider55F063755603608CB8287224C5D426DE_c":"8a809efe73146d590173147b4a954cfc","Propertyregion55F063755603608CB8287224C5D426DE_c":"eu-west-1","PropertyPlatformType55F063755603608CB8287224C5D426DE_c":"Amazon Linux#eu-west-1","Propertykeypair55F063755603608CB8287224C5D426DE_c":"FARM-1-0d7bdb2a","PropertyvpcId55F063755603608CB8287224C5D426DE_c":"eu-west-1#vpc-017f010990ed442ce","Propertyimage55F063755603608CB8287224C5D426DE_c":"ami-0093757e056f6fe96","PropertysubnetId55F063755603608CB8287224C5D426DE_c":"subnet-0dcd276d74eb84059"}}]}", "DataDomains": [ "Public" ], "StartDate": 1596664800000, "EndDate": 1599170400000, "RequestAttachments": "{"complexTypeProperties":[]}" } }, "operation": "CREATE" }
        /// </summary>
        /// <param name="createNewRequestDto">The response of the API please check the status provided at "completion_status" node</param>
        /// <returns></returns>
        public Task <CreateRequestResponse> CreateRequest(CreateRequestPropertiesDto createNewRequestDto)
        {
            try
            {
                if (createNewRequestDto == null)
                {
                    throw new ArgumentException(
                              "Please check the create NewRequest Dto object properties. Object can not be null or empty");
                }

                var data = new CreateRequestEntity
                {
                    entity_type = BulkEntityConst.Request,
                    properties  = new CreateRequestProperties
                    {
                        Description       = createNewRequestDto.Description,
                        DisplayLabel      = createNewRequestDto.DisplayLabel,
                        StartDate         = GetTotalMillisecondsFromDateTime(createNewRequestDto.StartDate),
                        EndDate           = createNewRequestDto.EndDate.HasValue ? GetTotalMillisecondsFromDateTime(createNewRequestDto.EndDate.Value) : null as long?,
                        RequestedByPerson = createNewRequestDto.RequestedByPerson,
                        RequestsOffering  = createNewRequestDto.RequestsOffering,
                        ImpactScope       = BulkImpactScopeConst.Enterprise,
                        Urgency           = BulkUrgencyConst.NoDisruption,
                        //UserOptions = createNewRequestDto.entity.properties.UserOptions != null ? createNewRequestDto.entity.properties.UserOptions : new UserOptionsDto{complexTypeProperties = new List<Complextypeproperty>()},
                        UserOptions = createNewRequestDto.UserOptions,
                        DataDomains = new List <string> {
                            BulkDataDomainsConst.Public
                        },
                        RequestAttachments = createNewRequestDto.RequestAttachments
                    }
                };

                var request = new CreateRequestDto
                {
                    operation = BulkOperationConst.Create,
                    entities  = new List <CreateRequestEntity> {
                        data
                    }
                };

                return(SendSmaxHcm <CreateRequestResponse>(HttpMethod.Post, string.Format(SmaxHcmEndpointConst.CreateRequest, SmaxHcmOptions.TenantId), request));
            }
            catch (Exception ex)
            {
                throw new SmaxHcmGenericException($"Error on creating request - {ex.Message}");
            }
        }
 public async Task <IActionResult> CreateRequest(CreateRequestPropertiesDto createNewRequestDto)
 {
     Devon4NetLogger.Debug("Executing CreateRequest from controller SmaxHcm");
     return(Ok(await SmaxHcmHandler.CreateRequest(createNewRequestDto)));
 }