Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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)));
            }
        }