public async Task <IHttpActionResult> Rate(RateUserBindingModel rating) { ClaimsPrincipal principal = this.User as ClaimsPrincipal; if (null == principal) { return(StatusCode(System.Net.HttpStatusCode.Unauthorized)); } RatingManager.RegisterRating( principal.Identities.First().GetUserId(), rating.AffiliateId, rating.Rating); return(StatusCode(System.Net.HttpStatusCode.Created)); }
public async Task <IHttpActionResult> RateUser(RateUserBindingModel model) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } using (RiscoContext ctx = new RiscoContext()) { var user = ctx.Users.FirstOrDefault(x => x.Id == model.UserId); var deliverer = ctx.DeliveryMen.FirstOrDefault(x => x.Id == model.Deliverer_Id); if (user == null) { return(Ok(new CustomResponse <Error> { Message = Global.ResponseMessages.NotFound, StatusCode = (int)HttpStatusCode.NotFound, Result = new Error { ErrorMessage = "UserId is invalid" } })); } else if (deliverer == null) { return(Ok(new CustomResponse <Error> { Message = Global.ResponseMessages.NotFound, StatusCode = (int)HttpStatusCode.NotFound, Result = new Error { ErrorMessage = "Deliverer_Id is invalid" } })); } if (model.SignInType == (int)RoleTypes.User) { //User is going to rate the deliverer deliverer.DeliveryManRatings.Add(new DeliveryManRatings { Deliverer_Id = deliverer.Id, User_ID = user.Id, Rating = model.Rating, Description = model.Feedback }); } else if (model.SignInType == (int)RoleTypes.Deliverer) { //Deliverer is going to rate the user user.UserRatings.Add(new UserRatings { User_ID = user.Id, Deliverer_Id = deliverer.Id, Rating = model.Rating, Description = model.Feedback }); } else { return(Ok(new CustomResponse <Error> { Message = Global.ResponseMessages.NotFound, StatusCode = (int)HttpStatusCode.NotFound, Result = new Error { ErrorMessage = "Invalid SignInType" } })); } ctx.SaveChanges(); return(Ok(new CustomResponse <string> { Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK })); } } catch (Exception ex) { return(StatusCode(Utility.LogError(ex))); } }