Ejemplo n.º 1
0
        public async Task getDelete_Guest_Documents(int ImageID)
        {
          FileUploadManager fileuploader = new FileUploadManager(_Document_TypeRepository, _Guest_DocumentsRepository);

           await fileuploader.DeleteFile(ImageID);

           }
          public async Task<ActionResult> manage( RoomReservationViewModel model)
          {

              if (!ModelState.IsValid)
              {
                  var errors = ModelState.Where(a => a.Value.Errors.Count > 0);
                  await GetTypes(model);
                  return View(model);
              }
              // Save data

              //Add/Edit Guest data, 
              try{
                  if (model.RoomReservation.BookingForId ==(int) BookingFor.Guest)
                  { model.RoomReservation.GuestID =await Create_or_Update_Guest(model.Guest);
                  IFileUploadManager fileuploader = new FileUploadManager(_Document_TypeRepository, _Guest_DocumentsRepository );
                  fileuploader.GuestID = model.RoomReservation.GuestID;
                  await  fileuploader.UploadWholeFiles(model.Guest_DocumentsViewModel, System.Web.HttpContext.Current);

                  model.Guest_DocumentsViewModel.init_InputDocs();
                  
                  }




              model.RoomReservation.Rooms = model.RoomReservation_RoomDetailsViewDetailList.Count();
              
              model.RoomReservation.Id =await Create_Or_Update_RoomReservation(model.RoomReservation );
              //Add room reservation 
              DateTime?  RoomReservation_StatusDate= await Create_or_UpdateRoomStatus(model.RoomReservation_StatusViewModelList, model.RoomReservation.ReservationStatusTypeId, model.RoomReservation.Id);

              //Add room detail, 
              await Create_or_Update_RoomDetail(model.RoomReservation.Id, model.RoomReservation_RoomDetailsViewDetailList, model.RoomReservation.ReservationStatusTypeId, model.RoomReservation.Arrival_Date, model.RoomReservation.Departure_Date, RoomReservation_StatusDate);

             

              await  Create_or_Update_RoomFacilities(model.RoomReservation.Id, model.RoomReservation_FacilitiesViewModelList);
             

               

              //payment info in database
              model.RoomReservation_Payment.Total = model.Reservation_Total;


           await   Create_or_Update_RoomPayment(model.RoomReservation.Id, model.RoomReservation_Payment);

             


              return RedirectToAction("index");

               }

           
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        ModelState.AddModelError(ve.PropertyName, string.Format ("- Property: \"{0}\", Error: \"{1}\"",
                            ve.PropertyName, ve.ErrorMessage));

                         
                    }
                }
                
            }
            catch (Exception exp)
              {
                  ModelState.AddModelError("Error", string.Format("- Error:   \"{0}\"",
                      exp.Message +((exp.InnerException != null)? " Inner Exception :"+ exp.InnerException.Message :"")) +"\nStack:" +exp.StackTrace);
              }

              await GetTypes(model);
               
              return View(model);
          }