private void connection_PropertyChanged(object sender, Xrm.ComponentModel.PropertyChangedEventArgs e) { Connection connectionToUpdate = new Connection(); Connection updated = (Connection)sender; connectionToUpdate.ConnectionID = new Guid(updated.Id); bool updateRequired = false; switch (e.PropertyName) { case "record2roleid": // Check if the record1id is loaded - if not load it now so we can work out the opposite role if (updated.Record1Id == null) { Connection connection = (Connection)OrganizationServiceProxy.Retrieve(Connection.LogicalName, updated.ConnectionID.Value, new string[] { "record1id" }); updated.Record1Id = connection.Record1Id; } connectionToUpdate.Record2RoleId = updated.Record2RoleId; connectionToUpdate.Record1RoleId = ObservableConnection.GetOppositeRole(updated.Record2RoleId, updated.Record1Id); updateRequired = true; break; case "description": connectionToUpdate.Description = updated.Description; updateRequired = true; break; case "effectivestart": connectionToUpdate.EffectiveStart = updated.EffectiveStart; updateRequired = true; break; case "effectiveend": connectionToUpdate.EffectiveEnd = updated.EffectiveEnd; updateRequired = true; break; } // Auto save if (updateRequired) { OrganizationServiceProxy.BeginUpdate(connectionToUpdate, delegate(object state) { try { OrganizationServiceProxy.EndUpdate(state); ErrorMessage.SetValue(null); } catch (Exception ex) { ErrorMessage.SetValue(ex.Message); } }); } }
public ConnectionsViewModel() { ObservableConnection connection = new ObservableConnection(); ConnectionEdit = (Observable<ObservableConnection>)ValidatedObservableFactory.ValidatedObservable(connection); ConnectionEdit.GetValue().OnSaveComplete += ConnectionsViewModel_OnSaveComplete; ErrorMessage = Knockout.Observable<string>(); Connections.OnDataLoaded.Subscribe(Connections_OnDataLoaded); ObservableConnection.RegisterValidation(Connections.ValidationBinder); }
public ConnectionsViewModel(EntityReference parentRecordId, Dictionary<string, string> connectToTypes) { ParentRecordId = parentRecordId; ObservableConnection connection = new ObservableConnection(connectToTypes); connection.Record2Id.SetValue(ParentRecordId); ConnectionEdit = (Observable<ObservableConnection>)ValidatedObservableFactory.ValidatedObservable(connection); Connections.OnDataLoaded.Subscribe(Connections_OnDataLoaded); ConnectionEdit.GetValue().OnSaveComplete += ConnectionsViewModel_OnSaveComplete; ObservableConnection.RegisterValidation(Connections.ValidationBinder); }
public ConnectionsViewModel(EntityReference parentRecordId, Dictionary <string, string> connectToTypes) { ParentRecordId = parentRecordId; ObservableConnection connection = new ObservableConnection(connectToTypes); connection.Record2Id.SetValue(ParentRecordId); ConnectionEdit = (Observable <ObservableConnection>)ValidatedObservableFactory.ValidatedObservable(connection); Connections.OnSelectedRowsChanged += Connections_OnSelectedRowsChanged; Connections.OnDataLoaded.Subscribe(Connections_OnDataLoaded); ConnectionEdit.GetValue().OnSaveComplete += ConnectionsViewModel_OnSaveComplete; ObservableConnection.RegisterValidation(Connections.ValidationBinder); }
public static void CreateConnection(Assert assert) { assert.Expect(1); Action done = assert.Async(); ObservableConnection vm = new ObservableConnection(); vm.Record1Id.SetValue(accounts[0].ToEntityReference()); vm.Record2Id.SetValue(accounts[1].ToEntityReference()); vm.OnSaveComplete += delegate(string result) { assert.Equal(result, "Error", "Message = " + result); done(); }; vm.SaveCommand(); }
public ConnectionsViewModel(EntityReference parentRecordId, string[] connectToTypes, int pageSize, string viewFetchXml) { Connections = new EntityDataViewModel(pageSize, typeof(Connection), true); ParentRecordId.SetValue(parentRecordId); _viewFetchXml = viewFetchXml; ObservableConnection connection = new ObservableConnection(connectToTypes); connection.Record2Id.SetValue(parentRecordId); ConnectionEdit = (Observable <ObservableConnection>)ValidatedObservableFactory.ValidatedObservable(connection); Connections.OnDataLoaded.Subscribe(Connections_OnDataLoaded); ConnectionEdit.GetValue().OnSaveComplete += ConnectionsViewModel_OnSaveComplete; ObservableConnection.RegisterValidation(Connections.ValidationBinder); AllowAddNew = Knockout.DependentObservable <bool>(AllowAddNewComputed); }
public ConnectionsViewModel(EntityReference parentRecordId, string[] connectToTypes, int pageSize, FetchQuerySettings view) { Connections = new EntityDataViewModel(pageSize, typeof(Connection), true); if (view != null) { _viewFetchXml = QueryParser.GetFetchXmlParentFilter(view, "record1id"); // Set initial sort _defaultSortCol=new SortCol(view.OrderByAttribute, !view.OrderByDesending); } ParentRecordId.SetValue(parentRecordId); ObservableConnection connection = new ObservableConnection(connectToTypes); connection.Record2Id.SetValue(parentRecordId); ConnectionEdit = (Observable<ObservableConnection>)ValidatedObservableFactory.ValidatedObservable(connection); Connections.OnDataLoaded.Subscribe(Connections_OnDataLoaded); ConnectionEdit.GetValue().OnSaveComplete += ConnectionsViewModel_OnSaveComplete; ObservableConnection.RegisterValidation(Connections.ValidationBinder); AllowAddNew = Knockout.DependentObservable<bool>(AllowAddNewComputed); }
public ConnectionsViewModel(EntityReference parentRecordId, string[] connectToTypes, int pageSize, FetchQuerySettings view) { Connections = new EntityDataViewModel(pageSize, typeof(Connection), true); if (view != null) { _viewFetchXml = QueryParser.GetFetchXmlParentFilter(view, "record1id"); // Set initial sort _defaultSortCol = new SortCol(view.OrderByAttribute, !view.OrderByDesending); } ParentRecordId.SetValue(parentRecordId); ObservableConnection connection = new ObservableConnection(connectToTypes); connection.Record2Id.SetValue(parentRecordId); ConnectionEdit = (Observable <ObservableConnection>)ValidatedObservableFactory.ValidatedObservable(connection); Connections.OnDataLoaded.Subscribe(Connections_OnDataLoaded); ConnectionEdit.GetValue().OnSaveComplete += ConnectionsViewModel_OnSaveComplete; ObservableConnection.RegisterValidation(Connections.ValidationBinder); AllowAddNew = Knockout.DependentObservable <bool>(AllowAddNewComputed); }
public ObservableConnection(string[] types) { connectToTypes = types; ObservableConnection.RegisterValidation(new ObservableValidationBinder(this)); }
public void RoleSearchCommand(string term, Action <EntityCollection> callback) { // Get the possible roles ObservableConnection.RoleSearch(term, callback, SelectedConnection.GetValue().Record2Id.LogicalName); }
public ObservableConnection(Dictionary <string, string> types) { connectToTypes = types; ObservableConnection.RegisterValidation(new ObservableValidationBinder(this)); }