//update user ratings public int UpdateUserRating(UserRatingsModel model) { int res = 0; try { using (TransactionScope trScope = new TransactionScope()) { using (SqlConnection con = new SqlConnection(CONNECTION_STRING)) { con.Open(); SqlCommand command = new SqlCommand("Update_User_Ratings", con); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@UserRatingId", model.UserRatingId); command.Parameters.AddWithValue("@User_Id", model.UserId); command.Parameters.AddWithValue("@RatingId", model.RatingId); command.Parameters.AddWithValue("@RateMark", model.RateMark); command.Parameters.AddWithValue("@TalkId", model.TalkId); command.Parameters.AddWithValue("@Status", model.IsEdit); res = Convert.ToInt32(command.ExecuteScalar()); } trScope.Complete(); } } catch { throw; } return(res); }
public async Task <IHttpActionResult> Post(int id, UserRatingsModel userRatings) { try { //1. Validate Model State if (ModelState.IsValid) { List <BeersReviewsModel> results = new List <BeersReviewsModel>(); List <RatingsEntity> dbRatings = null; //2. Validate if beer exisis in Punk API var beer = await _beerRepository.GetBeer(id); if (beer == null) { return(NotFound()); } //3. If ID exists in Punk API, add rating and save to database.json if (beer.Any()) { //4. Read Json and increment Rating Id dbRatings = JsonConvert.DeserializeObject <List <RatingsEntity> >(_jsonUtility.Read("database.json", "Data")); var count = dbRatings?.Max(x => x.Id); count = count == null ? 1 : count + 1; //5. Create Ratings Entity to be saved to json // Beer ID mapping to user rating request before saving to json var ratings = new RatingsEntity { Id = count.Value, UserRatings = userRatings, BeerId = id }; //6. Add to json entity dbRatings.Add(ratings); //7. Write and Save to database.json string dbRatingsJson = JsonConvert.SerializeObject(dbRatings); _jsonUtility.Write("database.json", "Data", dbRatingsJson); //8. Return Success with rating info return(Ok(ratings)); } } } catch (Exception ex) { //Return Internal Server Error for unhandled exceptions return(InternalServerError(ex)); } //Return Bad Request with error messages for invalid inputs return(BadRequest(ModelState)); }
public void PostTest() { //Arrange RatingsController controller = MockControllerCtor(); var input = new UserRatingsModel { Comments = "Comment1", Rating = 7, Username = "******" }; // Act Task <IHttpActionResult> result = controller.Post(42, input); // // Assert Assert.IsNotNull(result.Result); Assert.AreEqual(2, ((System.Web.Http.Results.OkNegotiatedContentResult <Data.Entities.RatingsEntity>)result.Result).Content.Id); Assert.AreEqual(42, ((System.Web.Http.Results.OkNegotiatedContentResult <Data.Entities.RatingsEntity>)result.Result).Content.BeerId); }
/// <summary> /// This method will be executed before action is executed /// Validates username parameter and adds error message to Model State if invalid /// </summary> /// <param name="actionContext">Action Method Context</param> public override void OnActionExecuting(HttpActionContext actionContext) { var validateParameter = "userRatings"; if (actionContext.ActionArguments == null || !actionContext.ActionArguments.ContainsKey(validateParameter)) { actionContext.ModelState.AddModelError(validateParameter, "userRatings is null or empty"); } if (actionContext.ActionArguments.ContainsKey(validateParameter)) { //Cast input to model type to validate username property UserRatingsModel model = actionContext.ActionArguments[validateParameter] as UserRatingsModel; if (!RegexUtilities.IsValidEmail(model.Username)) { actionContext.ModelState.AddModelError("userRatings.Username", string.Format("Username must be a valid email. {0} is not a valid email.", model.Username)); } } }