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