Beispiel #1
0
        private MultipleChoiceListFinderModel BuildMultipleChoiceModel(SocketEventContext model, string prefix, IUpdateModel updater)
        {
            var viewModel = new MultipleChoiceListFinderModel();

            PopulateChoiceListModel(model, viewModel, prefix, updater, null);
            return(viewModel);
        }
Beispiel #2
0
        private void UpdatedMultipleChoiceModel(SocketEventContext model, MultipleChoiceListFinderModel viewModel, string prefix, IUpdateModel updater)
        {
            // Any unchecked can be removed
            model.Query.Connectors.Remove(c => !viewModel.RightItemIds.Contains(c.RightContentItemId));
            var currentConnectors = model.Query.Connectors.List();

            // Add all ids (unless duplicates are prevented)
            foreach (var id in viewModel.RightItemIds)
            {
                if (model.Connector.Settings.AllowDuplicates ||
                    !currentConnectors.Any(c => c.RightContentItemId == id))
                {
                    // Add new connector
                    model.Query.Connectors.Add(id);
                }
            }
            // TODO: This logic needs to be in a validation step instead
            if (!model.Query.Connectors.Any() && !model.Connector.Settings.AllowNone)
            {
                updater.AddModelError(prefix + ".RightItemIds", T("You must select items for {0}", model.SocketMetadata.SocketTitle));
            }
            model.Query.Connectors.Flush(_mechanics);
        }