public void ScheduledResourceModel_Constructor_ShouldSelectedCorrectResourcesWithId()
        {
            SetupSingleTaskWithId();
            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object, @"c:\", _wrapper.Object, a => a.WorkflowName);

            Assert.AreEqual(1, model.ScheduledResources.Count);
        }
        public void ScheduledResourceModel_HistoryTestDebugCreated_StatusFailureIfDebugHasError()
        {
            //setup
            var log = new MockTaskEventLog
            {
                new MockTaskEvent(Guid.NewGuid(), 12, "Task Started", new DateTime(2000, 1, 1), "12345", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 12, "2", new DateTime(2001, 1, 1), "12346", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 12, "3", new DateTime(2002, 1, 1), "12347", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 12, "Task Completed", new DateTime(2003, 1, 1), "12348", "dave")
            };
            // this should return two history items without any debug output
            var mockDirectory = new Mock <IDirectory>();
            var fileHelper    = new Mock <IFile>();
            var res           = new Mock <IScheduledResource>();

            //expectations
            mockDirectory.Setup(a => a.GetFiles(@"c:\")).Returns(new[] { "b_12345_Bob" });
            fileHelper.Setup(a => a.ReadAllText("b_12345_Bob"))
            .Returns("[{\"$type\":\"Dev2.Diagnostics.Debug.DebugState, Dev2.Diagnostics\",\"ID\":\"05d4e815-61bf-49ad-b46c-b6f0e0e2e839\",\"ParentID\":\"00000000-0000-0000-0000-000000000000\",\"ServerID\":\"00000000-0000-0000-0000-000000000000\",\"EnvironmentID\":\"00000000-0000-0000-0000-000000000000\",\"ClientID\":\"00000000-0000-0000-0000-000000000000\",\"StateType\":64,\"DisplayName\":\"BUGS/Bug_11889\",\"HasError\":true,\"ErrorMessage\":\"Service [ BUGS/Bug_11889 ] not found.\",\"Version\":\"\",\"Name\":\"EsbServiceInvoker\",\"ActivityType\":0,\"Duration\":\"00:00:00\",\"DurationString\":\"PT0S\",\"StartTime\":\"2014-07-24T12:49:28.4006805+02:00\",\"EndTime\":\"2014-07-24T12:49:28.4006805+02:00\",\"Inputs\":[],\"Outputs\":[],\"Server\":\"\",\"WorkspaceID\":\"00000000-0000-0000-0000-000000000000\",\"OriginalInstanceID\":\"00000000-0000-0000-0000-000000000000\",\"OriginatingResourceID\":\"00000000-0000-0000-0000-000000000000\",\"IsSimulation\":false,\"Message\":null,\"NumberOfSteps\":0,\"Origin\":\"\",\"ExecutionOrigin\":0,\"ExecutionOriginDescription\":null,\"ExecutingUser\":null,\"SessionID\":\"00000000-0000-0000-0000-000000000000\",\"WorkSurfaceMappingId\":\"00000000-0000-0000-0000-000000000000\"}]");
            res.Setup(a => a.Name).Returns("Bob");
            _convertorFactory.Setup(a => a.CreateTaskEventLog(It.IsAny <string>())).Returns(log);

            //test
            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object, @"c:\", _wrapper.Object, a => a.WorkflowName, fileHelper.Object, mockDirectory.Object);

            var history = model.CreateHistory(res.Object);

            Assert.AreEqual(1, history.Count);
            Assert.AreEqual(1, history.Last().DebugOutput.Count);
            Assert.AreEqual("Bob", history.Last().UserName);
        }
        public void ScheduledResourceModel_SaveTest_UserPassword()
        {
            SetupSingleTask();
            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object, @"c:\", _wrapper.Object, a => a.WorkflowName);

            var task           = new Mock <IDev2TaskDefinition>();
            var resourceToSave = new Mock <IScheduledResource>();
            var action         = new Mock <IExecAction>();

            var trigger       = new Mock <IScheduleTrigger>();
            var nativeTrigger = new Mock <ITrigger>();
            var mockSettings  = new Mock <ITaskSettings>();
            var resource      = new Mock <IScheduledResource>();

            _convertorFactory.Setup(a => a.CreateExecAction("WareWolf", "a b", null)).Returns(action.Object);
            resourceToSave.Setup(a => a.Name).Returns("henry");
            resourceToSave.Setup(a => a.Trigger).Returns(trigger.Object);
            resourceToSave.Setup(a => a.WorkflowName).Returns("b");
            task.Setup(a => a.Settings).Returns(mockSettings.Object);
            trigger.Setup(a => a.Trigger).Returns(nativeTrigger.Object);
            task.Setup(a => a.AddTrigger(nativeTrigger.Object)).Verifiable();
            _mockService.Setup(a => a.NewTask()).Returns(task.Object);
            _mockService.Setup(a => a.GetFolder(_folderId)).Returns(_folder.Object);
            task.Setup(a => a.AddTrigger(nativeTrigger.Object)).Verifiable();
            _folder.Setup(a => a.ValidTasks).Returns(new List <IDev2Task>());
            var mockFolder = new Mock <ITaskFolder>();

            _mockService.Setup(a => a.GetFolder("WareWolf")).Returns(mockFolder.Object);
            resource.Setup(a => a.Name).Returns("Dora");
            model.Save(resourceToSave.Object, "user", "pwd");
            mockFolder.Verify(
                a =>
                a.RegisterTaskDefinition("henry", task.Object, TaskCreation.CreateOrUpdate, "user", "pwd", TaskLogonType.InteractiveTokenOrPassword));
            task.Verify(a => a.AddTrigger(It.IsAny <ITrigger>()));
        }
        public void ScheduledResourceModel_HistoryTestStatusFailedWindowsSchedulerError()
        {
            //setup
            var log = new MockTaskEventLog
            {
                new MockTaskEvent(Guid.NewGuid(), 104, "Task Started", new DateTime(2000, 1, 1), "12345", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 104, "2", new DateTime(2001, 1, 1), "12346", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 104, "3", new DateTime(2002, 1, 1), "12347", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 104, "Task Completed", new DateTime(2003, 1, 1), "12348", "dave")
            };
            // this should return two history items without any debug output
            var mockDirectory = new Mock <IDirectory>();
            var fileHelper    = new Mock <IFile>();
            var res           = new Mock <IScheduledResource>();

            //expectations
            mockDirectory.Setup(a => a.GetFiles(@"c:\")).Returns(new[] { "b_12345_Bob" });
            fileHelper.Setup(a => a.ReadAllText("b_12345_Bob"))
            .Returns("[{\"$type\":\"Dev2.Diagnostics.Debug.DebugState, Dev2.Diagnostics\",\"ID\":\"cd902be2-a202-4d54-8c07-c5f56bae97fe\",\"ParentID\":\"00000000-0000-0000-0000-000000000000\",\"ServerID\":\"00000000-0000-0000-0000-000000000000\",\"EnvironmentID\":\"00000000-0000-0000-0000-000000000000\",\"ClientID\":\"00000000-0000-0000-0000-000000000000\",\"StateType\":64,\"DisplayName\":\"dave\",\"HasError\":true,\"ErrorMessage\":\"Service [ dave ] not found.\",\"Version\":\"\",\"Name\":\"DynamicServicesInvoker\",\"ActivityType\":0,\"Duration\":\"00:00:00\",\"DurationString\":\"PT0S\",\"StartTime\":\"2014-03-20T17:23:14.0224329+02:00\",\"EndTime\":\"2014-03-20T17:23:14.0224329+02:00\",\"Inputs\":[],\"Outputs\":[],\"Server\":\"\",\"WorkspaceID\":\"00000000-0000-0000-0000-000000000000\",\"OriginalInstanceID\":\"00000000-0000-0000-0000-000000000000\",\"OriginatingResourceID\":\"00000000-0000-0000-0000-000000000000\",\"IsSimulation\":false,\"Message\":null,\"NumberOfSteps\":0,\"Origin\":\"\",\"ExecutionOrigin\":0,\"ExecutionOriginDescription\":null,\"ExecutingUser\":null,\"SessionID\":\"00000000-0000-0000-0000-000000000000\"}]");

            res.Setup(a => a.Name).Returns("Bob");
            _convertorFactory.Setup(a => a.CreateTaskEventLog(It.IsAny <string>())).Returns(log);

            //test
            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object, @"c:\", _wrapper.Object, a => a.WorkflowName, fileHelper.Object, mockDirectory.Object);

            var history = model.CreateHistory(res.Object);

            Assert.AreEqual(1, history.Count);
            Assert.AreEqual(ScheduleRunStatus.Error, history.Last().TaskHistoryOutput.Success);
        }
        public void ScheduledResourceModel_HistoryTest_CorrectTaskEventsSelected()
        {
            // setup
            var log = new MockTaskEventLog
            {
                new MockTaskEvent(Guid.NewGuid(), 12, "Task Started", new DateTime(2000, 1, 1), "12345", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 12, "2", new DateTime(2001, 1, 1), "12346", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 12, "3", new DateTime(2002, 1, 1), "12347", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 12, "Task Completed", new DateTime(2003, 1, 1), "12348", "dave")
            };
            var dirHelper  = new Mock <IDirectoryHelper>();
            var fileHelper = new Mock <IFileHelper>();
            var res        = new Mock <IScheduledResource>();

            //setup expectancies
            dirHelper.Setup(a => a.GetFiles(@"c:\")).Returns(new[] { "b_12345_Bob" });
            fileHelper.Setup(a => a.ReadAllText("b_12345_Bob")).Returns("");
            res.Setup(a => a.Name).Returns("Bob");
            _convertorFactory.Setup(a => a.CreateTaskEventLog(It.IsAny <string>())).Returns(log);

            //construct
            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object,
                                                   @"c:\", _wrapper.Object);

            IList <IResourceHistory> history = model.CreateHistory(res.Object);

            Assert.AreEqual(2, history.Count);
            Assert.AreEqual(new DateTime(2003, 1, 1), history.First().TaskHistoryOutput.StartDate);
            Assert.AreEqual(new DateTime(2000, 1, 1), history.Last().TaskHistoryOutput.EndDate);
        }
        public void ScheduledResourceModel_CorrectSelectedResources()
        {
            SetupSingleTask();

            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object, @"c:\", _wrapper.Object, d => d.WorkflowName);
            var a     = model.ScheduledResources.First();

            Assert.AreEqual("bob", a.Name);
            Assert.AreEqual("a", a.WorkflowName);
        }
        public void ScheduledResourceModel_Get_ShouldErrorInvalidMessages()
        {
            //setup
            SetupSingleTask();
            //create
            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath,
                                                   _convertorFactory.Object, @"c:\", _wrapper.Object);

            Assert.AreEqual(1,
                            model.ScheduledResources.Count());
        }
        public void ServerSchedulerFactory_CreateModel()
        {
            IDev2TaskService             service  = new Mock <IDev2TaskService>().Object;
            ITaskServiceConvertorFactory cFactory = new Mock <ITaskServiceConvertorFactory>().Object;
            var factory = new ServerSchedulerFactory(service, cFactory, new DirectoryHelper());
            ScheduledResourceModel model = (ScheduledResourceModel)factory.CreateModel("bob", new SecurityWrapper(ServerAuthorizationService.Instance));

            Assert.AreEqual("bob", model.WarewolfFolderPath);
            Assert.IsTrue(model.WarewolfAgentPath.Contains(GlobalConstants.SchedulerAgentPath));
            Assert.IsTrue(model.DebugHistoryPath.Contains(GlobalConstants.SchedulerDebugPath));
        }
        public void ScheduledResourceModel_Constructor_ShouldSelectedCorrectResources()
        {
            //setup
            SetupSingleTask();
            //create
            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath,
                                                   _convertorFactory.Object, @"c:\", _wrapper.Object);

            Assert.AreEqual(1,
                            model.ScheduledResources.Count());
        }
        public void ScheduledResourceModel_Constructor_ShouldConstruct()
        {
            _mockService.Setup(a => a.GetFolder(_folderId)).Returns(_folder.Object);
            _folder.Setup(a => a.ValidTasks).Returns(new List <IDev2Task>());
            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object, @"c:\", _wrapper.Object, a => a.WorkflowName);

            Assert.AreEqual(_convertorFactory.Object, model.ConvertorFactory);
            Assert.AreEqual(_folderId, model.WarewolfFolderPath);
            Assert.AreEqual(_agentPath, model.WarewolfAgentPath);
            Assert.AreEqual(_mockService.Object, model.TaskService);
            Assert.AreEqual(0, model.ScheduledResources.Count);
        }
        public void ScheduledResourceModel_SaveInvalidWindowsUserPermissions()
        {
            //create objects
            SetupSingleTask();
            var model          = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object, @"c:\", _wrapper.Object, a => a.WorkflowName);
            var resourceToSave = new Mock <IScheduledResource>();

            //setup expectations
            _wrapper.Setup(a => a.IsWindowsAuthorised(It.IsAny <string>(), It.IsAny <string>())).Returns(false);
            //run test
            model.Save(resourceToSave.Object, out string errorMessage);
            Assert.AreEqual(Warewolf.Resource.Errors.ErrorResource.ScheduledResourceLogOnAsBatchErrorTest, errorMessage);
        }
        public void ScheduledResourceModel_SaveInvalidName()
        {
            //create objects
            SetupSingleTask();
            var model          = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object, @"c:\", _wrapper.Object, a => a.WorkflowName);
            var resourceToSave = new Mock <IScheduledResource>();

            //setup expectations
            _wrapper.Setup(a => a.IsWarewolfAuthorised(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Guid>())).Returns(true);
            resourceToSave.Setup(a => a.Name).Returns("bob?");
            //run test
            model.Save(resourceToSave.Object, out string errorMessage);
            Assert.AreEqual("The task name may not contain the following characters \\/:*?\"<>| .", errorMessage);
        }
        public void ScheduledResourceModel_HistoryTestDebugCreated()
        {
            var startTime = new DateTime(2000, 1, 1);
            var endTime   = new DateTime(2003, 1, 1);
            //setup
            var log = new MockTaskEventLog
            {
                new MockTaskEvent(Guid.NewGuid(), 12, "Task Started", startTime, "12345", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 12, "2", new DateTime(2001, 1, 1), "12345", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 12, "3", new DateTime(2002, 1, 1), "12345", "dave"),
                new MockTaskEvent(Guid.NewGuid(), 12, "Task Completed", endTime, "12345", "dave")
            };
            // this should return two history items without any debug output
            var dirHelper  = new Mock <IDirectoryHelper>();
            var fileHelper = new Mock <IFileHelper>();
            var res        = new Mock <IScheduledResource>();

            //expectations
            dirHelper.Setup(a => a.GetFiles(@"c:\")).Returns(new[] { "b_12345_Bob" });
            const string content = "[{\"$type\":\"Dev2.Diagnostics.Debug.DebugState, Dev2.Diagnostics\",\"ID\":\"cd902be2-a202-4d54-8c07-c5f56bae97fe\",\"ParentID\":\"00000000-0000-0000-0000-000000000000\",\"ServerID\":\"00000000-0000-0000-0000-000000000000\",\"EnvironmentID\":\"00000000-0000-0000-0000-000000000000\",\"ClientID\":\"00000000-0000-0000-0000-000000000000\",\"StateType\":64,\"DisplayName\":\"dave\",\"HasError\":false,\"ErrorMessage\":\"Service [ dave ] not found.\",\"Version\":\"\",\"Name\":\"DynamicServicesInvoker\",\"ActivityType\":0,\"Duration\":\"00:00:00\",\"DurationString\":\"PT0S\",\"StartTime\":\"2014-03-20T17:23:14.0224329+02:00\",\"EndTime\":\"2014-03-20T17:23:14.0224329+02:00\",\"Inputs\":[],\"Outputs\":[],\"Server\":\"\",\"WorkspaceID\":\"00000000-0000-0000-0000-000000000000\",\"OriginalInstanceID\":\"00000000-0000-0000-0000-000000000000\",\"OriginatingResourceID\":\"00000000-0000-0000-0000-000000000000\",\"IsSimulation\":false,\"Message\":null,\"NumberOfSteps\":0,\"Origin\":\"\",\"ExecutionOrigin\":0,\"ExecutionOriginDescription\":null,\"ExecutingUser\":null,\"SessionID\":\"00000000-0000-0000-0000-000000000000\"}]";

            fileHelper.Setup(a => a.ReadAllText("b_12345_Bob"))
            .Returns(content);
            res.Setup(a => a.Name).Returns("Bob");
            _convertorFactory.Setup(a => a.CreateTaskEventLog(It.IsAny <string>())).Returns(log);

            //test
            // ReSharper disable UseObjectOrCollectionInitializer
            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object,
                                                   // ReSharper restore UseObjectOrCollectionInitializer
                                                   @"c:\", _wrapper.Object, a => a.WorkflowName);

            model.DirectoryHelper = dirHelper.Object;
            model.FileHelper      = fileHelper.Object;
            //var history = RunOutput(startTime, endTime, "Bob");
            var serializer  = new Dev2JsonSerializer();
            var debugStates = serializer.Deserialize <List <IDebugState> >(content).First();
            IList <IResourceHistory> history = model.CreateHistory(res.Object);

            Assert.AreEqual(1, history.Count);
            Assert.AreEqual(debugStates.StartTime, history.First().DebugOutput.First().StartTime);
            Assert.AreEqual(debugStates.EndTime, history.First().DebugOutput.First().EndTime);
            Assert.AreEqual(history.Last().DebugOutput.Count, 1);
            Assert.AreEqual("Bob", history.Last().UserName);
        }
示例#14
0
        void DeleteTask()
        {
            if (SelectedTask != null && CurrentEnvironment != null)
            {
                if (CurrentEnvironment.IsConnected)
                {
                    if (CurrentEnvironment.AuthorizationService.IsAuthorized(AuthorizationContext.Administrator, null))
                    {
                        if (_popupController.ShowDeleteConfirmation(SelectedTask.Name) == MessageBoxResult.Yes)
                        {
                            int index = ScheduledResourceModel.ScheduledResources.IndexOf(SelectedTask);
                            int indexInFilteredList = TaskList.IndexOf(SelectedTask);
                            if (index != -1)
                            {
                                Dev2Logger.Log.Info(String.Format("Delete Schedule Name: {0} Resource:{1} Env:{2}", SelectedTask.Name, SelectedTask.ResourceId, CurrentEnvironment.Name));

                                ScheduledResourceModel.DeleteSchedule(SelectedTask);
                                //if delete is successfull then do the code below
                                ScheduledResourceModel.ScheduledResources.RemoveAt(index);
                                NotifyOfPropertyChange(() => TaskList);
                                if (indexInFilteredList <= TaskList.Count && indexInFilteredList > 0)
                                {
                                    SelectedTask = TaskList[indexInFilteredList - 1];
                                }
                                else if (indexInFilteredList == 0 && TaskList.Count > 0)
                                {
                                    SelectedTask = TaskList[0];
                                }
                            }
                            NotifyOfPropertyChange(() => History);
                        }
                    }
                    else
                    {
                        ShowError(@"Error while saving: You don't have permission to schedule on this server.
You need Administrator permission.");
                    }
                }
                else
                {
                    ShowError(NotConnectedErrorMessage);
                }
            }
        }
        public void ScheduledResourceModel_Delete_InValid()
        {
            //setup
            SetupSingleTask();
            var model      = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object, @"c:\", _wrapper.Object, a => a.WorkflowName);
            var mockFolder = new Mock <ITaskFolder>();
            var resource   = new Mock <IScheduledResource>();

            //expectations
            _mockService.Setup(a => a.GetFolder(_folderId)).Returns(_folder.Object);
            _folder.Setup(a => a.ValidTasks).Returns(new List <IDev2Task>());
            _mockService.Setup(a => a.GetFolder("WareWolf")).Returns(mockFolder.Object);
            mockFolder.Setup(a => a.TaskExists("Dora")).Returns(false);
            mockFolder.Setup(a => a.DeleteTask("Dora", false)).Verifiable();
            resource.Setup(a => a.Name).Returns("Dora");

            //test
            model.DeleteSchedule(resource.Object);
        }
        public void ScheduledResourceModel_SaveInvalidWindowsUserPermissions()
        {
            //create objects
            SetupSingleTask();
            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object,
                                                   @"c:\", _wrapper.Object);
            var resourceToSave = new Mock <IScheduledResource>();

            //setup expectations
            _wrapper.Setup(
                a => a.IsWindowsAuthorised(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(false);
            //run test
            string errorMessage;

            model.Save(resourceToSave.Object, out errorMessage);
            Assert.AreEqual(@"This task requires that the user account specified has 'Log On As Batch' job rights. 
Please contact your Windows System Administrator.", errorMessage);
        }
        public void ScheduledResourceModel_SaveInvalidWarewolfUserPermissions()
        {
            //create objects
            SetupSingleTask();
            var model = new ScheduledResourceModel(_mockService.Object, _folderId, _agentPath, _convertorFactory.Object,
                                                   @"c:\", _wrapper.Object);
            var resourceToSave = new Mock <IScheduledResource>();

            //setup expectations
            _wrapper.Setup(
                a => a.IsWarewolfAuthorised(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(false);
            resourceToSave.Setup(a => a.WorkflowName).Returns("bob");
            //run test
            string errorMessage;

            model.Save(resourceToSave.Object, out errorMessage);
            Assert.AreEqual(@"This Workflow requires that you have Execute permission on the 'bob' Workflow. 
Please contact your Warewolf System Administrator.", errorMessage);
        }
示例#18
0
        bool SaveTasks()
        {
            if (CurrentEnvironment.IsConnected)
            {
                var authService = CurrentEnvironment.AuthorizationService;

                if (authService != null && authService.IsAuthorized(AuthorizationContext.Administrator, null))
                {
                    if (SelectedTask != null && SelectedTask.OldName != null && SelectedTask.IsDirty)
                    {
                        if (HasErrors && !Error.StartsWith(SaveErrorPrefix))
                        {
                            ShowSaveErrorDialog(Error);
                            return(false);
                        }

                        if (SelectedTask.OldName != SelectedTask.Name && !SelectedTask.OldName.Contains(NewTaskName) && !SelectedTask.IsNew)
                        {
                            var showNameChangedConflict = _popupController.ShowNameChangedConflict(SelectedTask.OldName,
                                                                                                   SelectedTask.Name);
                            if (showNameChangedConflict == MessageBoxResult.Cancel || showNameChangedConflict == MessageBoxResult.None)
                            {
                                return(false);
                            }
                            if (showNameChangedConflict == MessageBoxResult.No)
                            {
                                SelectedTask.Name = SelectedTask.OldName;
                                NotifyOfPropertyChange(() => Name);
                            }
                        }
                        if (SelectedTask.OldName != SelectedTask.Name && SelectedTask.OldName.Contains(NewTaskName))
                        {
                            SelectedTask.OldName = SelectedTask.Name;
                        }
                    }

                    GetCredentials(SelectedTask);
                    string errorMessage;
                    if (!ScheduledResourceModel.Save(SelectedTask, out errorMessage))
                    {
                        ShowSaveErrorDialog(errorMessage);
                        ShowError(errorMessage);
                        return(false);
                    }
                    Dev2Logger.Log.Info(String.Format("Save Schedule. Environment: {0} Name:{1} ", CurrentEnvironment.Name, SelectedTask != null ?SelectedTask.Name:""));
                    if (SelectedTask != null)
                    {
                        SelectedTask.Errors.ClearErrors();
                        NotifyOfPropertyChange(() => Error);
                        NotifyOfPropertyChange(() => Errors);
                        SelectedTask.OldName = SelectedTask.Name;
                        SelectedTask.IsNew   = false;
                    }
                    NotifyOfPropertyChange(() => TaskList);
                }
                else
                {
                    ShowError(@"Error while saving: You don't have permission to schedule on this server.
You need Administrator permission.");
                    return(false);
                }
                return(true);
            }
            ShowError(NotConnectedErrorMessage);
            return(false);
        }