/// <summary> /// Inserta una nueva receta en el sistema /// </summary> /// <param name="receta">Objeto con la receta a insertar</param> /// <returns>Devuelve un booleano indicando si la operación ha ido bien o mal</returns> public async Task <bool> InsertReceta(Receta receta) { RecetaEntity recetaEntity = new RecetaEntity(receta); TableOperation insertOrMerge = TableOperation.InsertOrReplace(recetaEntity); var resultado = await recetasTabla.ExecuteAsync(insertOrMerge); return(resultado.HttpStatusCode == 204); }
/// <summary> /// Elimina una receta /// </summary> /// <param name="categoria">Categoria de la receta</param> /// <param name="id">Identificador de la receta</param> /// <param name="receta">La receta en sí</param> /// <returns>Devuelve un booleano indicando si la operación ha ido bien o mal</returns> public async Task <bool> DeleteReceta(string categoria, string id, Receta receta) { var resultado = await recetasTabla.ExecuteAsync(TableOperation.Retrieve <RecetaEntity>(categoria, id)); RecetaEntity recetaEntity = (RecetaEntity)resultado.Result; resultado = await recetasTabla.ExecuteAsync(TableOperation.Delete(recetaEntity)); return(resultado.HttpStatusCode == 204); }
/// <summary> /// Obtiene una receta según su identificador /// </summary> /// <param name="categoria">Categoria de la receta</param> /// <param name="id">Identificador de la receta. Es un string.</param> /// <returns>Devuelve la receta que coincide con la identificador pasado por parámetros</returns> public async Task <Receta> GetReceta(string categoria, string id) { var resultado = await recetasTabla.ExecuteAsync(TableOperation.Retrieve <RecetaEntity>(categoria, id)); if (resultado.HttpStatusCode == 404 || resultado.Result == null) { throw new StorageException($"Receta con Id {id} y categoría {categoria} no encontrada en la base de datos."); } else { try { RecetaEntity recetaEntity = (RecetaEntity)resultado.Result; return(JsonConvert.DeserializeObject <Receta>(recetaEntity.Receta)); } catch (Exception ex) { throw new StorageException($"El formato JSON del objeto de base de datos no coincide con el esperado en código.\n Id: {id}\nCategoria: {categoria}\nJson: {resultado.Result}", ex); } } }