private void Client_FetchLineagesCompleted(object sender, DataPortalResult<ReadOnlyLineages> e)
 {
     fetchingLineages = false;
     if (e.Error != null)
     {
         if (e.Error.InnerException != null)
             throw e.Error.InnerException;
         else
             throw e.Error;
     }
     DataFetched = true;
     Lineages = e.Object;
     if (FetchLineagesCompleted != null)
         FetchLineagesCompleted(this, e);
 }
        public void PropertiesGetSetTest()
        {
            var vm = new FrequencyFieldViewModel();

            var property = Mock.Create<PropertyInfo>();
            Mock.Arrange(() => property.Name).Returns("test");

            var model = new EditModeMock();

            var dvm = Mock.Create<IDetailsViewModel>();
            var dtm = Mock.Create<IDynamicTypeManager>();
            Mock.Arrange(
                () =>
                dtm.BeginGetList(
                    Constants.FilterProcessName,
                    Arg.IsAny<Action<object, DataPortalResult<IInfoList>>>(),
                    Arg.IsAny<SortList>(),
                    Arg.IsAny<int>(),
                    Arg.IsAny<string>(),
                    Arg.IsAny<int>(),
                    Arg.IsAny<string>(),
                    Arg.IsAny<string>(),
                    Arg.IsAny<IEnumerable<string>>()))
                .DoInstead<string, Action<object, DataPortalResult<IInfoList>>, SortList, int, string, int, string, string, IEnumerable<string>>(
                    (process, callback, sortDescriptor, pageSize, filterString, pageNumber, filtersList, groupColumn, nonFilteredColumns) =>
                        {
                            var result = new DataPortalResult<IInfoList>(null, null, null);
                            callback(null, result);
                        });



            vm.Property = property;
            vm.DynamicTypeManager = dtm;
            vm.Init(model, null, dvm);

            TestsHelper.TestPublicPropertiesGetSet(vm, x=>vm.TypeFrequency, x=>vm.SelectedEvent, x=>vm.VisibilityRules);
        }
 private void HtmlContent_FetchCompleted(object sender, DataPortalResult<HtmlContent> e)
 {
     DataSource = e.Object;
     IsBusy = false;
 }
예제 #4
0
        public void ExecuteResetLayoutTest()
        {
            var layoutViewModel = new Mock<LayoutViewModel>();
            var layout = new LayoutViewModel();
            var dtm = new Mock<IDynamicTypeManager>();


            dtm.Setup(x => x.BeginGetList(Constants.FilterProcessName,
                                                       It.IsAny<Action<object, DataPortalResult<IFilterList>>>(),
                                                       It.IsAny<SortList>(),
                                                       It.IsAny<int>(),
                                                       It.IsAny<string>(),
                                                       It.IsAny<int>(),
                                                       It.IsAny<string>(),
                                                       It.IsAny<string>(),
                                                       It.IsAny<IEnumerable<string>>())).Callback
              <string, Action<object, DataPortalResult<IFilterList>>, SortList, int, string, int, string, string, IEnumerable<string>>
              ((process, callback, sortDescriptor, pageSize, filterString, pageNumber, filtersList, groupColumn, nonFilteredColumns) =>
              {
                  var result = new DataPortalResult<IFilterList>(new FilterListStub(), null, null);
                  callback(null, result);
              });

            var vm = new SearchViewModelTests.SearchViewModelTest(
              "test", FilterType.ProcessFilter, "", "", QuickFilters.Filter1) { TheDynamicTypeManager = new Lazy<IDynamicTypeManager>(() => dtm.Object) };
            vm.LayoutViewModel = new Lazy<LayoutViewModel>(() => layoutViewModel.Object);
            vm.LayoutViewModel.Value.Model = vm;
            layout.Model = vm;
            layout.ResetLayoutCommand.Execute(null);
        }
예제 #5
0
 private void LineageGroups_FetchCompleted(object sender, DataPortalResult<ReadOnlyLineageGroups> e)
 {
     LineageGroupComboBox.DataContext = e.Object;
 }
예제 #6
0
 private void BranchFetchCompleted(DataPortalResult<ReadOnlyLineages> e)
 {
     myBusyAnimation.IsRunning = false;
     DataSource = e.Object;
     if (CurrentRootLineageId == 0)
         CurrentRootLineageId = LookupRootLineageId();
     //if there's no selected lineage and we're not looking at the home tree (the ultimate root), select the root
     if (!SelectedLineageId.HasValue && CurrentRootLineage.ParentLineageId.HasValue)
         SelectedLineageId = CurrentRootLineageId;
     InitForRoot(CurrentRootLineageId);
 }
예제 #7
0
        public void WhenFileIncludeInCheckListFileNotFound()
        {
            // arrange
            var vm = new FieldFileViewModel();

            var fileProcess = Mock.Create<IFileProcess>(x => x.Implements<ITrackStatus>());
            Mock.Arrange(() => ((ITrackStatus)fileProcess).IsChild).Returns(true);

            Mock.NonPublic.Arrange<IFileProcess>(vm, "CurrentFileProcess").Returns(fileProcess);

            var dynamicManager = Mock.Create<IDynamicTypeManager>();

            var dataPortalResult = new DataPortalResult<IEditableRoot>(null, new Exception(), null);

            Mock.Arrange(() => dynamicManager.BeginGetEditableRoot(Constants.FileProcessName, Arg.AnyInt, Arg.IsAny<Action<object, DataPortalResult<IEditableRoot>>>()))
                .DoInstead<string, int, Action<object, DataPortalResult<IEditableRoot>>>((processName, id, callback) => callback(null, dataPortalResult));

            vm.TheDynamicTypeManager = dynamicManager;

            var logger = Mock.Create<ILogger>(Behavior.CallOriginal);

            var wasLogged = false;
            Mock.Arrange(() => logger.Log(LogSeverity.Error, typeof(FieldFileViewModel).FullName, Arg.IsAny<Exception>())).DoInstead(() => wasLogged = true);

            vm.Logger = logger;

            var privateAccessor = new PrivateAccessor(vm);

            // act
            privateAccessor.CallMethod("SetState");

            // assert
            Assert.AreEqual("File not found", vm.Message);
            Assert.AreEqual(new Exception().ToString(), privateAccessor.GetProperty("ExceptionMessage"));
            Assert.AreEqual(FileControlMode.NotifyFail, vm.CurrentState);
            Assert.IsTrue(wasLogged);

            // arrange
            vm.Message = null;
            vm.CurrentState = FileControlMode.Download;
            wasLogged = false;

            dataPortalResult = new DataPortalResult<IEditableRoot>(Mock.Create<IEditableRoot>(Behavior.Loose), null, null);

            // act
            privateAccessor.CallMethod("SetState");

            // assert
            Assert.AreEqual("File not found", vm.Message);
            Assert.IsNull(privateAccessor.GetProperty("ExceptionMessage"));
            Assert.AreEqual(FileControlMode.NotifyFail, vm.CurrentState);
            Assert.IsTrue(wasLogged);
        }
예제 #8
0
        public void SelectTemplateFileCommand()
        {
            // arrange
            var vm = new FieldFileViewModel
                {
                    SelectedFileTemplateId = 1,
                    TemplateData = new FileProcessAttribute("eCar_p", "DoNotExistingPropertyName", null, null)
                };

            var parentModel = Mock.Create<IEditableRoot>(Behavior.Loose);
            Mock.NonPublic.Arrange<IEditableRoot>(vm, "ParentModel").Returns(parentModel);

            var dynamicManager = Mock.Create<IDynamicTypeManager>(Behavior.CallOriginal);

            var dataPortalResult = new DataPortalResult<IEditableRoot>(null, new Exception(), null);

            Mock.Arrange(() => dynamicManager.BeginGetEditableRoot(Arg.AnyString, 1, Arg.IsAny<Action<object, DataPortalResult<IEditableRoot>>>()))
                .DoInstead<string, int, Action<object, DataPortalResult<IEditableRoot>>>((processName, id, callback) =>
                    callback(null, dataPortalResult));

            vm.TheDynamicTypeManager = dynamicManager;

            var logWasCalled = false;
            var logger = Mock.Create<ILogger>(Behavior.CallOriginal);

            Mock.Arrange(() => logger.Log(LogSeverity.Error, vm.GetType().FullName, Arg.IsAny<Exception>())).DoInstead(() => logWasCalled = true);
            vm.Logger = logger;

            // act
            vm.SelectTemplateFileCommand.Execute(null);

            // assert
            Assert.AreEqual(LanguageService.Translate("Msg_TemplateNotFound"), vm.Message);
            Assert.AreEqual(new Exception().ToString(), new PrivateAccessor(vm).GetProperty("ExceptionMessage"));
            Assert.AreEqual(FileControlMode.NotifyFail, vm.CurrentState);
            Assert.IsTrue(logWasCalled);

            // arrange
            vm.Message = null;
            vm.CurrentState = FileControlMode.Download;
            logWasCalled = false;

            var editableRoot = Mock.Create<IEditableRoot>(Behavior.CallOriginal);
            dataPortalResult = new DataPortalResult<IEditableRoot>(editableRoot, null, null);

            // act
            vm.SelectTemplateFileCommand.Execute(null);

            // assert
            Assert.AreEqual(LanguageService.Translate("Msg_TemplateNotFound"), vm.Message);
            Assert.AreEqual(FileControlMode.NotifyFail, vm.CurrentState);
            Assert.IsFalse(logWasCalled);

            // arrange
            var currentFileProcess = Mock.Create<IFileProcess>(Behavior.Loose);
            currentFileProcess.Locked = true;
            Mock.NonPublic.Arrange<IFileProcess>(vm, "CurrentFileProcess").Returns(currentFileProcess);

            var templateFileProcess = Mock.Create<IFileProcess>(Behavior.Loose);
            templateFileProcess.FileName = "603512C1-87D1-48BA-9C3F-13DA0C9EF5C0.txt";
            templateFileProcess.OriginalFileName = "1.txt";

            Mock.Arrange(() => editableRoot.GetValueByPropertyName(Arg.IsAny<string>())).Returns(templateFileProcess);

            var navigateUriWasRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "NavigateUri").DoInstead(() => { navigateUriWasRaises = true; });

            var templateWasSelectedMessageWasRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "TemplateWasSelectedMessage").DoInstead(() => { templateWasSelectedMessageWasRaises = true; });

            // act
            vm.SelectTemplateFileCommand.Execute(null);

            // act
            Assert.AreEqual("603512C1-87D1-48BA-9C3F-13DA0C9EF5C0.txt", currentFileProcess.FileName);
            Assert.AreEqual("1.txt", currentFileProcess.OriginalFileName);
            Assert.IsFalse(currentFileProcess.Locked.Value);
            Assert.AreEqual(FileControlMode.TemplateWasSelected, vm.CurrentState);
            Assert.IsTrue(navigateUriWasRaises);
            Assert.IsTrue(templateWasSelectedMessageWasRaises);
        }
예제 #9
0
        public void LockCommand()
        {
            // arrange
            var vm = new FieldFileViewModel();

            var value = Mock.Create<IFileProcess>(Behavior.CallOriginal);
            var dataPortalResult = new DataPortalResult<IEditableRoot>(value, null, null);

            var fileProcess = Mock.Create<IFileProcess>(Behavior.Loose);
            Mock.Arrange(() => fileProcess.BeginLock(Arg.IsAny<Action<object, IDataPortalResult>>()))
                .DoInstead<Action<object, IDataPortalResult>>(a => a(null, dataPortalResult));

            Mock.NonPublic.Arrange<IFileProcess>(vm, "CurrentFileProcess").Returns(fileProcess);

            var parentModel = Mock.Create<IEditableRoot>(Behavior.Loose);
            Mock.NonPublic.Arrange<IEditableRoot>(vm, "ParentModel").Returns(parentModel);

            // act
            vm.LockCommand.Execute(null);

            // assert
            Assert.AreEqual(value, vm.Value);
            Assert.AreEqual(FileControlMode.SaveFile, vm.CurrentState);

            // arrange
            dataPortalResult = new DataPortalResult<IEditableRoot>(null, new Exception(), null);

            var logger = Mock.Create<ILogger>(Behavior.CallOriginal);

            var logWasCalled = false;
            Mock.Arrange(() => logger.Log(LogSeverity.Error, typeof(FieldFileViewModel).FullName, Arg.IsAny<Exception>())).DoInstead(() => logWasCalled = true);

            vm.Logger = logger;

            // act
            vm.LockCommand.Execute(null);

            // assert
            Assert.IsTrue(logWasCalled);
        }
        public void OnChecklistInfoLoaded_SetDataProcessName_MethodTest()
        {
            //Mock step edit
            var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal);

            //Create view model
            var vm = new GageRROptionsStepViewModel(stepEditMock, null, null);
            var vmPrivateAccessor = new PrivateAccessor(vm);

            //Arrange
            var fieldInfoMock = Mock.Create<ChecklistFieldInfo>(Behavior.Loose);
            Mock.Arrange(() => fieldInfoMock.CrossRefProcessSystemName).Returns("AnswerProcessSysName");
            var result = new DataPortalResult<ChecklistFieldInfo>(fieldInfoMock, null, null);

            var processInfoMock = Mock.Create<PublishedProcessInfo>(Behavior.Loose);
            Mock.Arrange(() => processInfoMock.SystemName).Returns("AnswerProcessSysName");
            Mock.Arrange(() => vm.AvailableProcesses).Returns(new List<PublishedProcessInfo> { processInfoMock });

            Mock.NonPublic.Arrange(vm, "SetupAnswerProcess", ArgExpr.IsAny<int>()).DoNothing().OccursOnce();
            Mock.NonPublic.Arrange(vm, "LoadAnswerProcessFilters", ArgExpr.IsAny<int>()).DoNothing().OccursOnce();

            //Act: Call OnChecklistInfoLoaded method            
            vmPrivateAccessor.CallMethod("OnChecklistInfoLoaded", result);

            //Assert
            Assert.AreEqual("AnswerProcessSysName", vm.Data.GageRRDataProcessSysName);
            Mock.NonPublic.Assert(vm, "SetupAnswerProcess", ArgExpr.IsAny<int>());
            Mock.NonPublic.Assert(vm, "LoadAnswerProcessFilters", ArgExpr.IsAny<int>());
        }
        public void OnAnswerProcessFieldsRetrieved_Filtering_MethodTest()
        {
            //Mock step edit
            var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal);

            //Create view model
            var vm = new GageRROptionsStepViewModel(stepEditMock, null, null);
            var vmPrivateAccessor = new PrivateAccessor(vm);

            //Arrange            
            var fieldTypeInfo1 = Mock.Create<FieldTypeInfo>(Behavior.Loose);
            Mock.Arrange(() => fieldTypeInfo1.ColumnType).Returns(ColumnTypes.Sample);
            var field1 = Mock.Create<FieldInfo>(Behavior.Loose);
            Mock.Arrange(() => field1.FieldType).Returns(fieldTypeInfo1);

            var fieldTypeInfo2 = Mock.Create<FieldTypeInfo>(Behavior.Loose);
            Mock.Arrange(() => fieldTypeInfo2.ColumnType).Returns(ColumnTypes.String);
            var field2 = Mock.Create<FieldInfo>(Behavior.Loose);
            Mock.Arrange(() => field2.FieldType).Returns(fieldTypeInfo2);

            var fieldTypeInfo3 = Mock.Create<FieldTypeInfo>(Behavior.Loose);
            Mock.Arrange(() => fieldTypeInfo3.ColumnType).Returns(ColumnTypes.Integer);
            var field3 = Mock.Create<FieldInfo>(Behavior.Loose);
            Mock.Arrange(() => field3.FieldType).Returns(fieldTypeInfo3);

            var result = new DataPortalResult<FieldList>(null, null, null);
            Mock.Arrange(() => result.Object).ReturnsCollection(new List<FieldInfo> { field1, field2, field3 });

            //var viewMock = Mock.Create<ICollectionView>();
            //Mock.Arrange(() => viewMock.Refresh()).IgnoreInstance().DoNothing().MustBeCalled();

            //Act: Call OnAnswerProcessFieldsRetrieved method
            vmPrivateAccessor.CallMethod("OnAnswerProcessFieldsRetrieved", result);

            //Assert
            Assert.IsNotNull(vm.AnswerProcessAvailableFields);
            Assert.AreEqual(3, vm.AnswerProcessAvailableFields.Count);

            var view = vm.AnswerProcessSampleFields.View;
            Assert.AreEqual(1, view.CountItems());
            view.MoveCurrentToFirst();
            Assert.AreEqual(ColumnTypes.Sample, ((FieldInfo)view.CurrentItem).FieldType.ColumnType);

            view = vm.AnswerProcessTextFields.View;
            Assert.AreEqual(1, view.CountItems());
            view.MoveCurrentToFirst();
            Assert.AreEqual(ColumnTypes.String, ((FieldInfo)view.CurrentItem).FieldType.ColumnType);

            view = vm.AnswerProcessNumericFields.View;
            Assert.AreEqual(1, view.CountItems());
            view.MoveCurrentToFirst();
            Assert.AreEqual(ColumnTypes.Integer, ((FieldInfo)view.CurrentItem).FieldType.ColumnType);

            //Mock.Assert(() => viewMock.Refresh(), Occurs.Exactly(2));
        }
        public void OnAnswerProcessFieldsRetrieved_FieldValidationFailed_MethodTest()
        {
            //Mock step edit
            var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal);

            //Create view model
            var vm = new GageRROptionsStepViewModel(stepEditMock, null, null);
            var vmPrivateAccessor = new PrivateAccessor(vm);

            //Arrange
            var field1 = Mock.Create<FieldInfo>(Behavior.Loose);
            Mock.Arrange(() => field1.ColumnType).Returns(ColumnTypes.SPCChart);

            var field2 = Mock.Create<FieldInfo>(Behavior.Loose);
            Mock.Arrange(() => field2.ColumnType).Returns(ColumnTypes.Reference);

            var result = new DataPortalResult<FieldList>(null, null, null);
            Mock.Arrange(() => result.Object).ReturnsCollection(new List<FieldInfo> { field1, field2 });

            //var viewMock = Mock.Create<ICollectionView>();
            //Mock.Arrange(() => viewMock.Refresh()).IgnoreInstance().DoNothing().MustBeCalled();

            //Act: Call OnAnswerProcessFieldsRetrieved method
            vmPrivateAccessor.CallMethod("OnAnswerProcessFieldsRetrieved", result);

            //Assert
            Assert.IsNotNull(vm.AnswerProcessAvailableFields);
            Assert.AreEqual(0, vm.AnswerProcessAvailableFields.Count);

            Assert.AreEqual(
                vm.AnswerProcessAvailableFields,
                ((CollectionViewSource)vmPrivateAccessor.GetField("_answerProcessSampleFields")).Source);
            Assert.AreEqual(
                vm.AnswerProcessAvailableFields,
                ((CollectionViewSource)vmPrivateAccessor.GetField("_answerProcessTextFields")).Source);
            Assert.AreEqual(
                vm.AnswerProcessAvailableFields,
                ((CollectionViewSource)vmPrivateAccessor.GetField("_answerProcessNumericFields")).Source);

            //Mock.Assert(() => viewMock.Refresh(), Occurs.Once());
        }
        public void OnFieldListLoaded_Filtering_MethodTest()
        {
            //Mock step edit
            var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Behavior.CallOriginal);

            //Create view model
            var vm = new GageRROptionsStepViewModel(stepEditMock, null, null);
            var vmPrivateAccessor = new PrivateAccessor(vm);

            //Arrange            
            var fieldTypeInfo1 = Mock.Create<FieldTypeInfo>(Behavior.Loose);
            Mock.Arrange(() => fieldTypeInfo1.ColumnType).Returns(ColumnTypes.Numeric);
            var field1 = Mock.Create<FieldInfo>(Behavior.Loose);
            Mock.Arrange(() => field1.FieldType).Returns(fieldTypeInfo1);

            var fieldTypeInfo2 = Mock.Create<FieldTypeInfo>(Behavior.Loose);
            Mock.Arrange(() => fieldTypeInfo2.ColumnType).Returns(ColumnTypes.Checklist);
            var field2 = Mock.Create<FieldInfo>(Behavior.Loose);
            Mock.Arrange(() => field2.FieldType).Returns(fieldTypeInfo2);

            var result = new DataPortalResult<FieldList>(null, null, null);
            Mock.Arrange(() => result.Object).ReturnsCollection(new List<FieldInfo> { field1, field2 });

            //var viewMock = Mock.Create<ICollectionView>();
            //Mock.Arrange(() => viewMock.Refresh()).IgnoreInstance().DoNothing().MustBeCalled();

            //Act: Call OnFieldListLoaded method
            //SelectedChecklistField remains unset
            vmPrivateAccessor.CallMethod("OnFieldListLoaded", result);

            //Assert
            Assert.IsNotNull(vm.SelectedProcessAvailableFields);
            Assert.AreEqual(2, vm.SelectedProcessAvailableFields.Count);

            Assert.AreEqual(
                vm.SelectedProcessAvailableFields,
                ((CollectionViewSource)vmPrivateAccessor.GetField("_selectedProcessChecklistFields")).Source);

            var view = vm.SelectedProcessChecklistFields.View;
            Assert.AreEqual(1, view.CountItems());

            view.MoveCurrentToFirst();
            Assert.AreEqual(ColumnTypes.Checklist, ((FieldInfo)view.CurrentItem).FieldType.ColumnType);
            Assert.IsNull(vm.SelectedChecklistField);


            //Arrange
            Mock.Arrange(() => field2.SystemName).Returns("ChecklistFieldSystemName");
            vm.Data.ChecklistFieldName = "ChecklistFieldSystemName";

            //Act: Call OnFieldListLoaded method
            //SelectedChecklistField gets the value
            vmPrivateAccessor.CallMethod("OnFieldListLoaded", result);

            //Assert
            Assert.IsNotNull(vm.SelectedChecklistField);
            Assert.AreEqual(field2, vm.SelectedChecklistField);

            //Mock.Assert(() => viewMock.Refresh(), Occurs.Exactly(2));
        }
예제 #14
0
        private void OnFieldRemoved(DataPortalResult<AllowFieldRemoveCommand> e)
        {
            this.ThePopupFactory.HidePopup();

            if (e.Error == null)
            {
                if (string.IsNullOrEmpty(e.Object.DependendProcesses))
                {
                    this.RemoveField(this.SelectedField);
                    this.RaisePropertyChanged(() => this.HaseBaseFieldsOnly);
                }
                else
                {
                    var message = string.Format(LanguageService.Translate("Msg_FieldInUse"), this.SelectedField.Name, Environment.NewLine, e.Object.DependendProcesses);

                    this.ThePopupFactory.Popup().SetPosition(PopupPosition.Center).Message(message).SetCaption(LanguageService.Translate("Msg_Warning")).SetIsModal(true).Show();
                }
            }
            else
            {
                this.ThePopupFactory.NotifyFailure(e.Error.Message, LanguageService.Translate("Popup_Error"), 5);
            }
        }
예제 #15
0
파일: Page.xaml.cs 프로젝트: Jaans/csla
 private void FetchComplete(object sender, DataPortalResult<ChildList> result)
 {
     this.DataContext = result.Object;
        //  BindDetails();
 }
예제 #16
0
        /// <summary>
        /// Called by <see cref="DataPortal" /> to create a
        /// new business object.
        /// </summary>
        /// <param name="objectType">Type of business object to create.</param>
        /// <param name="criteria">Criteria object describing business object.</param>
        /// <param name="context">
        /// <see cref="Server.DataPortalContext" /> object passed to the server.
        /// </param>
        /// <param name="isSync">True if the client-side proxy should synchronously invoke the server.</param>
        public async Task <DataPortalResult> Create(Type objectType, object criteria, DataPortalContext context, bool isSync)
        {
#if !SILVERLIGHT && !NETFX_CORE
            ChannelFactory <IWcfPortal> cf = GetChannelFactory();
            var         proxy    = GetProxy(cf);
            WcfResponse response = null;
#if NET40
            try
            {
                var request = new CreateRequest(objectType, criteria, context);
                if (isSync)
                {
                    response = proxy.Create(request);
                }
                else
                {
                    var worker = new Csla.Threading.BackgroundWorker();
                    var tcs    = new TaskCompletionSource <WcfResponse>();
                    worker.RunWorkerCompleted += (o, e) =>
                    {
                        tcs.SetResult((WcfResponse)e.Result);
                    };
                    worker.DoWork += (o, e) =>
                    {
                        e.Result = proxy.Create(request);
                    };
                    worker.RunWorkerAsync();
                    response = await tcs.Task;
                }
                if (cf != null)
                {
                    cf.Close();
                }
                object result = response.Result;
                if (result is Exception)
                {
                    throw (Exception)result;
                }
                return((DataPortalResult)result);
            }
            catch
            {
                cf.Abort();
                throw;
            }
#else
            try
            {
                var request = new CreateRequest(objectType, criteria, context);
                if (isSync)
                {
                    response = proxy.Create(request);
                }
                else
                {
                    response = await proxy.CreateAsync(request);
                }
                if (cf != null)
                {
                    cf.Close();
                }
            }
            catch
            {
                cf.Abort();
                throw;
            }
            object result = response.Result;
            if (result is Exception)
            {
                throw (Exception)result;
            }
            return((DataPortalResult)result);
#endif
#else
            var request = GetBaseCriteriaRequest();
            request.TypeName = objectType.AssemblyQualifiedName;
            if (!(criteria is IMobileObject))
            {
                criteria = new PrimitiveCriteria(criteria);
            }
            request.CriteriaData = MobileFormatter.Serialize(criteria);
            request = ConvertRequest(request);

            var proxy = GetProxy();
            DataPortalResult result = null;
#if !NETFX_CORE
            var tcs = new TaskCompletionSource <DataPortalResult>();
            proxy.CreateCompleted += (s, e) =>
            {
                try
                {
                    Csla.WcfPortal.WcfResponse response = null;
                    if (e.Error == null)
                    {
                        response = ConvertResponse(e.Result);
                    }
                    ContextDictionary globalContext = null;
                    if (response != null)
                    {
                        globalContext = (ContextDictionary)MobileFormatter.Deserialize(response.GlobalContext);
                    }
                    if (e.Error == null && response != null && response.ErrorData == null)
                    {
                        var obj = MobileFormatter.Deserialize(response.ObjectData);
                        result = new DataPortalResult(obj, null, globalContext);
                    }
                    else if (response != null && response.ErrorData != null)
                    {
                        var ex = new DataPortalException(response.ErrorData);
                        result = new DataPortalResult(null, ex, globalContext);
                    }
                    else
                    {
                        result = new DataPortalResult(null, e.Error, globalContext);
                    }
                }
                catch (Exception ex)
                {
                    result = new DataPortalResult(null, ex, null);
                }
                finally
                {
                    tcs.SetResult(result);
                }
            };
            proxy.CreateAsync(request);
            var finalresult = await tcs.Task;
            if (finalresult.Error != null)
            {
                throw finalresult.Error;
            }
            return(finalresult);
#else
            try
            {
                var response = await proxy.CreateAsync(request);

                response = ConvertResponse(response);
                if (response == null)
                {
                    throw new DataPortalException("null response", null);
                }
                var globalContext = (ContextDictionary)MobileFormatter.Deserialize(response.GlobalContext);
                if (response.ErrorData == null)
                {
                    var obj = MobileFormatter.Deserialize(response.ObjectData);
                    result = new DataPortalResult(obj, null, globalContext);
                }
                else
                {
                    var ex = new DataPortalException(response.ErrorData);
                    result = new DataPortalResult(null, ex, globalContext);
                }
            }
            catch (Exception ex)
            {
                result = new DataPortalResult(null, ex, null);
            }
            if (result.Error != null)
            {
                throw result.Error;
            }
            return(result);
#endif
#endif
        }
        public void OnRefreshed()
        {
            // arrange
            var vm = new CalendarDetailsViewModel();

            var unitOfWork = Mock.Create<IUnitOfWork<ICalendar>>(Behavior.Loose);

            var calendar = Mock.Create<ICalendar>(Behavior.Loose);

            var interval = Mock.Create<ICalendarWorkingInterval>(Behavior.Loose);
            interval.Weekday = DayOfWeek.Friday.ToString();
            var intervalList = new List<ICalendarWorkingInterval> { interval };
            Mock.Arrange(() => calendar.WorkingIntervals).Returns(intervalList);

            Mock.Arrange(() => unitOfWork.Model).Returns(calendar);

            var dataportalResult = new DataPortalResult<IUnitOfWork<ICalendar>>(unitOfWork, null, null);

            var shell = Mock.Create<IShell>(Behavior.CallOriginal);
            var baseMethodWasCalled = false;
            Mock.Arrange(() => shell.ShowStatus(Arg.IsAny<Status>(), false)).DoInstead(() => baseMethodWasCalled = true);

            vm.WindowManager = new Lazy<IShell>(() => shell);

            // act
            var privateAccessor = new PrivateAccessor(vm);
            privateAccessor.CallMethod("OnRefreshed", new object[] { null, dataportalResult });

            // assert
            Assert.AreEqual(DayOfWeek.Friday, vm.SelectedDayOfWeek);
            CollectionAssert.AreEqual(intervalList, (List<ICalendarWorkingInterval>)vm.WorkingIntervals.Source);
            Assert.IsTrue(baseMethodWasCalled);

            // arrange
            baseMethodWasCalled = false;
            Mock.Arrange(() => calendar.IsNew).Returns(true);
            ((IList<ICalendarWorkingInterval>)vm.WorkingIntervals.Source).Clear();

            // act
            privateAccessor.CallMethod("OnRefreshed", new object[] { null, dataportalResult });

            // assert
            Assert.AreEqual(DayOfWeek.Sunday, vm.SelectedDayOfWeek);
            CollectionAssert.AreEqual(intervalList, (List<ICalendarWorkingInterval>)vm.WorkingIntervals.Source);
            Assert.IsTrue(baseMethodWasCalled);

            // arrange
            baseMethodWasCalled = false;
            dataportalResult = new DataPortalResult<IUnitOfWork<ICalendar>>(null, new Exception(), null);

            var loggerWasCalled = false;
            var logger = new ClientLogger();
            Mock.Arrange(() => logger.Log(LogSeverity.Error, typeof(CalendarDetailsViewModel).ToString(), Arg.IsAny<Exception>())).DoInstead(() => loggerWasCalled = true);

            vm.Logger = logger;

            var popupMock = PopupMock.Create().NotifyFailureMustBeCalled(Arg.IsAny<Exception>());
            vm.ThePopupFactory = popupMock.TheLazyPopupFactory;

            // act
            privateAccessor.CallMethod("OnRefreshed", new object[] { null, dataportalResult });

            // assert
            Assert.IsTrue(loggerWasCalled);
            popupMock.AssertNotifyFailureCalled();
            Assert.IsTrue(baseMethodWasCalled);
        }
예제 #18
0
        public void MoveCurrentTo()
        {
            var vm = GetNewSearchListVm();
            IInfoList iInfoList = new DetailsViewModelTests.InfoList();
            var result = new DataPortalResult<IInfoList>(iInfoList, null, null);
            var list = new CollectionViewSource { Source = result.Object };
            var collectionView = list.View;
            Mock.Arrange(() => vm.InfoListViewSource).Returns(collectionView);

            var infoClass0 = Mock.Create<IInfoClass>();
            var infoClass1 = Mock.Create<IInfoClass>();
            var infoClass2 = Mock.Create<IInfoClass>();
            Mock.Arrange(() => infoClass0.Id).Returns(0);
            Mock.Arrange(() => infoClass1.Id).Returns(1);
            Mock.Arrange(() => infoClass2.Id).Returns(2);

            var infoList = new List<IInfoClass>
            {
                infoClass0, 
                infoClass1, 
                infoClass2
            };

            Mock.Arrange(() => collectionView.SourceCollection).Returns(infoList);

            collectionView.Refresh();

            vm.MoveCurrentTo(0);
            Assert.AreEqual(0, vm.CurrentPosition);
            vm.MoveCurrentTo(1);
            Assert.AreEqual(1, vm.CurrentPosition);
            vm.MoveCurrentTo(2);
            Assert.AreEqual(2, vm.CurrentPosition);
        }
예제 #19
0
        public void UnlockCommand()
        {
            // arrange
            var vm = new FieldFileViewModel();

            var value = Mock.Create<IFileProcess>(Behavior.Loose);
            var dataPortalResult = new DataPortalResult<IEditableRoot>(value, null, null);

            var fileProcess = Mock.Create<IFileProcess>(Behavior.Loose);
            Mock.Arrange(() => fileProcess.BeginUnlock(Arg.IsAny<Action<object, IDataPortalResult>>()))
                .DoInstead<Action<object, IDataPortalResult>>(a => a(null, dataPortalResult));

            Mock.NonPublic.Arrange<IFileProcess>(vm, "CurrentFileProcess").Returns(fileProcess);

            var parentModel = Mock.Create<IEditableRoot>(Behavior.Loose);
            Mock.NonPublic.Arrange<IEditableRoot>(vm, "ParentModel").Returns(parentModel);

            // act
            vm.UnlockCommand.Execute(null);

            // assert
            Assert.AreEqual(value, vm.Value);
            Assert.AreEqual(FileControlMode.Unlocked, vm.CurrentState);
        }
예제 #20
0
        public void GetNextItemAndGetPreviousItem()
        {
            var vm = GetNewSearchListVm();
            IInfoList iInfoList = new DetailsViewModelTests.InfoList();
            var result = new DataPortalResult<IInfoList>(iInfoList, null, null);
            var list = new CollectionViewSource { Source = result.Object };
            var collectionView = list.View;
            Mock.Arrange(() => vm.InfoListViewSource).Returns(collectionView);
            vm.TotalRowCount = 3;

            var infoClass0 = Mock.Create<IInfoClass>();
            var infoClass1 = Mock.Create<IInfoClass>();
            var infoClass2 = Mock.Create<IInfoClass>();
            Mock.Arrange(() => infoClass0.Id).Returns(0);
            Mock.Arrange(() => infoClass1.Id).Returns(1);
            Mock.Arrange(() => infoClass2.Id).Returns(2);

            var infoList = new List<IInfoClass>
            {
                infoClass0, 
                infoClass1, 
                infoClass2
            };
            Mock.Arrange(() => collectionView.SourceCollection).Returns(infoList);

            Mock.Arrange(() => vm.GoToDetails()).DoNothing();

            collectionView.Refresh();
            vm.SelectedItem = infoClass0;

            vm.MoveNextItem();
            Assert.AreEqual(infoClass1, vm.SelectedItem);
            vm.MoveNextItem();
            Assert.AreEqual(infoClass2, vm.SelectedItem);
            vm.MoveNextItem();
            Assert.AreEqual(infoClass2, vm.SelectedItem);


            vm.MovePrevItem();
            Assert.AreEqual(infoClass1, vm.SelectedItem);
            vm.MovePrevItem();
            Assert.AreEqual(infoClass0, vm.SelectedItem);
            vm.MovePrevItem();
            Assert.AreEqual(infoClass0, vm.SelectedItem);
        }
예제 #21
0
        public void Save()
        {
            // arrange
            var vm = new FieldFileViewModel();

            var fileProcess = Mock.Create<IFileProcess>(Behavior.Loose);
            fileProcess.OriginalFileName = "1.txt";
            Mock.NonPublic.Arrange<IFileProcess>(vm, "CurrentFileProcess").Returns(fileProcess);

            var newValue = Mock.Create<IFileProcess>(Behavior.Loose);

            var dataPortalResult = new DataPortalResult<IFileProcess>(newValue, null, null);
            Mock.Arrange(() => fileProcess.BeginSaveNew(Arg.IsAny<Action<object, IDataPortalResult>>()))
                .DoInstead<Action<object, IDataPortalResult>>(a => a(null, dataPortalResult));

            var privateAccessor = new PrivateAccessor(vm);

            // act
            privateAccessor.CallMethod("Save");

            // assert
            Assert.AreEqual(newValue, vm.Value);
            Assert.AreEqual("File '1.txt' uploaded successfully.", vm.Message);

            Assert.AreEqual(FileControlMode.NotifySuccess, privateAccessor.GetField("_previousState"));

            // arrange
            dataPortalResult = new DataPortalResult<IFileProcess>(null, new Exception(), null);

            // act
            privateAccessor.CallMethod("Save");

            // assert
            Assert.AreEqual("Error uploading file.", vm.Message);
            Assert.AreEqual(new Exception().ToString(), privateAccessor.GetProperty("ExceptionMessage"));
            Assert.AreEqual(FileControlMode.NotifyFail, privateAccessor.GetField("_previousState"));

            // arrange
            fileProcess.Id = 1;
            vm.Value = null;

            dataPortalResult = new DataPortalResult<IFileProcess>(newValue, null, null);

            Mock.Arrange(() => fileProcess.BeginUnlock(Arg.IsAny<Action<object, IDataPortalResult>>()))
                .DoInstead<Action<object, IDataPortalResult>>(a => a(null, dataPortalResult));

            // act
            privateAccessor.CallMethod("Save");

            // assert
            Assert.AreEqual(newValue, vm.Value);
            Assert.AreEqual("File '1.txt' uploaded successfully.", vm.Message);
            Assert.AreEqual(FileControlMode.NotifySuccess, vm.CurrentState);

            // arrange
            vm.Message = null;
            privateAccessor.SetProperty("ExceptionMessage", null);

            dataPortalResult = new DataPortalResult<IFileProcess>(null, new Exception(), null);

            var logger = Mock.Create<ILogger>(Behavior.CallOriginal);

            var logWasCalled = false;
            Mock.Arrange(() => logger.Log(LogSeverity.Error, typeof(FieldFileViewModel).ToString(), Arg.IsAny<Exception>())).DoInstead(() => logWasCalled = true);

            vm.Logger = logger;

            // act
            privateAccessor.CallMethod("Save");

            // assert
            Assert.AreEqual(string.Format(@"Error saving instance of new uploaded file{0}Please try again{0}If the problem persists, try to create a new record, and re-check the System Options\System Paths", Environment.NewLine), vm.Message);
            Assert.AreEqual(new Exception().ToString(), privateAccessor.GetProperty("ExceptionMessage"));
            Assert.AreEqual(FileControlMode.NotifyFail, vm.CurrentState);
            Assert.IsTrue(logWasCalled);
        }
예제 #22
0
        private void Callback(object sender, DataPortalResult<SendEmailCommand> e)
        {
            if (e.Error != null)
                ThePopupFactory.NotifyFailure(e.Error);
            else
                ThePopupFactory.NotifySuccess("Connection successful!");

        }
예제 #23
0
        public void TemplateState()
        {
            // arrange
            var vm = new FieldFileViewModel
                {
                    TemplateData = new FileProcessAttribute("eCar_p", "DocumentType_f", "92EC314E-B4E2-4738-B965-21A363C12BC8", @"{
  ""FilterGuid"": ""3732f424-216c-4fab-a2dc-a50c405512c3"",
  ""TimeStamp"": ""09/20/2013 15:05:08"",
  ""Version"": ""100.1"",
  ""Body"": {
    ""ColumnName"": ""Notes_f"",
    ""Operator"": ""IsEqualTo"",
    ""Value"": ""%{\""Type\"":\""Udp\"",\""DisplayName\"":\""Value for Notes:\"",\""SystemName\"":\""Notes_f\"",\""DefaultValue\"":\""\""}%"",
    ""MemberType"": ""System.String""
  }
}")
                };

            var fileProcess = Mock.Create<IFileProcess>(x => x.Implements<ITrackStatus>());
            Mock.Arrange(() => fileProcess.IsNew).Returns(true);
            fileProcess.Locked = true;

            Mock.NonPublic.Arrange<IFileProcess>(vm, "CurrentFileProcess").Returns(fileProcess);

            var dynamicManager = Mock.Create<IDynamicTypeManager>(Behavior.Loose);

            var dataPortalResult = new DataPortalResult<IInfoList>(null, new Exception(), null);

            Mock.Arrange(() => dynamicManager.BeginGetList(Arg.AnyString, Arg.IsAny<Action<object, DataPortalResult<IInfoList>>>(), Arg.IsAny<SortList>(), Arg.AnyInt, Arg.AnyString, Arg.AnyInt, Arg.AnyString, Arg.AnyString, Arg.IsAny<IEnumerable<string>>()))
                .DoInstead<string, Action<object, DataPortalResult<IInfoList>>, SortList, int, string, int, string, string, IEnumerable<string>>(
                    (processSystemName, callback, sortList, pageSize, filterString, pageNumber, groupColumn, filterExpression, noFilteredColumns) => callback(null, dataPortalResult));

            vm.TheDynamicTypeManager = dynamicManager;

            var privateAccessor = new PrivateAccessor(vm);

            // act
            privateAccessor.CallMethod("SetState");

            // assert
            Assert.AreEqual(LanguageService.Translate("Msg_TemplateNotFound"), vm.Message);
            Assert.AreEqual(FileControlMode.NotifyFail, vm.CurrentState);

            // arrange
            dataPortalResult = new DataPortalResult<IInfoList>(new CustomInfoList(), null, null);

            // act
            privateAccessor.CallMethod("SetState");

            // assert
            Assert.IsNotNull(vm.TemplateList);
            Assert.AreEqual(FileControlMode.LoadTemplate, vm.CurrentState);

            // arrange
            vm.TemplateList = null;
            vm.CurrentState = FileControlMode.Download;

            vm.TemplateData = new FileProcessAttribute("eCar_p", "DocumentType_f", null, null);

            // act
            privateAccessor.CallMethod("SetState");

            // assert
            Assert.IsNotNull(vm.TemplateList);
            Assert.AreEqual(FileControlMode.LoadTemplate, vm.CurrentState);

            // arrange
            vm.TemplateList = null;
            vm.CurrentState = FileControlMode.Download;

            vm.TemplateData = new FileProcessAttribute("eCar_p", "DocumentType_f", "CC5899F0-015C-4666-8F18-EFF073D99DE5", null);

            Mock.Arrange(() => dynamicManager.GetFilterInfoType(Arg.AnyString)).Returns((Type)null);

            // act
            privateAccessor.CallMethod("SetState");

            // assert
            Assert.IsNotNull(vm.TemplateList);
            Assert.AreEqual(FileControlMode.LoadTemplate, vm.CurrentState);

            // arrange
            vm.TemplateList = null;
            vm.CurrentState = FileControlMode.Download;

            Mock.Arrange(() => dynamicManager.GetFilterInfoType(Arg.AnyString)).Returns(new InfoList().GetType());

            // act
            privateAccessor.CallMethod("SetState");

            // assert
            Assert.IsNotNull(vm.TemplateList);
            Assert.AreEqual(FileControlMode.LoadTemplate, vm.CurrentState);

            // arrange
            vm.TemplateList = null;
            vm.CurrentState = FileControlMode.Download;

            InfoList.FilterList = new Filter[1];
            InfoList.FilterList[0] = new Filter("Only Approved Items", Guid.NewGuid(), string.Empty);

            var parentModel = Mock.Create<IModel>(Behavior.Loose);
            Mock.Arrange(() => parentModel.CanWriteProperty(Arg.AnyString)).Returns(true);
            Mock.Arrange(() => vm.ParentModel).Returns(parentModel);
            vm.Property = ReflectionHelper.GetProperty<IModel>(x => x.File);

            Mock.Arrange(() => dynamicManager.GetFilterInfoType(Arg.AnyString)).Returns(new InfoList().GetType());

            // act
            privateAccessor.CallMethod("SetState");

            // assert
            Assert.IsNull(vm.TemplateList);
            Assert.AreNotEqual(FileControlMode.LoadTemplate, vm.CurrentState);

            // arrange
            InfoList.FilterList[0] = new Filter("Only Approved Items", Guid.Parse("CC5899F0-015C-4666-8F18-EFF073D99DE5"), string.Empty);

            // act
            privateAccessor.CallMethod("SetState");

            // assert
            Assert.IsNotNull(vm.TemplateList);
            Assert.AreEqual(FileControlMode.LoadTemplate, vm.CurrentState);
        }
예제 #24
0
        public void AcknowledgeCollapseTest()
        {
            var actionManagerVM = Mock.Create<ActionManagerViewModel>();

            var actionItemInfo = new ActionItemInfo(
                123,
                "ProcessName",
                "7FA27365-AF0A-4F98-A927-368D21A8175A",
                321,
                "Name",
                "Subject",
                "Message",
                ActionTypes.Approval,
                "GroupName",
                DateTime.MinValue,
                true,
                false);

            var vm = new ActionItemViewModel();

            var dynamicManagerMock = Mock.Create<IDynamicTypeManager>();

            Mock.Arrange(() => dynamicManagerMock.BeginGetEditableRoot(Constants.ActionItemsProcessName, 1, Arg.IsAny<Action<object, DataPortalResult<IEditableRoot>>>()))
                .DoInstead<string, int, Action<object, DataPortalResult<IEditableRoot>>>(
                    (processName, id, callback) =>
                        {
                            var result = new DataPortalResult<IEditableRoot>(null, null, null);
                            callback(null, result);
                        });

            vm.DynamicManager = dynamicManagerMock;

            vm.Initialize(actionItemInfo, actionManagerVM);

            Assert.AreEqual(Visibility.Visible, vm.AcknowledgeCollapse);

            actionItemInfo = new ActionItemInfo(
                123,
                "ProcessName",
                "7FA27365-AF0A-4F98-A927-368D21A8175A",
                321,
                "Name",
                "Subject",
                "Message",
                ActionTypes.Assignment,
                "GroupName",
                DateTime.MinValue,
                true,
                false);

            vm.Initialize(actionItemInfo, actionManagerVM);

            Assert.AreEqual(Visibility.Collapsed, vm.AcknowledgeCollapse);
        }
예제 #25
0
 private void LineagesCache_FetchLineagesCompleted(object sender, DataPortalResult<ReadOnlyLineages> e)
 {
     BranchFetchCompleted(e);
 }
예제 #26
0
        public void OpenScreenCommandTest()
        {
            var actionManagerVM = Mock.Create<ActionManagerViewModel>();

            var actionItemInfo = new ActionItemInfo(
                123,
                "ProcessName",
                "7FA27365-AF0A-4F98-A927-368D21A8175A",
                321,
                "Name",
                "Subject",
                "Message",
                ActionTypes.Approval,
                "GroupName",
                DateTime.MinValue,
                true,
                false);

            var detailsMock = Mock.Create<IDetailsViewModel>();
            var shellMock = Mock.Create<IShell>();

            var vm = new ActionItemViewModel
                         {
                             DetailsViewModelFactory = new ExportFactory<IDetailsViewModel>(() => new Tuple<IDetailsViewModel, Action>(detailsMock, () => { })),
                             WindowManager = shellMock
                         };

            var dynamicManagerMock = Mock.Create<IDynamicTypeManager>();

            Mock.Arrange(() => dynamicManagerMock.BeginGetEditableRoot(Constants.ActionItemsProcessName, 1, Arg.IsAny<Action<object, DataPortalResult<IEditableRoot>>>()))
                .DoInstead<string, int, Action<object, DataPortalResult<IEditableRoot>>>(
                    (processName, id, callback) =>
                        {
                            var result = new DataPortalResult<IEditableRoot>(null, null, null);
                            callback(null, result);
                        });

            vm.DynamicManager = dynamicManagerMock;

            vm.Initialize(actionItemInfo, actionManagerVM);
            vm.IsDetailOpen = true;

            vm.OpenScreenCommand.Execute(null);

            Assert.IsFalse(vm.IsDetailOpen);
            Mock.Assert(() => detailsMock.Refresh(actionItemInfo.ProcessName, actionItemInfo.ItemId), Occurs.Once());
            Mock.Assert(() => shellMock.ShowTaskWindow(detailsMock, true), Occurs.Once());
        }
예제 #27
0
 private void Lineage_FetchForBindCompleted(object sender, DataPortalResult<Lineage> e)
 {
     lineageIdBeingFetched = null;
     if (e.Error != null)
         throw e.Error;
     DataSource = e.Object;
     IsBusy = false;
 }
예제 #28
0
        public void InitializeTest()
        {
            var actionManagerVM = Mock.Create<ActionManagerViewModel>();

            var actionItemInfo = new ActionItemInfo(123,
                                                    "ProcessName",
                                                    "7FA27365-AF0A-4F98-A927-368D21A8175A",
                                                    321,
                                                    "Name",
                                                    "Subject",
                                                    "Message",
                                                    ActionTypes.Approval,
                                                    "GroupName",
                                                    new DateTime(2012, 1, 16),
                                                    true,
                                                    false);

            var vm = new ActionItemViewModel();
            var changedProperties = new List<string>();

            vm.PropertyChanged += (o, e) => changedProperties.Add(e.PropertyName);

            var dynamicManagerMock = Mock.Create<IDynamicTypeManager>();

            Mock.Arrange(() => dynamicManagerMock.BeginGetEditableRoot(Constants.ActionItemsProcessName, 1, Arg.IsAny<Action<object, DataPortalResult<IEditableRoot>>>()))
                .DoInstead<string, int, Action<object, DataPortalResult<IEditableRoot>>>(
                    (processName, id, callback) =>
                        {
                            var result = new DataPortalResult<IEditableRoot>(null, null, null);
                            callback(null, result);
                        });

            vm.DynamicManager = dynamicManagerMock;

            vm.Initialize(actionItemInfo, actionManagerVM);

            Assert.AreSame(actionItemInfo, vm.Model);
            Assert.AreSame(actionManagerVM, vm.ParentViewModel);
            Assert.AreEqual(actionItemInfo.Subject, vm.Subject);
            Assert.AreEqual(actionItemInfo.Message, vm.Description);
            Assert.AreEqual(actionItemInfo.GroupName, vm.GroupName);
            Assert.AreEqual(actionItemInfo.DueDate, vm.DueDate);
            Assert.AreEqual(actionItemInfo.IsActionNew, vm.IsActionNew);

            Assert.IsTrue(changedProperties.Contains("Model"));
            Assert.IsTrue(changedProperties.Contains("AcknowledgeVisible"));
            Assert.IsTrue(changedProperties.Contains("AcknowledgeCollapse"));
            Assert.IsTrue(changedProperties.Contains("Subject"));
            Assert.IsTrue(changedProperties.Contains("Description"));
            Assert.IsTrue(changedProperties.Contains("GroupName"));
            Assert.IsTrue(changedProperties.Contains("DueDate"));
            Assert.IsTrue(changedProperties.Contains("IsLate"));
            Assert.IsTrue(changedProperties.Contains("IsActionNew"));
        }
 private void HtmlContentNameValues_FetchCompleted(object sender, DataPortalResult<HtmlContentNameValues> e)
 {
     HcNamesComboBox.ItemsSource = e.Object;
     IsBusy = false;
 }
예제 #30
0
        private void OnItemsLoaded(object sender, DataPortalResult<IList> result)
        {
            IsBusy = false;

            if (result.Error != null)
            {
                Logger.Log(LogSeverity.Error, GetType().FullName, result.Error);
                PopupFactory.NotifyFailure(result.Error);

                return;
            }

            try
            {
                IsPopulatingNewPageItems = true;

                Items = result.Object;

                foreach (var item in Items.Cast<ICrossRefItemInfo>())
                {
                    var oldItem = SelectedItems.Cast<ICrossRefItemInfo>().FirstOrDefault(x => x.Id == item.Id);

                    if (oldItem == null)
                        continue;

                    var index = SelectedItems.IndexOf(oldItem);

                    SelectedItems[index] = item;
                }

                var itemCount = Items.GetType().GetProperty(Constants.TotalRowCountPropertyName);
                if (itemCount != null)
                    ItemCount = (int)itemCount.GetValue(Items, BindingFlags.Instance, null, null, null);

                var pageIndexProperty = Items.GetType().GetProperty(Constants.PageNumberPropertyName);
                if (pageIndexProperty != null)
                    PageIndex = (int)pageIndexProperty.GetValue(Items, BindingFlags.Instance, null, null, null);
            }
            finally
            {
                IsPopulatingNewPageItems = false;
            }
        }
        public void OnRefreshed()
        {
            // arrange
            var vm = new FrequencyPatternDetailsViewModel();

            var unitOfWork = Mock.Create<IUnitOfWork<IFrequencyPattern>>(Behavior.Loose);
            var model = Mock.Create<IFrequencyPattern>(Behavior.Loose);
            Mock.Arrange(() => model.IsNew).Returns(true);
            Mock.Arrange(() => unitOfWork.Model).Returns(model);

            var dataportalResult = new DataPortalResult<IUnitOfWork<IFrequencyPattern>>(unitOfWork, null, null);

            var shell = Mock.Create<IShell>(Behavior.CallOriginal);
            var baseMethodWasCalled = false;
            Mock.Arrange(() => shell.ShowStatus(Arg.IsAny<Status>(), false)).DoInstead(() => baseMethodWasCalled = true);
            vm.WindowManager = new Lazy<IShell>(() => shell);

            // act
            var privateAccessor = new PrivateAccessor(vm);
            privateAccessor.CallMethod("OnRefreshed", new object[] { null, dataportalResult });
            
            // assert
            Assert.AreEqual(model, vm.Model);
            Assert.AreEqual(FrequencyPatternType.Daily.ToString(), model.PatternType);

            // daily
            Assert.AreEqual(DailyPatternVariant.NumberOfDays.ToString(), model.DailyPatternOption);
            Assert.AreEqual(1, model.DailyPatternDaysToRecur);

            // weekly
            Assert.AreEqual(1, model.WeeklyPatternWeeksToRecur);
            Assert.AreEqual(false, model.IsSundaySelected);
            Assert.AreEqual(false, model.IsMondaySelected);
            Assert.AreEqual(false, model.IsTuesdaySelected);
            Assert.AreEqual(false, model.IsWednesdaySelected);
            Assert.AreEqual(false, model.IsThursdaySelected);
            Assert.AreEqual(false, model.IsFridaySelected);
            Assert.AreEqual(false, model.IsSaturdaySelected);

            // monthly
            Assert.AreEqual(MonthlyPatternVariant.DayByDate.ToString(), model.MonPatOption);
            Assert.AreEqual(1, model.MonPatRecurDate);
            Assert.AreEqual(1, model.MonPatByDateOptionMonthsToRec);
            Assert.AreEqual(TimeIntervalPosition.First.ToString(), model.MonPatTimeIntervalPosition);
            Assert.AreEqual(1, model.MonPatByPositionOptionMonToRec);
            Assert.AreEqual(1, model.MonPatMonthsToRec);
            Assert.AreEqual(DayofWeek.Saturday.ToString(), model.MonPatDayOfWeek);

            // yearly
            Assert.AreEqual(1, model.YearPatYearsToRec);
            Assert.AreEqual(YearlyPatternVariant.DayByDate.ToString(), model.YearPatOption);
            Assert.AreEqual(Month.January.ToString(), model.YearPatByDateOptionSelectMon);
            Assert.AreEqual(1, model.YearPatDayOfSelectMon);
            Assert.AreEqual(TimeIntervalPosition.First.ToString(), model.YearPatTimeIntervalPosition);
            Assert.AreEqual(DayofWeek.Saturday.ToString(), model.YearPatDayOfWeek);
            Assert.AreEqual(Month.January.ToString(), model.YearPatByNameOptionSelectMon);

            Assert.IsTrue(baseMethodWasCalled);

            // arrange
            baseMethodWasCalled = false;
            dataportalResult = new DataPortalResult<IUnitOfWork<IFrequencyPattern>>(null, new Exception(), null);

            var loggerWasCalled = false;
            var logger = new ClientLogger();
            Mock.Arrange(() => logger.Log(LogSeverity.Error, typeof(FrequencyPatternDetailsViewModel).ToString(), Arg.IsAny<Exception>())).DoInstead(() => loggerWasCalled = true);

            vm.Logger = logger;

            var popupMock = PopupMock.Create().NotifyFailureMustBeCalled(Arg.IsAny<Exception>());
            vm.ThePopupFactory = popupMock.TheLazyPopupFactory;

            // act
            privateAccessor.CallMethod("OnRefreshed", new object[] { null, dataportalResult });

            // assert
            Assert.IsTrue(loggerWasCalled);
            popupMock.AssertNotifyFailureCalled();
            Assert.IsTrue(baseMethodWasCalled);
        }
예제 #32
0
        private void QueryCompleted(object sender, EventArgs e)
        {
            DataPortalResult <T> result = (DataPortalResult <T>)e;

            _onCompletedQuery(result, _isCanceled);
        }