Example #1
0
        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);
                }
            });
        }
Example #2
0
 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);
         }
     }
 }
Example #3
0
 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;
 }
Example #4
0
        public void CommitChanges()
        {
            RemovedItems.Clear();
            UpdatedItems.Clear();
            AddedItems.Clear();

            OriginalItems.Clear();
            OriginalItems.AddRange(InnerItems);
        }
Example #5
0
        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);
        }
Example #6
0
        /// <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;
                }
            }
        }
Example #7
0
 /// <inheritdoc/>
 public async Task CommitAsync()
 {
     foreach (var item in Items)
     {
         await DeliverEntityEventsAsync(item);
     }
     foreach (var item in RemovedItems)
     {
         await DeliverEntityEventsAsync(item);
     }
     FireCommittedEvent();
     RemovedItems.Clear();
 }
Example #8
0
        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;
        }
Example #9
0
 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]);
         }
     }
 }
Example #10
0
 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));
                }
            }
        }
Example #12
0
        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();
            }
        }
Example #13
0
 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);
     }
 }
Example #14
0
        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());
 }