Exemple #1
0
        public async Task <IActionResult> Edit(int id, TripDetailViewModel tripDetailViewModel)
        {
            if (id != tripDetailViewModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var path = tripDetailViewModel.AttachmentPath;
                    if (tripDetailViewModel.VoucherFile != null)
                    {
                        path = await _imageHelper.UploadImageAsync(tripDetailViewModel.VoucherFile, "Vouchers");
                    }

                    _context.Update(_converterHelper.ToTripDetailEntity(tripDetailViewModel, path, false));
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TripDetailEntityExists(tripDetailViewModel.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(tripDetailViewModel));
        }
Exemple #2
0
 private async Task <ContentDialogResult> ShowDeleteContentDialog(string name)
 {
     return(await TripDetailViewModel.ShowContentDialog(
                ResourceLoader.GetString("DeleteContentDialogTitle"),
                string.Format(ResourceLoader.GetString("DeleteContentDialogContent"), name),
                ResourceLoader.GetString("DeleteContentDialogPrimaryButton"),
                ResourceLoader.GetString("DeleteContentDialogCloseButton")));
 }
        public TripDetailPage()
        {
            this.InitializeComponent();
            _detailVM        = new TripDetailViewModel();
            this.DataContext = _detailVM;

            SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
            SystemNavigationManager.GetForCurrentView().BackRequested += (object sender, BackRequestedEventArgs e) => this.NavigateToTripList();
        }
Exemple #4
0
        private async void ChoreChecked(object sender, TappedRoutedEventArgs e)
        {
            Chore selectedItem = (Chore)((CheckBox)sender).DataContext;

            if (selectedItem != null)
            {
                await TripDetailViewModel.UpdateChore(selectedItem);
            }
        }
Exemple #5
0
 private void AddChore(object sender, TappedRoutedEventArgs e)
 {
     if (!string.IsNullOrWhiteSpace(AddChoreName.Text))
     {
         TripDetailViewModel.AddChore(new Chore {
             Name = AddChoreName.Text
         });
     }
     AddChoreName.Text = string.Empty;
 }
Exemple #6
0
        private async void Delete(string option, MenuFlyoutItem sender)
        {
            switch (option)
            {
            case "Category":
                var deleteCategory = (Category)sender.DataContext;
                if (deleteCategory != null)
                {
                    if (await ShowDeleteContentDialog(deleteCategory.Name) == ContentDialogResult.Primary)
                    {
                        if (await TripDetailViewModel.DeleteCategory(deleteCategory.CategoryId))
                        {
                            TripDetailViewModel.Trip.Categories.Remove(deleteCategory);
                        }
                    }
                }
                break;

            case "Item":
                var deleteItem = (Item)sender.DataContext;
                if (deleteItem != null)
                {
                    if (await ShowDeleteContentDialog(deleteItem.Name) == ContentDialogResult.Primary)
                    {
                        if (await TripDetailViewModel.DeleteItem(deleteItem.CategoryId, deleteItem.Id))
                        {
                            TripDetailViewModel.Trip.Categories.SingleOrDefault(c => c.CategoryId == deleteItem.CategoryId).Items.Remove(deleteItem);
                            foreach (Category c in TripDetailViewModel.Trip.Categories)
                            {
                                c.UpdateItemsAdded();
                            }
                        }
                    }
                }
                break;

            case "Chore":
                var deleteChore = (Chore)sender.DataContext;
                if (deleteChore != null)
                {
                    if (await ShowDeleteContentDialog(deleteChore.Name) == ContentDialogResult.Primary)
                    {
                        if (await TripDetailViewModel.DeleteChore(deleteChore.Id))
                        {
                            TripDetailViewModel.Trip.Chores.Remove(deleteChore);
                        }
                    }
                }
                break;

            default: break;
            }
        }
        public TripDetailPage()
        {
            InitializeComponent();

            var trip = new Trip
            {
                Text        = "Item 1",
                Description = "This is an item description."
            };

            viewModel      = new TripDetailViewModel(trip);
            BindingContext = viewModel;
        }
 public TripDetailEntity ToTripDetailEntity(TripDetailViewModel model, string path, bool isNew)
 {
     return(new TripDetailEntity
     {
         Id = isNew ? 0 : model.Id,
         Expense = model.Expense,
         ExpenseType = model.ExpenseType,
         Currency = model.Currency,
         Comment = model.Comment,
         Date = model.Date.ToUniversalTime(),
         AttachmentPath = path,
         Name = model.Name
     });
 }
Exemple #9
0
        private async void ItemChecked(object sender, TappedRoutedEventArgs e)
        {
            Item selectedItem = (Item)((CheckBox)sender).DataContext;

            if (selectedItem != null)
            {
                await TripDetailViewModel.UpdateItem(selectedItem);

                foreach (Category c in TripDetailViewModel.Trip.Categories)
                {
                    c.UpdateItemsAdded();
                }
            }
        }
Exemple #10
0
        public TripDetailsPage()
        {
            this.InitializeComponent();
            ViewModel   = new TripDetailViewModel();
            DataContext = ViewModel;


            ViewModel.PropertyChanged += (sender, e) =>
            {
                if (e.PropertyName.Equals("Trip") && ViewModel.Trip != null)
                {
                    AddRouteChildView.SetTrip(ViewModel.Trip);
                }
            };
        }
Exemple #11
0
        private void AddItem(object sender, TappedRoutedEventArgs e)
        {
            int categoryId = ((Category)((Button)sender).DataContext).CategoryId;
            var name       = (TextBox)((Grid)((Button)sender).Parent).Children[0];
            var amount     = (TextBox)((Grid)((Button)sender).Parent).Children[1];

            if (!string.IsNullOrWhiteSpace(name.Text) && !string.IsNullOrWhiteSpace(amount.Text))
            {
                if (int.TryParse(amount.Text, out int itemAmount))
                {
                    TripDetailViewModel.AddItem(new Item {
                        CategoryId = categoryId, Name = name.Text, Amount = itemAmount, Added = false
                    }, categoryId);
                }
            }
            name.Text   = string.Empty;
            amount.Text = string.Empty;
        }
Exemple #12
0
        public async Task <IActionResult> Create(TripDetailViewModel tripDetailViewModel)
        {
            if (ModelState.IsValid)
            {
                var path = string.Empty;

                if (tripDetailViewModel.VoucherFile != null)
                {
                    path = await _imageHelper.UploadImageAsync(tripDetailViewModel.VoucherFile, "Vouchers");
                }


                _context.Add(_converterHelper.ToTripDetailEntity(tripDetailViewModel, path, true));
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(tripDetailViewModel));
        }
Exemple #13
0
        public TripDetailPage(TripModel trip)
        {
            InitializeComponent();

            BindingContext = new TripDetailViewModel(trip);
        }
Exemple #14
0
        public TripDetailPage(TripDetailViewModel viewModel)
        {
            InitializeComponent();

            BindingContext = _viewModel = viewModel;
        }
Exemple #15
0
        public static TripViewModel GetShareSchedule(int?tripID)
        {
            using (var db = new TravelEntities())
            {
                TripViewModel trip     = new TripViewModel();
                T_Schedule    schedule = db.T_Schedule.Where(a => a.ScheduleID == tripID).FirstOrDefault();
                trip.CustomerName  = schedule.CustomerName;
                trip.VisitDate     = schedule.VisitDate;
                trip.ScheduleName  = schedule.ScheduleName;
                trip.CustomRequire = schedule.CustomRequire;
                trip.Fee           = schedule.Fee;
                trip.CustomerCount = schedule.CustomerCount;
                trip.Remark        = schedule.Remark;

                List <T_ScheduleDetail> details = db.T_ScheduleDetail.Where(a => a.ScheduleID == tripID).ToList();
                List <int> projectIDs           = new List <int>();
                List <int> hotelIDs             = new List <int>();
                foreach (T_ScheduleDetail detail in details)
                {
                    if (detail.ProjectList == null || detail.ProjectList.Equals(string.Empty))
                    {
                        continue;
                    }
                    List <DetailProject> detailProjects = Common.AppUtils.JsonDeserialize <List <DetailProject> >(detail.ProjectList);
                    foreach (DetailProject detailProject in detailProjects)
                    {
                        if (detailProject.TypeID == WebConst.HOTEL_TYPE)
                        {
                            if (!hotelIDs.Contains(detailProject.ProjectID))
                            {
                                hotelIDs.Add(detailProject.ProjectID);
                            }
                        }
                        else
                        {
                            if (!projectIDs.Contains(detailProject.ProjectID))
                            {
                                projectIDs.Add(detailProject.ProjectID);
                            }
                        }
                    }
                }
                //筛选所有在列表中的项目
                List <ServiceDetailViewModel> projectDetail = (from service in db.T_TravelProjects
                                                               where projectIDs.Contains(service.ProjectID)
                                                               select new ServiceDetailViewModel
                {
                    ServiceID = service.ProjectID,
                    ServiceName = service.ProjectName,
                    CoverPic = service.CoverPic,
                    Description = service.Description,
                }).ToList();
                List <ServiceDetailViewModel> hotelDetail = (from hotel in db.T_LiveProjects
                                                             where hotelIDs.Contains(hotel.HouseID)
                                                             select new ServiceDetailViewModel
                {
                    ServiceID = hotel.HouseID,
                    ServiceName = hotel.HouseName,
                    CoverPic = hotel.CoverPic,
                    Description = hotel.Description,
                    Pics = hotel.Pics,
                }).ToList();
                List <ServiceDetailViewModel> serviceDetail = new List <ServiceDetailViewModel>();
                serviceDetail.AddRange(projectDetail);
                serviceDetail.AddRange(hotelDetail);
                //组织一个列表seq、desc、List<Project>
                List <TripDetailViewModel> tripDetails = new List <TripDetailViewModel>();
                foreach (T_ScheduleDetail detail in details)
                {
                    TripDetailViewModel tripDetail = new TripDetailViewModel
                    {
                        Seq         = detail.Seq,
                        Description = detail.Description
                    };
                    if (detail.ProjectList != null && !detail.ProjectList.Equals(string.Empty))
                    {
                        List <DetailProject>          detailProjects = Common.AppUtils.JsonDeserialize <List <DetailProject> >(detail.ProjectList);
                        List <ServiceDetailViewModel> dayServices    = new List <ServiceDetailViewModel>();
                        foreach (DetailProject detailProject in detailProjects)
                        {
                            ServiceDetailViewModel service         = serviceDetail.Where(a => a.ServiceID == detailProject.ProjectID).FirstOrDefault();
                            ServiceDetailViewModel display_service = new ServiceDetailViewModel
                            {
                                Start       = detailProject.Start,
                                End         = detailProject.End,
                                ServiceName = service.ServiceName,
                                Description = service.Description,
                                CoverPic    = service.CoverPic,
                                Pics        = service.Pics
                            };
                            dayServices.Add(display_service);
                        }
                        tripDetail.Services = dayServices;
                    }
                    else
                    {
                        tripDetail.Services = new List <ServiceDetailViewModel>();
                    }
                    tripDetails.Add(tripDetail);
                }

                trip.ScheduleDetail = tripDetails;
                return(trip);
            }
        }
Exemple #16
0
        public static IList <TripDetailViewModel> GetScheduleDetail(int?tripID)
        {
            using (var db = new TravelEntities())
            {
                List <T_ScheduleDetail> details    = db.T_ScheduleDetail.Where(a => a.ScheduleID == tripID).ToList();
                List <string>           projectIDs = new List <string>();
                List <string>           hotelIDs   = new List <string>();
                foreach (T_ScheduleDetail detail in details)
                {
                    if (detail.ProjectList == null || Convert.ToString(detail.ProjectList).Equals(string.Empty))
                    {
                        continue;
                    }
                    List <DetailProject> detailProjects = Common.AppUtils.JsonDeserialize <List <DetailProject> >(detail.ProjectList);
                    foreach (DetailProject detailProject in detailProjects)
                    {
                        if (detailProject.TypeID == WebConst.HOTEL_TYPE)
                        {
                            if (!hotelIDs.Contains(detailProject.ProjectID.ToString()))
                            {
                                hotelIDs.Add(detailProject.ProjectID.ToString());
                            }
                        }
                        else
                        {
                            if (!projectIDs.Contains(detailProject.ProjectID.ToString()))
                            {
                                projectIDs.Add(detailProject.ProjectID.ToString());
                            }
                        }
                    }
                }
                //筛选所有在列表中的项目
                List <ServiceDetailViewModel> projectDetail = (from service in db.T_TravelProjects
                                                               where projectIDs.Contains(service.ProjectID.ToString())
                                                               select new ServiceDetailViewModel
                {
                    ServiceID = service.ProjectID,
                    ServiceName = service.ProjectName,
                    ProjectTypeName = service.ProjectTypeID.ToString()
                }).ToList();
                List <ServiceDetailViewModel> hotelDetail = (from hotel in db.T_LiveProjects
                                                             where hotelIDs.Contains(hotel.HouseID.ToString())
                                                             select new ServiceDetailViewModel
                {
                    ServiceID = hotel.HouseID,
                    ServiceName = hotel.HouseName,
                    ProjectTypeName = WebConst.HOTEL_TYPE.ToString()
                }).ToList();
                List <ServiceDetailViewModel> serviceDetail = new List <ServiceDetailViewModel>();
                serviceDetail.AddRange(projectDetail);
                serviceDetail.AddRange(hotelDetail);
                //组织一个列表seq、desc、List<Project>
                List <TripDetailViewModel> tripDetails = new List <TripDetailViewModel>();
                foreach (T_ScheduleDetail detail in details)
                {
                    TripDetailViewModel tripDetail = new TripDetailViewModel
                    {
                        Seq         = detail.Seq,
                        Description = detail.Description
                    };
                    if (detail.ProjectList != null && !detail.ProjectList.Equals(string.Empty))
                    {
                        List <DetailProject>          detailProjects = Common.AppUtils.JsonDeserialize <List <DetailProject> >(detail.ProjectList);
                        List <ServiceDetailViewModel> services       = new List <ServiceDetailViewModel>();
                        foreach (DetailProject detailProject in detailProjects)
                        {
                            ServiceDetailViewModel service         = serviceDetail.Where(a => a.ServiceID == detailProject.ProjectID).FirstOrDefault();
                            ServiceDetailViewModel display_service = new ServiceDetailViewModel
                            {
                                Start           = detailProject.Start,
                                End             = detailProject.End,
                                ServiceID       = service.ServiceID,
                                ServiceName     = service.ServiceName,
                                ProjectTypeName = service.ProjectTypeName
                            };
                            services.Add(display_service);
                        }
                        tripDetail.Services = services;
                    }
                    else
                    {
                        tripDetail.Services = new List <ServiceDetailViewModel>();
                    }
                    tripDetails.Add(tripDetail);
                }

                return(tripDetails);
            }
        }