public void CreateOrEditContext(ContextInput Context) { var configFolder = GetConfigFolder(); var fileName = Context.Name + ".json"; var configPath = Path.Combine(configFolder, fileName); if (File.Exists(configPath)) { var configString = File.ReadAllText(configPath); var config = JsonSerializer.Deserialize <OtmContextConfig>(configString); config.Name = Context.Name; config.Enabled = Context.Enabled; //config.DataPoints = new List<DataPointConfig>(); //config.Devices = new List<DeviceConfig>(); //config.Transactions = new List<TransactionConfig>(); var configJson = JsonSerializer.Serialize <OtmContextConfig>(config); File.WriteAllText(configPath, configJson); } else { var config = new OtmContextConfig(); config.Name = Context.Name; config.Enabled = Context.Enabled; var configJson = JsonSerializer.Serialize <OtmContextConfig>(config); File.WriteAllText(configPath, configJson); } }
public ValidationResult ValidateUpdate(string oldId, OtmContextConfig config) { var result = new ValidationResult(); var validName = config.Name != null && config.Name.All(c => Char.IsLetterOrDigit(c) || c == '_'); if (!validName) { result.Errors.Add(new ValidationFailure(nameof(config.Name), "Nome do ambiente invalido! Use apenas letras, numeros e '_'.")); } var configFolder = GetConfigFolder(); var fileName = oldId + ".json"; var configPath = Path.Combine(configFolder, fileName); if (!File.Exists(configPath)) { result.Errors.Add(new ValidationFailure(nameof(config.Name), "O arquivo orginal do ambiente editado nao existe.")); } if (oldId != config.Name) { var newFileName = config.Name + ".json"; var newConfigPath = Path.Combine(configFolder, newFileName); if (File.Exists(newConfigPath)) { result.Errors.Add(new ValidationFailure(nameof(config.Name), "Nome do ambiente invalido! Ja existe um ambiente com este nome.")); } } return(result); }
public void Create(OtmContextConfig config) { var configFolder = GetConfigFolder(); var fileName = config.Name + ".json"; var configPath = Path.Combine(configFolder, fileName); var configJson = JsonSerializer.Serialize <OtmContextConfig>(config); File.WriteAllText(configPath, configJson); }
//[ProducesResponseType(typeof(ModelStateDictionary), StatusCodes.Status400BadRequest)] public IActionResult Create(OtmContextConfig config) { var validation = ConfigService.ValidateCreate(config); if (!validation.IsValid) { validation.AddToModelState(ModelState, null); return(BadRequest(ModelState)); } return(Ok(config)); }
public void Update(string oldId, OtmContextConfig config) { var configFolder = GetConfigFolder(); var fileName = config.Name + ".json"; var configPath = Path.Combine(configFolder, fileName); var configJson = JsonSerializer.Serialize <OtmContextConfig>(config); File.WriteAllText(configPath, configJson); if (config.Name != oldId) { Delete(oldId); } }
//[ProducesResponseType(typeof(ModelStateDictionary), StatusCodes.Status400BadRequest)] public IActionResult Update(string id, OtmContextConfig config) { if (!ConfigService.Exists(id)) { return(NotFound()); } var validation = ConfigService.ValidateUpdate(id, config); if (!validation.IsValid) { validation.AddToModelState(ModelState, null); return(BadRequest(ModelState)); } ConfigService.Update(id, config); return(Ok(config)); }
public ValidationResult ValidateCreate(OtmContextConfig config) { var result = new ValidationResult(); var validName = config.Name != null && config.Name.All(c => Char.IsLetterOrDigit(c) || c == '_'); if (!validName) { result.Errors.Add(new ValidationFailure(nameof(config.Name), "Nome do ambiente invalido! Use apenas letras, numeros e '_'.")); } var configFolder = GetConfigFolder(); var fileName = config.Name + ".json"; var configPath = Path.Combine(configFolder, fileName); if (File.Exists(configPath)) { result.Errors.Add(new ValidationFailure(nameof(config.Name), "Nome do ambiente invalido! Ja existe um ambiente com este nome.")); } return(result); }
public OtmContext(OtmContextConfig config, ILogger logger) { Config = config; Logger = logger; }