Esempio n. 1
0
        public HttpResponseMessage Cancel(int id, [FromBody] Options options)
        {
            try
            {
                var foundRide = jsonParser.ReadRides().Where(r => r.ID == id).First();
                var foundUser = jsonParser.ReadUsers().Where(u => u.Username.Equals(foundRide.RideCustomer.Username)).First();

                foundRide.StatusOfRide            = RideStatuses.CANCELED.ToString();
                foundRide.RideComment             = new Comment();
                foundRide.RideComment.CommentRide = new Ride();
                foundRide.RideComment.CommentRide = foundRide;
                foundRide.RideComment.DateAndTime = DateTime.Now;
                foundRide.RideComment.Description = options.Comment;

                switch (options.RideMark)
                {
                case 1: foundRide.RideComment.RideMark = RideMarks.ONE; break;

                case 2: foundRide.RideComment.RideMark = RideMarks.TWO; break;

                case 3: foundRide.RideComment.RideMark = RideMarks.THREE; break;

                case 4: foundRide.RideComment.RideMark = RideMarks.FOUR; break;

                case 5: foundRide.RideComment.RideMark = RideMarks.FIVE; break;

                default: foundRide.RideComment.RideMark = RideMarks.ZERO; break;
                }

                foundRide.RideComment.CommentUser = foundUser;

                jsonParser.EditRide(id, foundRide);

                jsonParser.DeleteRideFromUser(foundUser, foundRide);

                return(Request.CreateResponse(HttpStatusCode.OK, $"Ride {id} is cancelled."));
            }
            catch (Exception)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, $"Ride {id} was not cancelled."));
            }
        }