private void AddNewProperty(object sender, RoutedEventArgs e)
 {
     if (SelectedCondition == null)
     {
         return;
     }
     SelectedCondition.AddCondition(PropertyInfo.Step);
 }
예제 #2
0
        public bool FilerRecords(object o)
        {
            double res;
            bool   checkNumeric = double.TryParse(FilterText, out res);
            var    item         = o as BookInfo;

            if (item != null && FilterText.Equals("") && !string.IsNullOrEmpty(FilterText))
            {
                return(true);
            }
            else
            {
                if (item != null)
                {
                    if (checkNumeric && !SelectedColumn.Equals("All Columns") && !SelectedCondition.Equals("Contains"))
                    {
                        bool result = MakeNumericFilter(item, SelectedColumn, SelectedCondition);
                        return(result);
                    }
                    else if (SelectedColumn.Equals("All Columns"))
                    {
                        if (item.BookName.ToLower().Contains(FilterText.ToLower()) ||
                            item.FirstName.ToString().ToLower().Contains(FilterText.ToLower()) ||
                            item.LastName.ToString().ToLower().Contains(FilterText.ToLower()) ||
                            item.CustomerID.ToString().ToLower().Contains(FilterText.ToLower()) ||
                            item.BookID.ToString().ToLower().Contains(FilterText.ToLower()))
                        {
                            return(true);
                        }
                        return(false);
                    }
                    else
                    {
                        bool result = MakeStringFilter(item, SelectedColumn, SelectedCondition);
                        return(result);
                    }
                }
            }
            return(false);
        }
        public ConditionsEditorViewModel(
            IConditionsFactory conditionsFactory,
            IConditionDataManager conditionDataManager,
            IItemFromListProvider itemFromListProvider,
            IHistoryManager historyManager,
            IEnumerable <ICondition>?conditions,
            int conditionSourceType)
        {
            this.conditionsFactory    = conditionsFactory;
            this.conditionDataManager = conditionDataManager;
            this.HistoryManager       = historyManager;

            ConditionTypes = conditionDataManager
                             .GetConditionGroups()
                             .SelectMany(group => group.Members)
                             .Where(conditionDataManager.HasConditionData)
                             .Select(conditionDataManager.GetConditionData)
                             .ToList();

            if (conditions != null)
            {
                int previousElseGroup = -1;
                foreach (var c in conditions)
                {
                    var vm = conditionsFactory.Create(conditionSourceType, c);
                    if (vm == null)
                    {
                        continue;
                    }

                    if (c.ElseGroup != previousElseGroup && previousElseGroup != -1)
                    {
                        Conditions.Add(conditionsFactory.CreateOr(conditionSourceType));
                    }

                    previousElseGroup = c.ElseGroup;
                    Conditions.Add(vm);
                }
            }

            Accept      = new DelegateCommand(() => CloseOk?.Invoke());
            Cancel      = new DelegateCommand(() => CloseCancel?.Invoke());
            PickCommand = new AsyncAutoCommand <ParameterValueHolder <long> >(async prh =>
            {
                if (!prh.HasItems)
                {
                    return;
                }

                var newItem = await itemFromListProvider.GetItemFromList(prh.Parameter.Items, prh.Parameter is FlagParameter, prh.Value);
                if (newItem.HasValue)
                {
                    prh.Value = newItem.Value;
                }
            });
            AddItemCommand = new DelegateCommand(() =>
            {
                int index = Conditions.Count;
                if (SelectedCondition != null)
                {
                    index = Conditions.IndexOf(SelectedCondition) + 1;
                }
                index = Math.Clamp(index, 0, Conditions.Count);

                Conditions.Insert(index, conditionsFactory.Create(conditionSourceType, 0) ?? conditionsFactory.CreateOr(conditionSourceType));
            });
            RemoveItemCommand = new DelegateCommand(() =>
            {
                if (SelectedCondition == null)
                {
                    return;
                }

                int indexOf = Conditions.IndexOf(SelectedCondition);
                if (indexOf != -1)
                {
                    Conditions.RemoveAt(indexOf);
                    if (indexOf - 1 >= 0 && Conditions.Count > 0)
                    {
                        SelectedCondition = Conditions[indexOf - 1];
                    }
                    else if (Conditions.Count > 0)
                    {
                        SelectedCondition = Conditions[indexOf];
                    }
                }
            }, () => SelectedCondition != null).ObservesProperty(() => SelectedCondition);
            CopyCommand = new DelegateCommand(() =>
            {
                if (SelectedCondition != null)
                {
                    Clipboard = SelectedCondition?.ToCondition(0);
                }
            }, () => SelectedCondition != null).ObservesProperty(() => SelectedCondition);
            CutCommand = new DelegateCommand(() =>
            {
                if (SelectedCondition != null)
                {
                    Clipboard = SelectedCondition?.ToCondition(0);
                    Conditions.Remove(SelectedCondition !);
                    SelectedCondition = null;
                }
            }, () => SelectedCondition != null).ObservesProperty(() => SelectedCondition);
            PasteCommand = new DelegateCommand(() =>
            {
                if (clipboard != null)
                {
                    int indexOf = Conditions.Count;
                    if (SelectedCondition != null)
                    {
                        indexOf = Conditions.IndexOf(SelectedCondition) + 1;
                    }
                    var item = conditionsFactory.Create(conditionSourceType, clipboard);
                    if (item != null)
                    {
                        Conditions.Insert(indexOf, item);
                    }
                }
            }, () => Clipboard != null).ObservesProperty(() => Clipboard);

            UndoCommand =
                new DelegateCommand(HistoryManager.Undo, () => HistoryManager.CanUndo).ObservesProperty(() =>
                                                                                                        HistoryManager.CanUndo);
            RedoCommand =
                new DelegateCommand(HistoryManager.Redo, () => HistoryManager.CanRedo).ObservesProperty(() =>
                                                                                                        HistoryManager.CanRedo);

            Watch(this, t => t.SelectedCondition, nameof(SelectedConditionsType));

            historyHandler = AutoDispose(new ConditionsEditorHistoryHandler(this, conditionsFactory));
            HistoryManager.AddHandler(historyHandler);
        }
예제 #4
0
 public override string ToString()
 {
     return(string.Format("{0} '{1}'", SelectedCondition.Humanize(), Value));
 }
예제 #5
0
 public override string ToString()
 {
     return($"{SelectedCondition.Humanize()} '{Value}'");
 }
예제 #6
0
        protected void AttributePostBack(object sender, EventArgs e)
        {
            try
            {
                listPager.CurrentPageIndex = 0;

                if (string.IsNullOrEmpty(hdfValue.Value))
                {
                    if (!string.IsNullOrEmpty(lblSpec) || !string.IsNullOrEmpty(lblPictureNO))
                    {
                        SelectedCondition sltPic = new SelectedCondition()
                        {
                            Key = "PictureNO", ValueMember = lblPictureNO, DisplayMember = lblPictureNO
                        };
                        selectedConditions.Remove(sltPic);
                        if (!string.IsNullOrEmpty(lblPictureNO))
                        {
                            selectedConditions.Add(sltPic);
                        }

                        SelectedCondition sltSpec = new SelectedCondition()
                        {
                            Key = "SpecificationType", ValueMember = lblSpec, DisplayMember = lblSpec
                        };
                        selectedConditions.Remove(sltSpec);
                        if (!string.IsNullOrEmpty(lblSpec))
                        {
                            selectedConditions.Add(sltSpec);
                        }
                    }
                    else
                    {
                        selectedConditions = new List <SelectedCondition>();
                        if (!isParentCategory)
                        {
                            selectedConditions.Add(new SelectedCondition()
                            {
                                Key         = "Category",
                                ValueMember = categoryId.ToString()
                            });
                        }
                    }
                }
                else
                {
                    JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
                    SelectedCondition    sltCondition = jsSerializer.Deserialize <SelectedCondition>(hdfValue.Value);

                    if (hdfValue.Value.Contains(","))
                    {
                        if (selectedConditions.Contains(sltCondition))
                        {
                            SelectedCondition o = selectedConditions
                                                  .Single <SelectedCondition>(p => p.Key.Equals(sltCondition.Key));
                            selectedConditions.Remove(o);
                        }
                        selectedConditions.Add(sltCondition);
                    }
                    else
                    {
                        selectedConditions.Remove(sltCondition);

                        if (sltCondition.Key.Equals("PictureNO"))
                        {
                            lblPictureNO = string.Empty;
                        }
                        if (sltCondition.Key.Equals("SpecificationType"))
                        {
                            lblSpec = string.Empty;
                        }
                    }
                    hdfValue.Value = string.Empty;
                }

                ViewState[SELECTEDCONDITION] = selectedConditions;

                products = productManager.GetProductByCondition(categoryId, selectedConditions);

                ViewState[PRODUCTS] = products;

                GetDisplayList(0);
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                RedirectToErrorPage();
            }
        }