public override string Execute() { Console.WriteLine($"Trying to update property \"{Name}\"..."); string message; var project = _projectService.GetProjectByName(Project).Result; if (project != null) { var model = _projectDataModelService.GetProjectDataModelByName(project.Id, Model).Result; if (model != null) { var property = _projectDataModelService.GetProjectDataModelPropertyByName(project.Id, model.Id, Name).Result; int? relatedModelId = null; string relationalType = null; if (!string.IsNullOrEmpty(Relational)) { var relatedModel = _projectDataModelService.GetProjectDataModelByName(project.Id, Relational).Result; if (relatedModel != null) { relatedModelId = relatedModel.Id; relationalType = RelationalType; } else { message = $"Related model {Relational} was not found"; Logger.LogInformation(message); return(message); } } if (property != null) { _projectDataModelService.UpdateProjectDataModelProperty(project.Id, model.Id, property.Id, new UpdateProjectDataModelPropertyDto { Id = property.Id, Name = Rename ?? property.Name, Label = Label ?? property.Label, DataType = Type ?? property.DataType, IsRequired = Required ?? property.IsRequired, ControlType = ControlType ?? property.ControlType, RelatedProjectDataModelId = relatedModelId ?? property.RelatedProjectDataModelId, RelationalType = relationalType ?? property.RelationalType, IsManaged = Managed ?? property.IsManaged }).Wait(); message = $"Property {Name} has been updated successfully"; return(message); } } } message = $"Failed to update property {Name}. Make sure the project, model, and property names are correct."; return(message); }
public async Task <IActionResult> CreateProjectDataModelProperty(int projectId, int modelId, CreateProjectDataModelPropertyDto newProperty) { _logger.LogRequest("Creating property for data model {modelId} in project {projectId}. Request body: {@newProperty}", modelId, projectId, newProperty); try { var propertyId = await _projectDataModelService.AddDataModelProperty(modelId, newProperty.Name, newProperty.Label, newProperty.DataType, newProperty.ControlType, newProperty.IsRequired, newProperty.RelatedProjectDataModelId, newProperty.RelationalType, newProperty.IsManaged, newProperty.Sequence); var property = await _projectDataModelService.GetProjectDataModelPropertyByName(modelId, newProperty.Name); var result = _mapper.Map <ProjectDataModelPropertyDto>(property); _logger.LogResponse("Property in data model {modelId} in project {projectId} created. Response body: {@result}", modelId, projectId, result); return(CreatedAtRoute("GetProjectDataModelPropertyById", new { projectId, modelId, propertyId }, result)); } catch (DuplicateProjectDataModelPropertyException dupEx) { _logger.LogWarning(dupEx, "Duplicate property name"); return(BadRequest(dupEx.Message)); } catch (ProjectDataModelNotFoundException modEx) { _logger.LogWarning(modEx, "Project data model not found"); return(BadRequest(modEx.Message)); } }
public override string Execute() { if (!(AutoConfirm || Console.GetYesNo($"Are you sure you want to remove property {Name} from model {Model}?", false))) { return(string.Empty); } Console.WriteLine($"Trying to remove property \"{Name}\" from model {Model}..."); string message; var project = _projectService.GetProjectByName(Project).Result; if (project != null) { var model = _projectDataModelService.GetProjectDataModelByName(project.Id, Model).Result; if (model != null) { var property = _projectDataModelService.GetProjectDataModelPropertyByName(project.Id, model.Id, Name).Result; if (property != null) { _projectDataModelService.DeleteProjectDataModelProperty(project.Id, model.Id, property.Id).Wait(); message = $"Property {Name} has been removed successfully"; Logger.LogInformation(message); return(message); } } } message = $"Failed to remove property {Name}. Make sure the project, model, and property names are correct."; return(message); }