Esempio n. 1
0
        public async Task <ActionResult> Edit(Models.Request.RequestVMOwner requestVM)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    TravelerProfile tp = await ProfileManager.LoadUserAndTravelerProfile(User);

                    using (var db = new ApplicationDbContext())
                    {
                        var trackedRequest = await db.Requests.FindAsync(requestVM.ID);

                        trackedRequest.Accommodation = await db.Accommodations.FindAsync(trackedRequest.Accommodation_ID);

                        trackedRequest.Accommodation.AccomProfile = await db.AccommProfile.FindAsync(trackedRequest.Accommodation.AccomProfileID);

                        Models.Request.Request update = trackedRequest;
                        update.SetValues(requestVM);

                        db.Entry(trackedRequest).CurrentValues.SetValues(update);
                        await db.SaveChangesAsync();

                        NotificationManager.AddNotification(NotificationType.Success, "Your request has been updated succesfully");
                        return(RedirectToAction("Index"));
                    }
                }
                catch (Exception e)
                {
                    NotificationManager.AddException(e);
                    NotificationManager.AddNotification(NotificationType.Error, "Oops, something went wrong!");
                    return(View(requestVM));
                }
            }
            return(View(requestVM));
        }