private void ViewModel_ViewOpenActionDialog(FilterEditViewModel sender, string title, string message, Action <FilterEditViewModel> okAction)
 {
     if (MessageBox.Show(message, title, MessageBoxButton.OKCancel) == MessageBoxResult.OK)
     {
         okAction?.Invoke(sender);
     }
 }
Пример #2
0
        public ActionResult Edit(int id, string category, string type, int filterId = -1)
        {
            if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to manage image profiles")))
                return new HttpUnauthorizedResult();

            var filter = _processingManager.DescribeFilters().SelectMany(x => x.Descriptors).FirstOrDefault(x => x.Category == category && x.Type == type);

            if (filter == null) {
                return HttpNotFound();
            }

            // build the form, and let external components alter it
            var form = filter.Form == null ? null : _formManager.Build(filter.Form);

            string description = "";

            // bind form with existing values).
            if (filterId != -1) {
                var profile = _profileService.GetImageProfile(id);
                var filterRecord = profile.Filters.FirstOrDefault(f => f.Id == filterId);
                if (filterRecord != null) {
                    description = filterRecord.Description;
                    var parameters = FormParametersHelper.FromString(filterRecord.State);
                    _formManager.Bind(form, new DictionaryValueProvider<string>(parameters, CultureInfo.InvariantCulture));
                }
            }

            var viewModel = new FilterEditViewModel {Id = id, Description = description, Filter = filter, Form = form};
            return View(viewModel);
        }
Пример #3
0
        public IActionResult FilterEditor([FromForm] FilterEditViewModel model)
        {
            var existing = _fileDatabase.GetDocumentById(model.DocumentId);

            var filterSet = existing.PickFilterSet(model.PageIndex);

            if (filterSet is null)
            {
                return(BadRequest() !);
            }
            if (model.FilterKey is null)
            {
                return(BadRequest() !);
            }
            if (!filterSet.ContainsKey(model.FilterKey))
            {
                return(BadRequest() !);
            }

            // Copy new values across
            model.CopyTo(existing);

            // Write back to store
            _fileDatabase.SaveDocumentTemplate(existing, model.DocumentId);
            return(Content("OK") !);
        }
        public ActionResult Edit(int id, string category, string type, int filterId = -1)
        {
            if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to manage queries")))
            {
                return(new HttpUnauthorizedResult());
            }

            var filter = _projectionManager.DescribeFilters().SelectMany(x => x.Descriptors).Where(x => x.Category == category && x.Type == type).FirstOrDefault();

            if (filter == null)
            {
                return(HttpNotFound());
            }

            // if there is no form to edit, save the filter and go back to the query
            if (filter.Form == null)
            {
                var group = _groupRepository.Get(id);

                if (filterId == -1)
                {
                    group.Filters.Add(
                        new FilterRecord {
                        Category = category,
                        Type     = type,
                        Position = group.Filters.Count
                    });
                }

                return(RedirectToAction("Edit", "Admin", new { id = group.QueryPartRecord.Id }));
            }

            // build the form, and let external components alter it
            var form = _formManager.Build(filter.Form);

            string description = "";

            // bind form with existing values).
            if (filterId != -1)
            {
                var group        = _groupRepository.Get(id);
                var filterRecord = group.Filters.Where(f => f.Id == filterId).FirstOrDefault();
                if (filterRecord != null)
                {
                    description = filterRecord.Description;
                    var parameters = FormParametersHelper.FromString(filterRecord.State);
                    _formManager.Bind(form, new DictionaryValueProvider <string>(parameters, CultureInfo.InvariantCulture));
                }
            }

            var viewModel = new FilterEditViewModel {
                Id = id, Description = description, Filter = filter, Form = form
            };

            return(View(viewModel));
        }
Пример #5
0
        public ActionResult EditPost(int id, string category, string type, [DefaultValue(-1)] int filterId, FormCollection formCollection)
        {
            var profile = _profileService.GetImageProfile(id);

            var filter = _processingManager.DescribeFilters().SelectMany(x => x.Descriptors).FirstOrDefault(x => x.Category == category && x.Type == type);

            var model = new FilterEditViewModel();

            TryUpdateModel(model);

            // validating form values
            _formManager.Validate(new ValidatingContext {
                FormName = filter.Form, ModelState = ModelState, ValueProvider = ValueProvider
            });

            if (ModelState.IsValid)
            {
                var filterRecord = profile.Filters.FirstOrDefault(f => f.Id == filterId);

                // add new filter record if it's a newly created filter
                if (filterRecord == null)
                {
                    filterRecord = new FilterRecord {
                        Category = category,
                        Type     = type,
                        Position = profile.Filters.Count
                    };
                    profile.Filters.Add(filterRecord);
                }

                var dictionary = formCollection.AllKeys.ToDictionary(key => key, formCollection.Get);

                // save form parameters
                filterRecord.State       = FormParametersHelper.ToString(dictionary);
                filterRecord.Description = model.Description;

                // set profile as updated
                profile.ModifiedUtc = DateTime.UtcNow;
                profile.FileNames.Clear();
                _signals.Trigger("MediaProcessing_" + profile.Name + "_Saved");

                return(RedirectToAction("Edit", "Admin", new { id }));
            }

            // model is invalid, display it again
            var form = _formManager.Build(filter.Form);

            _formManager.Bind(form, formCollection);
            var viewModel = new FilterEditViewModel {
                Id = id, Description = model.Description, Filter = filter, Form = form
            };

            return(View(viewModel));
        }
        public ActionResult EditPost(int id, string category, string type, [DefaultValue(-1)] int filterId, FormCollection formCollection)
        {
            var group = _groupRepository.Get(id);

            var filter = _projectionManager.DescribeFilters().SelectMany(x => x.Descriptors).Where(x => x.Category == category && x.Type == type).FirstOrDefault();

            var model = new FilterEditViewModel();

            TryUpdateModel(model);

            // validating form values
            _formManager.Validate(new ValidatingContext {
                FormName = filter.Form, ModelState = ModelState, ValueProvider = ValueProvider
            });

            if (ModelState.IsValid)
            {
                var filterRecord = group.Filters.Where(f => f.Id == filterId).FirstOrDefault();

                // add new filter record if it's a newly created filter
                if (filterRecord == null)
                {
                    filterRecord = new FilterRecord {
                        Category = category,
                        Type     = type,
                        Position = group.Filters.Count
                    };
                    group.Filters.Add(filterRecord);
                }

                var dictionary = formCollection.AllKeys.ToDictionary(key => key, formCollection.Get);

                // save form parameters
                filterRecord.State       = FormParametersHelper.ToString(dictionary);
                filterRecord.Description = model.Description;

                return(RedirectToAction("Edit", "Admin", new { group.QueryPartRecord.Id }));
            }

            // model is invalid, display it again
            var form = _formManager.Build(filter.Form);

            _formManager.Bind(form, formCollection);
            var viewModel = new FilterEditViewModel {
                Id = id, Description = model.Description, Filter = filter, Form = form
            };

            return(View(viewModel));
        }
Пример #7
0
        public IActionResult FilterEditor(int docId, [FromQuery] int?pageIndex, [FromQuery] string filterKey)
        {
            var project = _fileDatabase.GetDocumentById(docId);

            var filterSet = project.PickFilterSet(pageIndex);

            if (filterSet is null)
            {
                return(BadRequest() !);
            }
            if (!filterSet.ContainsKey(filterKey))
            {
                return(BadRequest() !);
            }

            var theFilter = filterSet[filterKey];

            var model = FilterEditViewModel.From(project, pageIndex, docId, filterKey, theFilter);

            return(View(model) !);
        }
        public ActionResult GetFilterEdit(string updateTargetId, bool isAdministrator, string category)
        {
            var model = new FilterEditViewModel(updateTargetId, isAdministrator, category);

            return(PartialView("FilterEditPartialView", model));
        }