/// <summary> /// Creates an ingredient /// </summary> /// <param name="id"></param> /// <param name="createdOn"></param> /// <param name="ingredientName"></param> /// <param name="ingredientQuantity"></param> /// <returns></returns> public static Result <Ingredient> Create(int id, DateTime createdOn, string ingredientName, int ingredientQuantity) { if (createdOn == default(DateTime)) { return(Result.Invalid <Ingredient>(ResultErrorCodes.INGREDIENT_INVALID_CREATED_ON)); } Result <IngredientNameValue> ingredientNameOrError = IngredientNameValue.Create(ingredientName); Result <IngredientQuantityValue> ingredientQuantityOrError = IngredientQuantityValue.Create(ingredientQuantity); Result okOrError = Result.FirstFailureOrOk(ingredientNameOrError, ingredientQuantityOrError); if (okOrError.IsFailure) { return(Result.FromError <Ingredient>(okOrError)); } return(Result.Ok(new Ingredient { CreatedOn = createdOn, Id = id, Name = ingredientNameOrError.Value, Quantity = ingredientQuantityOrError.Value, })); }
// Storage to domain public static Result <Ingredient> ToIngredientDomain(this Entities.Ingredient dbIngredient) { Result <IngredientNameValue> ingredientNameOrError = IngredientNameValue.Create(dbIngredient.Name); Result <IngredientQuantityValue> ingredientQuantityOrError = IngredientQuantityValue.Create(dbIngredient.Quantity); Result okOrError = Result.FirstFailureOrOk(ingredientNameOrError, ingredientQuantityOrError); if (okOrError.IsFailure) { return(Result.FromError <Ingredient>(okOrError)); } return(Ingredient.Create(dbIngredient.Id, dbIngredient.CreatedOn, dbIngredient.DeletedOn, ingredientNameOrError.Value, ingredientQuantityOrError.Value, dbIngredient.PizzaFk)); }
public Result UpdateQuantity(IngredientQuantityValue newIngredientQuantity) { Result resultOrError = CheckEditable(); if (resultOrError.IsFailure) { return(resultOrError); } if (newIngredientQuantity == default(int)) { return(Result.Invalid(ResultErrorCodes.INGREDIENT_INVALID_QUANTITY)); } Quantity = newIngredientQuantity; MarkModify(); return(Result.Ok()); }
/// <summary> /// This method should be used for creating domain object from DB /// </summary> /// <returns></returns> public static Result <Ingredient> Create(int id, DateTime createdOn, DateTime?deletedOn, IngredientNameValue ingredientName, IngredientQuantityValue ingredientQuantity, int pizzaFk) { if (createdOn == default(DateTime)) { return(Result.Invalid <Ingredient>(ResultErrorCodes.INGREDIENT_INVALID_CREATED_ON)); } return(Result.Ok(new Ingredient { CreatedOn = createdOn, DeletedOn = deletedOn, Id = id, Name = ingredientName, Quantity = ingredientQuantity, PizzaId = pizzaFk })); }