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)); }
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(); }
private async void ChoreChecked(object sender, TappedRoutedEventArgs e) { Chore selectedItem = (Chore)((CheckBox)sender).DataContext; if (selectedItem != null) { await TripDetailViewModel.UpdateChore(selectedItem); } }
private void AddChore(object sender, TappedRoutedEventArgs e) { if (!string.IsNullOrWhiteSpace(AddChoreName.Text)) { TripDetailViewModel.AddChore(new Chore { Name = AddChoreName.Text }); } AddChoreName.Text = string.Empty; }
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 }); }
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(); } } }
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); } }; }
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; }
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)); }
public TripDetailPage(TripModel trip) { InitializeComponent(); BindingContext = new TripDetailViewModel(trip); }
public TripDetailPage(TripDetailViewModel viewModel) { InitializeComponent(); BindingContext = _viewModel = viewModel; }
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); } }
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); } }