private void ArrangementListView_ItemSelected(object sender, SelectedItemChangedEventArgs e) { ListView lv = sender as ListView; if (lv == null || lv.SelectedItem == null) { return; } GetSimpleArrangementResponse item = lv.SelectedItem as GetSimpleArrangementResponse; //call GetArrangementsById() and populate form ((App)App.Current).GetArrangement(item.Arrangement.ArrangementId).ContinueWith(a => SelectedArrangementLoaded(lv, item, a.Result)); }
private void SelectedArrangementLoaded(ListView lv, GetSimpleArrangementResponse item, GetArrangementResponse response) { Device.BeginInvokeOnMainThread(() => { Name.Text = response.Arrangement.ArrangementName; Location.Text = response.Arrangement.LocationName; SetPickerSelection(Designer, item.Arrangement.DesignerName); //fix these next 2 Style.SelectedIndex = item.Arrangement._180or360 - 1; Container.SelectedIndex = item.Arrangement.Container - 1; //if this is a customer container, there may be a string "label" value //this won't be used in a "save arrangement" scenario, but would be a factor possibly //when this page is used to create an arrangement "on the fly" for a work order //where the arrangement in question uses a customer's container AND //that container has a "label" value. //CustomerContainerLabelEntry.Text = item.Arrangement.CustomerContainerLabel; arrangementList.Add(item); arrangementInventoryList = response.ArrangementList; //arrangementInventoryListOC.Clear(); foreach (ArrangementInventoryItemDTO a in arrangementInventoryList) { //arrangementInventoryListOC.Add(a); } //ArrangementItemsListView.ItemsSource = arrangementInventoryListOC; lv.SelectedItem = null; TabParent.LoadArrangmentImages(response.Images); }); }
public void OnSaveArrangementsClicked(object sender, EventArgs e) { try { string validationMessage = String.Empty; long arrangementId = 0; //(long)((Button)sender).CommandParameter; if (!ValidateArrangement(ref validationMessage)) { DisplayAlert("Error", validationMessage, "Cancel"); return; } if (TabParent.ForWorkOrder) { //get quantities from ArrangementItemsListView ItemsSource AddArrangementRequest request = new AddArrangementRequest(); request.Arrangement = new ArrangementDTO(); request.Arrangement.ArrangementId = TabParent.CurrentArrangement != null ? TabParent.CurrentArrangement.Arrangement.ArrangementId : 0; request.Arrangement.ArrangementName = Name.Text; request.Arrangement.DesignerName = Designer.SelectedItem != null ? ((KeyValuePair <long, string>)Designer.SelectedItem).Value : String.Empty; request.Arrangement._180or360 = Style.SelectedItem != null ? (int)((KeyValuePair <long, string>)Style.SelectedItem).Key : 1; request.Arrangement.Container = Container.SelectedItem != null ? (int)((KeyValuePair <long, string>)Style.SelectedItem).Key : 1; //1 = new container (db default) request.Arrangement.CustomerContainerId = customerContainerId; request.Arrangement.LocationName = Location.Text; request.Arrangement.UpdateDate = DateTime.Now; request.Arrangement.IsGift = GiftCheckBox.IsChecked ? 1 : 0; request.Arrangement.GiftMessage = GiftMessage.Text; Random r = new Random(); long tempArrangementId = r.Next(1, 100); foreach (ArrangementInventoryItemDTO dto in arrangementInventoryList) { if (dto.ArrangementId != 0) { arrangementId = dto.ArrangementId; break; } WorkOrderViewModel wovm = null; if (((ObservableCollection <WorkOrderViewModel>)ArrangementItemsListView.ItemsSource).Where(a => a.InventoryId == dto.InventoryId).Any()) { wovm = ((ObservableCollection <WorkOrderViewModel>)ArrangementItemsListView.ItemsSource).Where(a => a.InventoryId == dto.InventoryId).First(); dto.Quantity = wovm.Quantity; } } request.ArrangementInventory = arrangementInventoryList; foreach (NotInInventoryDTO dto in notInInventoryList) { //group them for the work order if (!dto.ArrangementId.HasValue || dto.ArrangementId == 0) { dto.ArrangementId = tempArrangementId; } WorkOrderViewModel wovm = null; if (((ObservableCollection <WorkOrderViewModel>)ArrangementItemsListView.ItemsSource).Where(a => a.NotInInventoryId == dto.NotInInventoryId).Any()) { wovm = ((ObservableCollection <WorkOrderViewModel>)ArrangementItemsListView.ItemsSource).Where(a => a.NotInInventoryId == dto.NotInInventoryId).First(); dto.NotInInventoryQuantity = wovm.Quantity; } } request.NotInInventory = notInInventoryList; request.Inventory = new InventoryDTO() { InventoryName = String.IsNullOrEmpty(Name.Text) ? "Arrangement_" + Convert.ToString(tempArrangementId) : Name.Text, InventoryTypeId = 5, ServiceCodeId = 365, NotifyWhenLowAmount = 0, Quantity = 1 }; MessagingCenter.Send <AddArrangementRequest>(request, "AddArrangementToWorkOrder"); if (!PopToPage("TabbedWorkOrderPage")) { Navigation.PopAsync(); } return; } if (arrangementInventoryList.Count > 0) { foreach (ArrangementInventoryItemDTO dto in arrangementInventoryList) { if (dto.ArrangementId != 0) { arrangementId = dto.ArrangementId; break; } WorkOrderViewModel wovm = null; if (((ObservableCollection <WorkOrderViewModel>)ArrangementItemsListView.ItemsSource).Where(a => a.InventoryId == dto.InventoryId).Any()) { dto.Quantity = wovm.Quantity; } } if (arrangementId == 0) { AddArrangementRequest request = new AddArrangementRequest(); request.Arrangement = new ArrangementDTO(); request.Arrangement.ArrangementName = Name.Text; request.Arrangement._180or360 = (int)((KeyValuePair <long, string>)Style.SelectedItem).Key; request.Arrangement.Container = (int)((KeyValuePair <long, string>)Container.SelectedItem).Key; request.Arrangement.CustomerContainerId = null; request.Arrangement.DesignerName = ((KeyValuePair <long, string>)Designer.SelectedItem).Value; request.Arrangement.LocationName = Location.Text; request.Arrangement.IsGift = GiftCheckBox.IsChecked ? 1 : 0; request.Arrangement.GiftMessage = GiftMessage.Text; request.Arrangement.UpdateDate = DateTime.Now; request.ArrangementInventory = arrangementInventoryList.Where(a => a.InventoryId != 0).ToList(); // "Not In Inventory" items may have been added to the display list; request.Inventory = new InventoryDTO() { InventoryName = Name.Text, InventoryTypeId = 5, }; request.NotInInventory = notInInventoryList; request.ArrangementInventory = arrangementInventoryList.Where(a => a.InventoryId != 0).ToList(); arrangementId = ((App)App.Current).AddArrangement(request); if (arrangementId > 0) { List <EOImgData> imageData = ((App)App.Current).GetImageData(); if (imageData.Count > 0) { foreach (EOImgData img in imageData) { AddArrangementImageRequest imgRequest = new AddArrangementImageRequest() { ArrangementId = arrangementId, Image = img.imgData }; ((App)App.Current).AddArrangementImage(imgRequest); } } DisplayAlert("Success", "New arrangement saved!", "OK"); ClearArrangements(); } else { DisplayAlert("Error", "Problem saving arrangement", "OK"); } } else { GetSimpleArrangementResponse simpleArrangement = arrangementList.Where(a => a.Arrangement.ArrangementId == arrangementId).FirstOrDefault(); AddArrangementRequest request = new AddArrangementRequest(); request.Arrangement = new ArrangementDTO(); request.Arrangement.ArrangementId = arrangementId; request.Arrangement.ArrangementName = Name.Text; request.Arrangement._180or360 = (int)((KeyValuePair <long, string>)Style.SelectedItem).Key; request.Arrangement.Container = (int)((KeyValuePair <long, string>)Container.SelectedItem).Key; request.Arrangement.CustomerContainerId = null; request.Arrangement.DesignerName = ((KeyValuePair <long, string>)Designer.SelectedItem).Value; request.Arrangement.LocationName = Location.Text; request.Arrangement.UpdateDate = DateTime.Now; request.Arrangement.IsGift = GiftCheckBox.IsChecked ? 1 : 0; request.Arrangement.GiftMessage = GiftMessage.Text; request.Inventory = simpleArrangement.Inventory; request.ArrangementInventory = arrangementInventoryList; request.NotInInventory = notInInventoryList; arrangementId = ((App)App.Current).UpdateArrangement(request); if (arrangementId == request.Arrangement.ArrangementId) { //only saves new images List <EOImgData> imageData = ((App)App.Current).GetImageData(); if (imageData.Count > 0) { foreach (EOImgData img in imageData) { AddArrangementImageRequest imgRequest = new AddArrangementImageRequest() { ArrangementId = arrangementId, Image = img.imgData }; ((App)App.Current).AddArrangementImage(imgRequest); } } DisplayAlert("Success", "Arrangement updated!", "OK"); ClearArrangements(); } else { DisplayAlert("Error", "Problem updating arrangement", "OK"); } } } } catch (Exception ex) { } }