private void RaiseLanguageRemoveInteractionRequest(GeneralLanguage selectedItem) { var confirmation = new ConditionalConfirmation { Title = "Remove confirmation".Localize(null, LocalizationScope.DefaultCategory), Content = string.Format("Are you sure you want to remove Language '{0}'?".Localize(), selectedItem.LanguageCode) }; LanguageCommonConfirmRequest.Raise(confirmation, (x) => { if (x.Confirmed) { if (AddedItems.Contains(selectedItem)) { AddedItems.Remove(selectedItem); } else { if (UpdatedItems.Contains(selectedItem)) { UpdatedItems.Remove(selectedItem); } RemovedItems.Add(selectedItem); } InnerItems.Remove(selectedItem); } }); }
private void CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { if (e.NewItems != null) { if (AddedItems == null) { AddedItems = new List <object>(e.NewItems.Count); } foreach (var item in e.NewItems) { AddedItems.Add(item); } } if (e.OldItems != null) { if (RemovedItems == null) { RemovedItems = new List <object>(e.OldItems.Count); } foreach (var item in e.OldItems) { RemovedItems.Add(item); } } }
internal override void Update(Change change) { var _change = change as ListPropertyChange; var newAddList = new List<object>(AddedItems.Except(_change.RemovedItems).Concat(_change.AddedItems.Except(RemovedItems).Except(AddedItems))); var newRemoveList = new List<object>(RemovedItems.Except(_change.AddedItems).Concat(_change.RemovedItems.Except(AddedItems).Except(RemovedItems))); AddedItems = newAddList; RemovedItems = newRemoveList; }
public void CommitChanges() { RemovedItems.Clear(); UpdatedItems.Clear(); AddedItems.Clear(); OriginalItems.Clear(); OriginalItems.AddRange(InnerItems); }
public async Task <string> Save(int processId, int placeId) { string res = "OK"; if (res == "OK") { List <Task <string> > SaveTasks = new List <Task <string> >(); foreach (PartUsage pu in Items) { pu.ProcessId = processId; pu.PlaceId = placeId; if (pu.PartUsageId == 0) { pu.CreatedBy = RuntimeSettings.CurrentUser.UserId; SaveTasks.Add(pu.Add()); } else { //if (!pu.IsSaved) //{ SaveTasks.Add(pu.Edit()); //} } } if (RemovedItems.Any()) { foreach (PartUsage pu in RemovedItems) { SaveTasks.Add(pu.Remove()); } } IEnumerable <string> results = await Task.WhenAll <string>(SaveTasks); for (int i = RemovedItems.Count; i > 0; i--) { if (RemovedItems[i - 1].IsSaved) { RemovedItems.Remove(RemovedItems[i - 1]); } } Task.Run(() => TakeSnapshot()); if (results.Where(r => r != "OK").Any()) { return(string.Join("; ", results.Where(r => r != "OK"))); } else { return("OK"); } } return(res); }
/// <summary> /// Rebuild the binding chain to establish property change monitoring, /// additionally setting up collection change event listening on the /// source object (if it is a collection) /// </summary> public override void RefreshBinding() { base.RefreshBinding(); object newValue = GetBoundValue(); if (newValue != _Collection) { // Remove collectionchanged event watcher: if (_Collection != null) { _Collection.CollectionChanged -= CollectionChanged; if (_Collection is IEnumerable) { // Remove items from the old collection: var enumerable = (IEnumerable)_Collection; if (RemovedItems == null) { RemovedItems = new List <object>(); } foreach (var item in enumerable) { RemovedItems.Add(item); } } } // Add collectionchanged event watcher: if (newValue != null && newValue is INotifyCollectionChanged) { var newCollection = (INotifyCollectionChanged)newValue; newCollection.CollectionChanged += CollectionChanged; _Collection = newCollection; if (newCollection is IEnumerable) { // Add items from the new collection: var enumerable = (IEnumerable)newCollection; if (AddedItems == null) { AddedItems = new List <object>(); } foreach (var item in enumerable) { AddedItems.Add(item); } } } else { _Collection = null; } } }
/// <inheritdoc/> public async Task CommitAsync() { foreach (var item in Items) { await DeliverEntityEventsAsync(item); } foreach (var item in RemovedItems) { await DeliverEntityEventsAsync(item); } FireCommittedEvent(); RemovedItems.Clear(); }
private void InitializeListBox(int?index = null) { _haltEvents = true; listBox1.Items.Clear(); foreach (ItemPricingModel price in ExistingItems) { if (RemovedItems.Contains(price)) { continue; } AddItemPricingToListBox(price); } foreach (ItemPricingModel price in NewItems) { AddItemPricingToListBox(price); } if (listBox1.Items.Count > 0) { FormattedListBoxItem item = listBox1.Items[0] as FormattedListBoxItem; if (index.HasValue) { if (index.Value >= listBox1.Items.Count) { item = (FormattedListBoxItem)listBox1.Items[listBox1.Items.Count - 1]; } else { item = (FormattedListBoxItem)listBox1.Items[index.Value]; } } listBox1.SelectedItem = item; if (item != null) { item.IsSelected = true; InitializeFields((ItemPricingModel)item.ReferenceObject); } buttonRemove.IsEnabled = true; SetReadOnly(false); } else { ClearFields(); buttonRemove.IsEnabled = false; SetReadOnly(true); } _haltEvents = false; }
private async Task RemoveItems() { if (SelectedItems.Count > 0) { for (int i = SelectedItems.Count; i > 0; i--) { if (SelectedItems[i - 1].FileId > 0) { //if saved, add it to RemovedItems collection for further removal RemovedItems.Add(SelectedItems[i - 1]); } Items.Remove(SelectedItems[i - 1]); SelectedItems.Remove(SelectedItems[i - 1]); } } }
public void Remove(T item) { if (AddedItems.Contains(item)) { AddedItems.Remove(item); } else { if (UpdatedItems.Contains(item)) { UpdatedItems.Remove(item); } RemovedItems.Add(item); } InnerItems.Remove(item); item.PropertyChanged -= OnPropertyChanged; }
/// <summary> /// Currents the items collection changed. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.Collections.Specialized.NotifyCollectionChangedEventArgs"/> instance containing the event data.</param> private void CurrentItemsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { CollectionChanged(sender, e); if (e.Action == NotifyCollectionChangedAction.Remove) { foreach (var oldItem in e.OldItems) { var oldItemT = ( T )oldItem; RemovedItems.Add(oldItemT); } if (SoftDeleted != null) { SoftDeleted(this, new SoftDeletedEventArgs(e.OldItems)); } } }
public virtual void RejectChange(T item, bool applyToItem) { if (AddedItems.Contains(item)) { RemoveItem(Items.IndexOf(item)); } else if (RemovedItems.Contains(item)) { InsertItem(Items.Count, item); } else { throw new ArgumentOutOfRangeException(nameof(item), "The specified item does not exist in this collection."); } if (applyToItem && item is IRevertibleChangeTracking) { ((IRevertibleChangeTracking)item).RejectChanges(); } }
private void RemoveItemPricing() { if (listBox1.SelectedItem != null) { int index = listBox1.SelectedIndex; FormattedListBoxItem pricing = (FormattedListBoxItem)listBox1.SelectedItem; ItemPricingModel model = (ItemPricingModel)pricing.ReferenceObject; if (model.Id == 0) { NewItems.Remove(model); } else { RemovedItems.Add(model); } listBox1.Items.Remove(pricing); ClearFields(); DoChangedValueEvent(); InitializeListBox(index); } }
public async Task <string> Save(int?processId = null, int?partId = null, int?placeId = null) { string res = "OK"; if (res == "OK") { List <Task <string> > SaveTasks = new List <Task <string> >(); foreach (File f in Items) { if (f.FileId == 0) { f.CreatedBy = RuntimeSettings.CurrentUser.UserId; f.CreatedOn = DateTime.Now; try { f.Type = System.IO.Path.GetExtension(f.Link).Substring(1, 3); var s = new System.IO.FileInfo(f.Link); f.Size = s.Length; }catch (Exception ex) { } if (processId != null) { SaveTasks.Add(f.Add($"ProcessId={processId}")); } else if (partId != null) { SaveTasks.Add(f.Add($"PartId={partId}")); } else if (placeId != null) { SaveTasks.Add(f.Add($"PlaceId={placeId}")); } } else { //if (!pu.IsSaved) //{ //SaveTasks.Add(f.Edit()); //} } } if (RemovedItems.Any()) { foreach (File f in RemovedItems) { SaveTasks.Add(f.Remove()); } } IEnumerable <string> results = await Task.WhenAll <string>(SaveTasks); for (int i = RemovedItems.Count; i > 0; i--) { if (RemovedItems[i - 1].IsSaved) { RemovedItems.Remove(RemovedItems[i - 1]); } } FileKeeper.Items = Items; FileKeeper.AddToUploadQueue(); Task.Run(() => TakeSnapshot()); if (results.Where(r => r != "OK").Any()) { return(string.Join("; ", results.Where(r => r != "OK"))); } else { return("OK"); } } return(res); }
public bool Any() { return(AddedItems.Any() || RemovedItems.Any() || UpdatedItems.Any()); }