/// <summary> /// Create a service for a team /// </summary> /// <param name="createServicePost">json request object containing information to create service</param> /// <returns>Bool representing whether the operation passed</returns> public bool CreateService(CreateServicePost createServicePost) { try { // Create the service for that team. var newService = new Service() { Owner = createServicePost.ClientId, Endpoint = createServicePost.RouteToAccess, Input = createServicePost.Input, Output = createServicePost.Output, Dataformat = createServicePost.DataFormat, Description = createServicePost.ServiceDescription }; // Save changes. _context.Service.Add(newService); _context.SaveChanges(); return(true); } catch { return(false); } }
public IActionResult CreateServicePost(CreateServicePost createServicePost) { try { return(Ok(_serviceManagementManager.CreateService(createServicePost))); } catch { return(StatusCode(StatusCodes.Status500InternalServerError)); } }
/// <summary> /// Create a service for a team /// </summary> /// <param name="createServicePost">Json object representing request</param> /// <returns>Json response object</returns> public CreateServiceResp CreateService(CreateServicePost createServicePost) { // Check that endpoint to call the service is unique. var endpointResult = _serviceManagementService.IsServiceEndpointUnique(createServicePost.RouteToAccess); // Deserialize configurations into a .net object to loop over action chain for url validation. var configJson = JsonConvert.DeserializeObject <ServiceConfiguration>(createServicePost.Configurations); var websiteValid = true; // If endpoint is unique check if steps are alive. for (var i = 0; i < configJson.Steps; i++) { // Check if site is valid. websiteValid &= _urlValidationService.IsUrlValid(configJson.Configurations[i].Action); // Check if site is https. websiteValid &= _urlValidationService.IsUrlHttps(configJson.Configurations[i].Action); } var serviceCreateResult = false; var configurationsResult = false; // Create service configurations if above steps pass if (endpointResult && websiteValid) { // Create service for the team. serviceCreateResult = _serviceManagementService.CreateService(createServicePost); // Create Configurations for all teams the service is open to. configurationsResult = _serviceManagementService.CreateConfigurations(createServicePost.OpenTo, createServicePost.RouteToAccess, createServicePost.Configurations); } // Return corresponding json response object. if (endpointResult && websiteValid && serviceCreateResult && configurationsResult) { return(new CreateServiceResp() { Status = true, EndpointResult = endpointResult, WebsiteValid = websiteValid }); } else { return(new CreateServiceResp() { Status = false, EndpointResult = endpointResult, WebsiteValid = websiteValid }); } }