Example #1
0
        public PartialViewResult ProductSearchMulti()
        {
            MultiOptions settings = new MultiOptions();

            if (this.WidgetPayload is MultiOptions)
            {
                settings = (MultiOptions)this.WidgetPayload;
                settings.LoadData();
            }

            //ProductSearch model = new ProductSearch();
            //using (var db = new NorthwindDataContext()) {
            //	if (settings.CategoryIDs.Any()) {
            //		model.Options = (from c in db.Categories
            //						 where settings.CategoryIDs.Contains(c.CategoryID)
            //						 select c).ToList();

            //		model.Results = (from p in db.Products
            //						 where settings.CategoryIDs.Contains(p.CategoryID.Value)
            //						 select p).ToList();
            //	}
            //}

            ProductSearch model = settings.GetData();

            if (String.IsNullOrEmpty(settings.AlternateViewFile))
            {
                return(PartialView(model));
            }
            else
            {
                model.AltViewName = settings.AlternateViewFile;
                return(PartialView(settings.AlternateViewFile, model));
            }
        }
		public PartialViewResult ProductSearchMulti() {
			MultiOptions settings = new MultiOptions();

			if (this.WidgetPayload is MultiOptions) {
				settings = (MultiOptions)this.WidgetPayload;
				settings.LoadData();
			}

			//ProductSearch model = new ProductSearch();
			//using (var db = new NorthwindDataContext()) {
			//	if (settings.CategoryIDs.Any()) {
			//		model.Options = (from c in db.Categories
			//						 where settings.CategoryIDs.Contains(c.CategoryID)
			//						 select c).ToList();

			//		model.Results = (from p in db.Products
			//						 where settings.CategoryIDs.Contains(p.CategoryID.Value)
			//						 select p).ToList();
			//	}
			//}

			ProductSearch model = settings.GetData();

			if (String.IsNullOrEmpty(settings.AlternateViewFile)) {
				return PartialView(model);
			} else {
				model.AltViewName = settings.AlternateViewFile;
				return PartialView(settings.AlternateViewFile, model);
			}
		}
        private void AddOrUpdateMultiSelection(CategoryItem option)
        {
            var multiOptions = SelectedMultiOptions.ToList();

            if (multiOptions.Any(x => x.Id == option.Id))
            {
                var optionForUpdate = multiOptions.First(x => x.Id == option.Id);
                multiOptions.Remove(optionForUpdate);
                optionForUpdate.Selected = option.Selected;
                multiOptions.Add(optionForUpdate);
            }
            else
            {
                var newItem = MultiOptions.First(x => x.Id == option.Id);
                multiOptions.Add(newItem);
            }

            SelectedMultiOptions = multiOptions;
        }
        private object ReadResponse()
        {
            if (ShowTextObs)        // Text
            {
                return(ResponseText);
            }

            if (ShowSingleObs) //"Single";
            {
                var selected = SelectedSingleOption.ItemId;
                if (selected.IsNullOrEmpty())
                {
                    return(null);
                }
                return(selected);
            }

            if (ShowNumericObs) //"Numeric";
            {
                var selected = ResponseNumeric;
                if (selected == 0)
                {
                    return(null);
                }
                return(selected);
            }

            if (ShowMultiObs)       //"Multi";
            {
                var options = MultiOptions.Where(x => x.Selected).ToList();
                return(string.Join(",", options.Select(x => x.ItemId)));
            }
            if (ShowDateObs)       //"Multi";
            {
                return(ResponseDate);
            }
            return(null);
        }
        public void SetResponse(object response)
        {
            if (ShowTextObs)        // Text
            {
                ResponseText = response.ToString();
            }

            if (ShowSingleObs)      //"Single";
            {
                var text = response.ToString();
                if (!string.IsNullOrWhiteSpace(text))
                {
                    var option = SingleOptions.FirstOrDefault(x => x.ItemId == new Guid(text));
                    SelectedSingleOption = option;
                }
            }

            if (ShowNumericObs)     //"Numeric";
            {
                var text = response.ToString();
                if (!string.IsNullOrWhiteSpace(text))
                {
                    decimal numeric;
                    decimal.TryParse(text, out numeric);
                    ResponseNumeric = numeric;
                }
            }

            if (ShowMultiObs)       //"Multi";
            {
                var itemIds = new List <Guid>();
                var ids     = response.ToString().Split(',');
                foreach (var id in ids)
                {
                    itemIds.Add(new Guid(id));
                }
                if (itemIds.Count > 0)
                {
                    var multiOptions = new List <CategoryItem>();
                    var options      = MultiOptions
                                       .Where(
                        x => itemIds.Contains(x.ItemId) &&
                        x.ItemId != Guid.Empty)
                                       .ToList();

                    foreach (var categoryItem in MultiOptions)
                    {
                        if (options.Any(x => x.ItemId == categoryItem.ItemId))
                        {
                            if (!categoryItem.Selected)
                            {
                                categoryItem.Selected = true;
                            }
                        }
                        multiOptions.Add(categoryItem);
                    }

                    MultiOptions = multiOptions;
                }
            }

            if (ShowDateObs)     //"Date";
            {
                var text = response.ToString();
                if (!string.IsNullOrWhiteSpace(text))
                {
                    DateTime dateTime;
                    DateTime.TryParse(text, out dateTime);
                    ResponseDate = dateTime;
                }
            }
        }