Inheritance: SparkleXrm.ViewModelBase
示例#1
0
        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);
                    }
                });
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#5
0
 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();
 }
示例#6
0
        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);
        }
示例#8
0
        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);
        }
示例#9
0
 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));
 }