public async Task <DataMap> NewAsync(ApplicationSchemaDefinition application, CompositeDataMap dataMap = null) { var newDataMap = new DataMap(application); // If we have no composite data map it means // a "parent" data map is being created. For // the sake of coherence, let's simply wrap // it inside a CompositeDataMap structure. if (null == dataMap) { dataMap = CompositeDataMap.Wrap(application, newDataMap); } else { // A component data map is being created. // Let's link it to the composite root. newDataMap.LocalState.ParentId = dataMap.Composite.LocalState.LocalId; } await Task .Factory .StartNew(() => Dispatcher.OnNew(newDataMap, application, dataMap)); return(newDataMap); }
internal void Construct(ApplicationCompositionDefinition composition, CompositeDataMap dataMap, DetailController detailController) { _composition = composition; _compositeDataMap = dataMap; _componentDataMaps = dataMap.Components(composition.To()); _detailController = detailController; }
public async Task SaveAsync(CompositeDataMap dataMap, CancellationToken cancellationToken = default(CancellationToken)) { Dispatcher.OnBeforeSave(dataMap); await Database .GetConnection(cancellationToken) .RunInTransactionAsync(c => SaveAsyncImpl(dataMap, c)); }
public void Construct(ApplicationSchemaDefinition application, DataMap dataMap, bool isNew, CompositeDataMap composite, DetailController detailController, Action <DetailComponentController.Result> onCompletion) { _applicationMetadata = application; _dataMap = dataMap; _isNew = isNew; _composite = composite; _detailController = detailController; _onCompletion = onCompletion; }
public ApplicationCommandArguments(ApplicationSchemaDefinition schema, MetadataRepository metadataRepository, DataMap dataMap, DataRepository dataRepository, CompositeDataMap composite, User user, UIViewController controller) { _applicationMetadata = schema; _metadataRepository = metadataRepository; _dataMap = dataMap; _dataRepository = dataRepository; _composite = composite; _user = user; _controller = controller; }
public static void OnBeforeSave(CompositeDataMap dataMap) { ApplicationBehaviorDispatcher .OnBeforeSave(dataMap.Composite, dataMap.Application); foreach (var component in dataMap.Components()) { foreach (var componentDataMap in component.DataMaps) { ApplicationBehaviorDispatcher .OnBeforeSave(componentDataMap, component.Application); } } }
private static void SaveAsyncImpl(CompositeDataMap dataMap, SQLiteConnection connection) { connection.Execute("delete from DataMap where LocalId = ?", dataMap.Composite.LocalState.LocalId); connection.Insert(new PersistableDataMap(dataMap.Application, dataMap.Composite, true, DateTime.Now)); foreach (var component in dataMap.Components()) { foreach (var componentDataMap in component.DataMaps) { // Links the component to its composite. componentDataMap.LocalState.ParentId = dataMap.Composite.LocalState.LocalId; connection.Execute("delete from DataMap where LocalId = ?", componentDataMap.LocalState.LocalId); connection.Insert(new PersistableDataMap(component.Application, componentDataMap, true, DateTime.Now)); } } }
internal void Construct(ApplicationSchemaDefinition application, DataMap dataMap, bool isNew, CompositeDataMap composite, DetailController detailController, Func <Task <bool> > commandPreCondition, Action <string> titleSetter) { _applicationMetadata = application; _dataMap = dataMap; _composite = composite; _detailController = detailController; _commandPreCondition = commandPreCondition; _titleSetter = titleSetter; // Create our buddy binding which will help // us to move data between the data map and // the UI controls. _binding = UiBinder.Bind(_dataMap, _applicationMetadata, isNew); // Load the data, but ignore validation for // now. We don't want objects that are already // invalid triggering a sea of red in the UI. _binding.IsValidationSuppressed = true; }
public OnNewContext(ApplicationSchemaDefinition application, MetadataRepository metadataRepository, User user, CompositeDataMap composite) : base(application, metadataRepository, user) { _composite = composite; }
public static void OnNew(DataMap dataMap, ApplicationSchemaDefinition application, CompositeDataMap composite) { var context = new OnNewContext(application, MetadataRepository, User.Current, composite); var behavior = GetBehavior(context.Application); behavior.OnNew(context, dataMap); }
public static void OnNew(DataMap newDataMap, ApplicationSchemaDefinition application, CompositeDataMap composite) { ApplicationBehaviorDispatcher .OnNew(newDataMap, application, composite); }
public Task SaveAsync(ApplicationSchemaDefinition application, DataMap dataMap, CancellationToken cancellationToken = default(CancellationToken)) { return(SaveAsync(CompositeDataMap.Wrap(application, dataMap), cancellationToken)); }
public void Construct(ApplicationSchemaDefinition application, DataMap dataMap, bool isNew, CompositeDataMap composite, DetailController detailController, Action <Result> onCompletion) { _applicationMetadata = application; _dataMap = dataMap; _onCompletion = onCompletion; _isNew = isNew; // Creates the controller that // contains the actual form. _formController = Storyboard.InstantiateViewController <DetailFormController>(); _formController.Construct(_applicationMetadata, _dataMap, isNew, composite, detailController, OnCommand, t => Title = t); AddChildViewController(_formController); _formController.DidMoveToParentViewController(this); }
private Task <CompositeDataMap> ExpandCompositeDataMap(DataMap dataMap) { return(CompositeDataMap.Expand(_applicationMetadata, dataMap)); }
public void Construct(CompositeDataMap dataMap, bool isNew) { _dataMap = dataMap; ConstructChildControllers(isNew); }