/// <summary> /// Creates an instance of FilterBoxVm to be used as a collection of causes /// </summary> /// <param name="nextLevel">reference to a FilterBoxVm that represents next cause level</param> /// <param name="list">list of first level cause models (use only for first level)</param> /// <returns></returns> public static FilterBoxVm CreateForCause(FilterBoxVm nextLevel, IEnumerable<Model.Cause> list = null) { var vm = new FilterBoxVm(); vm._nextLevel = nextLevel; //fill the first level cause items if (list != null) { foreach (var item in list) { vm.FilteredList.Add(FilterableItemVm.CreateForCause(vm, item)); } } return vm; }
/// <summary> /// Creates an instance of FilterBoxVm to be used as a collection of product defections /// </summary> /// <param name="selectedId">Id of defection that is selected by default</param> /// <param name="productId">Id of product that this FilterBoxVm is defined for</param> /// <returns></returns> public static FilterBoxVm CreateForProductDefections(int selectedId, int productId) { var vm = new FilterBoxVm(); //find and add product defections to this vm var productDefectionDS = new DataServices.ProductDefectionDataService(); var productDefectionModels = productDefectionDS.GetActivesForProduct(productId); var count = productDefectionModels.Count(); for (int i = 0; i < count; i++) { vm.FilteredList.Add(FilterableItemVm.CreateForProductDefection(vm, productDefectionModels[i])); } //select the default product defection vm.SelectedItem = vm.FilteredList.FirstOrDefault(x => x.Id == selectedId); return vm; }
/// <summary> /// Creates an instance of FilterableItemVm for cause provided by the given model /// <para>This constructor needs a <see cref="FilterBoxVm"/> as parent</para> /// </summary> /// <param name="model">model of cause to use in this vm</param> /// <returns></returns> public static FilterableItemVm CreateForCause(FilterBoxVm parent, Model.Cause model) { var vm = new FilterableItemVm(model.Id, model.Name, new CauseVm(model)); vm.Parent = parent; return vm; }
/// <summary> /// Creates an instance of FilterableItemVm for product defection provided by the given model /// <para>This constructor needs a <see cref="FilterBoxVm"/> as parent</para> /// </summary> /// <param name="model">model of product defection to use in this vm</param> /// <returns></returns> public static FilterableItemVm CreateForProductDefection(FilterBoxVm parent, Model.ProductDefection model) { var vm = new FilterableItemVm(model.Id, model.Defection.Name, new DefectionVm(model)); vm.Parent = parent; return vm; }
/// <summary> /// Creates an instance of FilterBoxVm to be used as a collection of operators /// </summary> /// <param name="parent">collection of FilterBoxVm that this vm is a part of</param> /// <param name="selectedId">Id of defection that is selected by default</param> /// <param name="list">array of FilterableItemVm instances as children of this vm</param> /// <returns></returns> public static FilterBoxVm CreateForGuiltyOperators(FilterBoxVmCollection parent, int selectedId, FilterableItemVm[] list) { var vm = new FilterBoxVm(); vm._parent = parent; foreach (var item in list) { item.Parent = vm; vm.FilteredList.Add(item); } //select the default operator vm.SelectedItem = vm.FilteredList.FirstOrDefault(x => x.Id == selectedId); return vm; }