public async Task <IActionResult> AddResource([FromBody] ResourceBaseModel resourcesBaseModel) { try { var resourceId = await _resourcesDataManager.AddResource(resourcesBaseModel); return(Ok(new ResourceIdModel { ResourceId = resourceId })); } catch (OutputException ex) { return(CreateErrorResultFromOutputException(ex)); } catch (HandledException) { return(InternalServerErrorResult()); } catch (Exception ex) { await _logsManager.ErrorAsync(new ErrorLogStructure(ex).WithErrorSource()); return(InternalServerErrorResult()); } }
public async Task <long> AddResource(ResourceBaseModel resource) { IDbBase dbBase = null; try { if (string.IsNullOrWhiteSpace(resource.Name)) { throw new OutputException( new Exception(RESOURCE_NAME_IS_MANDATORY), StatusCodes.Status400BadRequest, MnemoxStatusCodes.INVALID_MODEL); } dbBase = _dbFactory.GetDbBase(); var parameters = new List <TimescaleParameter> { new TimescaleParameter { NpgsqlValue = resource.Name, ParameterName = RESOURCE_NAME_PARAMETER_NAME, NpgsqlDbType = NpgsqlDbType.Varchar }, new TimescaleParameter { NpgsqlValue = resource.Description, ParameterName = RESOURCE_DESCRIPTION_PARAMETER_NAME, NpgsqlDbType = NpgsqlDbType.Varchar }, new TimescaleParameter { NpgsqlValue = resource.Type, ParameterName = RESOURCE_TYPE_PARAMETER_NAME, NpgsqlDbType = NpgsqlDbType.Smallint } }; await dbBase.ConnectAsync(); var resourceId = (long)await dbBase.ExecuteScalarAsync(ADD_RESOURCE_FUNCTION_NAME, parameters); return(resourceId); } catch (Exception ex) { await _logsManager.ErrorAsync(new ErrorLogStructure(ex).WithErrorSource()); throw new HandledException(ex); } finally { if (dbBase != null) { await dbBase.DisconnectAsync(); } } }