コード例 #1
0
        public ActionResult CancelReservation(long reservationID)
        {
            if (!Request.IsAuthenticated)
            {
                return(RedirectToAction("Login", "Account"));
            }
            else
            {
                if (ModelState.IsValid)
                {
                    //send a request on the main server and await for the response
                    DTOHelper dtoHlp = new DTOHelper();
                    MyRemoteServices.AgentEndpointPortClient   aepc       = new MyRemoteServices.AgentEndpointPortClient();
                    MyRemoteServices.cancelReservationRequest  crRequest  = dtoHlp.GetCancelReservationRequest(reservationID, ReservationStatus.CANCELED);
                    MyRemoteServices.cancelReservationResponse crResponse = aepc.cancelReservation(crRequest);

                    if (crResponse.responseWrapper.success)
                    {
                        //save localy
                        using (var ctx = new ApplicationDbContext())
                        {
                            Reservation res = ctx.Reservations.FirstOrDefault(x => x.Id == reservationID);
                            res.ReservationStatus = ReservationStatus.CANCELED;
                            ctx.SaveChanges();
                        }
                    }
                    else
                    {
                        //some error happened, retry
                        TempData["error"] = crResponse.responseWrapper.message;
                        return(RedirectToAction("MyReservations", "Agent"));
                    }

                    TempData["success"] = "Successfully cancelled the reservation";
                    return(RedirectToAction("MyReservations", "Agent"));
                }
                else
                {
                    //invalid VM exception
                    TempData["error"] = "Some form atributes are incorrect";
                    return(RedirectToAction("MyReservations", "Agent"));
                }
            }
        }