//adds a food item in the database, respecting the validation rules public int addFoodItem(BFoodItem bFoodItem) { FoodItemAccess fia = new FoodItemAccess(); FoodItem latestFood = fia.findLatestFood(); //prevents from inserting duplicate elements on refresh if (!(latestFood.Name.Equals(bFoodItem.Name) && latestFood.PurchaseDate.Equals(bFoodItem.PurchaseDate) && latestFood.ExpDate.Equals(bFoodItem.ExpDate) && latestFood.Quantity.Equals(bFoodItem.Quantity))) { //Invalid Purchase date if (bFoodItem.PurchaseDate.Equals(DateTime.MinValue)) { return(1); } //Invalid Expiration date if (bFoodItem.ExpDate.Equals(DateTime.MinValue)) { return(2); } //Invalid Consumption date if (bFoodItem.ConsDate.Equals(DateTime.MinValue)) { return(3); } //Name can contain only english letters if (!Regex.IsMatch(bFoodItem.Name, @"^[a-zA-z]+$")) { return(4); } //Qunatity limits if (bFoodItem.Quantity < 0) { return(5); } if (bFoodItem.Quantity > 1000) { return(6); } //Calories limits if (bFoodItem.Calories < 0) { return(7); } if (bFoodItem.Calories > 1000000) { return(8); } if (bFoodItem.ConsDate > DateTime.Now) { return(9); } if (bFoodItem.PurchaseDate > DateTime.Now) { return(10); } //Successfully inserted fia.addFoodItem(convert_to_fi(bFoodItem)); return(0); } return(11); }