Esempio n. 1
0
 public static void SafeRun()
 {
     if (WorldConfiguration.Instance.SafeRun)
     {
         ExceptionsHandler.SafeRun();
     }
 }
Esempio n. 2
0
        void ExchangeTokensAndJoinOrganization(string unityAccessToken)
        {
            int ini = Environment.TickCount;

            TokenExchangeResponse response = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(10);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                mPlasticWindow.GetWelcomeView().autoLoginState = AutoLogin.State.ResponseInit;
                response = PlasticScmRestApiClient.TokenExchange(unityAccessToken);
            },
                /*afterOperationDelegate*/ delegate
            {
                mLog.DebugFormat(
                    "TokenExchange time {0} ms",
                    Environment.TickCount - ini);

                if (waiter.Exception != null)
                {
                    mPlasticWindow.GetWelcomeView().autoLoginState = AutoLogin.State.ErrorTokenException;
                    ExceptionsHandler.LogException(
                        "TokenExchangeSetting",
                        waiter.Exception);
                    return;
                }

                if (response == null)
                {
                    mPlasticWindow.GetWelcomeView().autoLoginState = AutoLogin.State.ErrorResponseNull;
                    Debug.Log("response null");
                    return;
                }

                if (response.Error != null)
                {
                    mPlasticWindow.GetWelcomeView().autoLoginState = AutoLogin.State.ErrorResponseError;
                    mLog.ErrorFormat(
                        "Unable to exchange token: {0} [code {1}]",
                        response.Error.Message, response.Error.ErrorCode);
                    return;
                }

                if (string.IsNullOrEmpty(response.AccessToken))
                {
                    mPlasticWindow.GetWelcomeView().autoLoginState = AutoLogin.State.ErrorTokenEmpty;
                    mLog.InfoFormat(
                        "Access token is empty for user: {0}",
                        response.User);
                    return;
                }

                mPlasticWindow.GetWelcomeView().autoLoginState = AutoLogin.State.ResponseEnd;
                sAccessToken = response.AccessToken;
                sUserName    = response.User;
                GetOrganizationList();
            });
        }
Esempio n. 3
0
        internal static void ForWorkspace(
            WorkspaceInfo wkInfo,
            IPlasticAPI plasticApi)
        {
            RepositoryInfo repInfo = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(10);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                RepositorySpec repSpec = plasticApi.GetRepositorySpec(wkInfo);

                repInfo = plasticApi.GetRepositoryInfo(repSpec);
            },
                /*afterOperationDelegate*/ delegate
            {
                if (waiter.Exception != null)
                {
                    ExceptionsHandler.LogException(
                        "SetupCloudProjectId",
                        waiter.Exception);
                    return;
                }

                SetupCloudProjectId.ForRepository(repInfo);
            });
        }
Esempio n. 4
0
        public PartsDataResponse Save(IModel i)
        {
            try
            {
                var o  = i as Part;
                var id = _partController.Save(o, true, transID: _token, endPoint: "part/save");

                _stockController.Save(new Stock
                {
                    PartId     = id,
                    Units      = 1,
                    LastUpdate = BlueConstants.BlueCurrentDate
                });

                return(new PartsDataResponse
                {
                    Parts = _partController.Select("where id=@0", id).ToList(),
                    Message = BlueConstants.SUCCESS,
                    Success = true,
                });
            }
            catch (Exception ex)
            {
                ExceptionsHandler.Process(ex);
            }

            return(null);
        }
Esempio n. 5
0
        static void HandleLog(string logString, string stackTrace, LogType type)
        {
            if (type != LogType.Exception)
            {
                return;
            }

            if (!IsPlasticStackTrace(stackTrace))
            {
                return;
            }

            GUIActionRunner.RunGUIAction(delegate {
                mLog.ErrorFormat("[HandleLog] Unexpected error: {0}", logString);
                mLog.DebugFormat("Stack trace: {0}", stackTrace);

                string message = logString;
                if (ExceptionsHandler.DumpStackTrace())
                {
                    message += Environment.NewLine + stackTrace;
                }

                GuiMessage.ShowError(message);
            });
        }
        static void InviteMemberButton_clicked(object obj)
        {
            WorkspaceInfo wkInfo = (WorkspaceInfo)obj;
            CurrentUserAdminCheckResponse response = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(50);

            waiter.Execute(
                /*threadOperationDelegate*/
                delegate
            {
                RepositorySpec repSpec = PlasticGui.Plastic.API.GetRepositorySpec(wkInfo);

                ServerProfile serverProfile =
                    CmConnection.Get().GetProfileManager().GetProfileForServer(repSpec.Server) ??
                    ClientConfig.Get().GetDefaultProfile();

                string authToken = CmConnection.Get()
                                   .BuildWebApiTokenForCloudEditionForProfileAndOrg(
                    serverProfile);

                response = WebRestApiClient.PlasticScm.IsUserAdmin(
                    ServerOrganizationParser.GetOrganizationFromServer(repSpec.Server),
                    authToken);
            },
                /*afterOperationDelegate*/
                delegate
            {
                if (waiter.Exception != null)
                {
                    ExceptionsHandler.LogException(
                        "IsUserAdmin",
                        waiter.Exception);
                    return;
                }

                if (response.Error != null)
                {
                    Debug.LogErrorFormat(
                        "Error checking if the user is the organization admin: {0}",
                        string.Format("Unable to get IsUserAdminResponse: {0} [code {1}]",
                                      response.Error.Message,
                                      response.Error.ErrorCode));

                    return;
                }

                if (response.IsCurrentUserAdmin)
                {
                    Application.OpenURL("https://www.plasticscm.com/dashboard/cloud/" +
                                        response.OrganizationName +
                                        "/users-and-groups");
                    return;
                }

                GuiMessage.ShowInformation(
                    PlasticLocalization.GetString(PlasticLocalization.Name.InviteMembersTitle),
                    PlasticLocalization.GetString(PlasticLocalization.Name.InviteMembersMessage));
            });
        }
Esempio n. 7
0
        void IRefreshableView.Refresh()
        {
            BranchInfo workingBranch = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(10);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                workingBranch = OverlappedCalculator.GetWorkingBranch(
                    mWkInfo.ClientPath);
            },
                /*afterOperationDelegate*/ delegate
            {
                if (waiter.Exception != null)
                {
                    ExceptionsHandler.DisplayException(waiter.Exception);
                    return;
                }

                // No need for merge info if it's a label
                if (workingBranch == null)
                {
                    return;
                }

                mMergeController.UpdateMergeObjectInfoIfNeeded(workingBranch);
                mMergeViewLogic.Refresh();
            });
        }
Esempio n. 8
0
        void Update()
        {
            if (mException != null)
            {
                return;
            }

            if (mWkInfo == null)
            {
                return;
            }

            try
            {
                double currentUpdateTime = EditorApplication.timeSinceStartup;
                double elapsedSeconds    = currentUpdateTime - mLastUpdateTime;

                mViewSwitcher.Update();
                mWorkspaceWindow.OnParentUpdated(elapsedSeconds);

                if (mWelcomeView != null)
                {
                    mWelcomeView.Update();
                }

                mLastUpdateTime = currentUpdateTime;
            }
            catch (Exception ex)
            {
                mException = ex;

                ExceptionsHandler.HandleException("Update", ex);
            }
        }
Esempio n. 9
0
        internal static void ForWorkspace(
            WorkspaceInfo wkInfo,
            IPlasticAPI plasticApi)
        {
            if (HasCloudProjectId())
            {
                return;
            }

            string repGuid = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(10);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                RepositorySpec repSpec = plasticApi.GetRepositorySpec(wkInfo);
                RepositoryInfo repInfo = plasticApi.GetRepositoryInfo(repSpec);

                repGuid = repInfo.GUID.ToString();
            },
                /*afterOperationDelegate*/ delegate
            {
                if (waiter.Exception != null)
                {
                    ExceptionsHandler.LogException(
                        "SetupCloudProjectId",
                        waiter.Exception);
                }

                ConfigureCloudProjectId(repGuid);
            });
        }
Esempio n. 10
0
        void IAssetMenuOperations.ShowDiff()
        {
            string selectedPath = AssetsSelection.GetSelectedPath(
                mAssetSelection.GetSelectedAssets());

            DiffInfo diffInfo = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(10);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                string symbolicName = GetSymbolicName(selectedPath);
                string extension    = Path.GetExtension(selectedPath);

                diffInfo = Plastic.API.BuildDiffInfoForDiffWithPrevious(
                    selectedPath, symbolicName, selectedPath, extension, mWkInfo);
            },
                /*afterOperationDelegate*/ delegate
            {
                if (waiter.Exception != null)
                {
                    ExceptionsHandler.DisplayException(waiter.Exception);
                    return;
                }

                DiffOperation.DiffWithPrevious(
                    diffInfo,
                    null,
                    null);
            });
        }
Esempio n. 11
0
        internal void PartialUpdateWorkspace()
        {
            mProgressControls.ShowProgress(PlasticLocalization.GetString(
                                               PlasticLocalization.Name.UpdatingWorkspace));

            ((IUpdateProgress)mGluonProgressOperationHandler).ShowCancelableProgress();

            OutOfDateUpdater outOfDateUpdater = new OutOfDateUpdater(mWkInfo);

            IThreadWaiter waiter = ThreadWaiter.GetWaiter();

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                outOfDateUpdater.Execute();
            },
                /*afterOperationDelegate*/ delegate
            {
                mProgressControls.HideProgress();

                ((IUpdateProgress)mGluonProgressOperationHandler).EndProgress();

                mViewHost.RefreshView(ViewType.CheckinView);
                mViewHost.RefreshView(ViewType.IncomingChangesView);

                Refresh.UnityAssetDatabase();

                if (waiter.Exception != null)
                {
                    ExceptionsHandler.DisplayException(waiter.Exception);
                    return;
                }

                ShowUpdateReportDialog(
                    mWkInfo, mViewHost, outOfDateUpdater.Progress, mProgressControls,
                    mGuiMessage, mGluonProgressOperationHandler, this);
            },
                /*timerTickDelegate*/ delegate
            {
                UpdateProgress progress = outOfDateUpdater.Progress;

                if (progress == null)
                {
                    return;
                }

                if (progress.IsCanceled)
                {
                    mProgressControls.ShowNotification(
                        PlasticLocalization.GetString(PlasticLocalization.Name.Canceling));
                }

                ((IUpdateProgress)mGluonProgressOperationHandler).RefreshProgress(
                    progress,
                    UpdateProgressDataCalculator.CalculateProgressForWorkspaceUpdate(
                        mWkInfo.ClientPath, progress));
            });
        }
Esempio n. 12
0
        void FillBranches(WorkspaceInfo wkInfo, string query, List <RepObjectInfo> branchesToSelect)
        {
            if (mIsRefreshing)
            {
                return;
            }

            mIsRefreshing = true;

            int defaultRow = TableViewOperations.
                             GetFirstSelectedRow(mBranchesListView);

            ((IProgressControls)mProgressControls).ShowProgress(
                PlasticLocalization.GetString(
                    PlasticLocalization.Name.LoadingBranches));

            ViewQueryResult queryResult = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter();

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                queryResult = new ViewQueryResult(
                    PlasticGui.Plastic.API.FindQuery(wkInfo, query));
            },
                /*afterOperationDelegate*/ delegate
            {
                try
                {
                    if (waiter.Exception != null)
                    {
                        ExceptionsHandler.DisplayException(waiter.Exception);
                        return;
                    }

                    UpdateBranchesList(
                        mBranchesListView,
                        queryResult);

                    int branchesCount = GetBranchesCount(queryResult);

                    if (branchesCount == 0)
                    {
                        return;
                    }

                    BranchesSelection.SelectBranches(
                        mBranchesListView, branchesToSelect, defaultRow);
                }
                finally
                {
                    ((IProgressControls)mProgressControls).HideProgress();
                    mIsRefreshing = false;
                }
            });
        }
Esempio n. 13
0
        static void DisplayException(
            IProgressControls progressControls,
            Exception ex)
        {
            ExceptionsHandler.LogException(
                "CreateWorkspaceView", ex);

            progressControls.ShowError(
                ExceptionsHandler.GetCorrectExceptionMessage(ex));
        }
        static void DisplayException(
            ProgressControlsForMigration progressControls,
            Exception ex)
        {
            ExceptionsHandler.LogException(
                "MigrationDialog", ex);

            progressControls.ShowError(
                ExceptionsHandler.GetCorrectExceptionMessage(ex));
        }
Esempio n. 15
0
        void tm_OnTestEnded(AsyncBufferPageDataCollector sender, PageDataCollectorStartInfo settings, bool success, PageDataCollectorErrors errCode, int resultsId)
        {
            if (success == false && errCode != PageDataCollectorErrors.TestAborted)
            {
                ExceptionsHandler.HandleException(new Exception(String.Format("Test Failed. Error #{0}  Command Args \"{1}\"", errCode, ((settings != null && settings.CreateCommandLineArgs() != null) ? settings.CreateCommandLineArgs() : ""))));
            }
            if (this.pageDataCollector != null)
            {
                this.pageDataCollector.Dispose();
            }
            this.pageDataCollector = null;

            if (success == false)
            {
                SetTestRunning(false);

                SetTestStatus(TestEventType.TestEnded, success, errCode, resultsId);

                int[] pp = GetProxyPorts();
                if (pp == null)
                {
                    return;
                }

                if (errCode == PageDataCollectorErrors.CantStartProxy && proxyRangeOffset < pp.Length - 1)
                {
                    proxyRangeOffset++;
                    StartTest();
                }
                else if (errCode != PageDataCollectorErrors.TestAborted)
                {
                    if (errCode == PageDataCollectorErrors.InvalidConfiguration)
                    {
                        MessageBox.Show("Invalid configuration detected.\r\nPlease make sure the settings are correct", "Test Aborted", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else if (errCode == PageDataCollectorErrors.TestAlreadyRunning)
                    {
                        MessageBox.Show("Test is already running on a different page.", "Test Aborted", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else if (errCode == PageDataCollectorErrors.TestTimeout)
                    {
                        MessageBox.Show("Test has timed-out.", "Test Aborted", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        MessageBox.Show("Unexpected error occured while trying to test the page\r\n(err#" + ((int)errCode) + ")", "Test Aborted", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                ProcessResults(resultsId);
            }
        }
Esempio n. 16
0
        internal void ExchangeTokens(string unityAccessToken)
        {
            int ini = Environment.TickCount;

            TokenExchangeResponse response = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(10);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                response = PlasticScmRestApiClient.TokenExchange(unityAccessToken);
            },
                /*afterOperationDelegate*/ delegate
            {
                mLog.DebugFormat(
                    "TokenExchange time {0} ms",
                    Environment.TickCount - ini);

                if (waiter.Exception != null)
                {
                    ExceptionsHandler.LogException(
                        "TokenExchangeSetting",
                        waiter.Exception);
                    return;
                }

                if (response == null)
                {
                    Debug.Log("response null");
                    return;
                }

                if (response.Error != null)
                {
                    mLog.ErrorFormat(
                        "Unable to exchange token: {0} [code {1}]",
                        response.Error.Message,
                        response.Error.ErrorCode);
                    return;
                }

                if (string.IsNullOrEmpty(response.AccessToken))
                {
                    mLog.InfoFormat(
                        "Access token is empty for user: {0}",
                        response.User);
                    return;
                }

                sAccessToken = response.AccessToken;
                sUserName    = response.User;
            });
        }
Esempio n. 17
0
        internal static void CheckinPathsPartial(
            WorkspaceInfo wkInfo,
            List <string> paths,
            string comment,
            ViewHost viewHost,
            CheckinDialog dialog,
            GuiMessage.IGuiMessage guiMessage,
            IProgressControls progressControls,
            IGluonViewSwitcher gluonViewSwitcher)
        {
            BaseCommandsImpl baseCommands = new BaseCommandsImpl();

            progressControls.ShowProgress(PlasticLocalization.GetString(
                                              PlasticLocalization.Name.CheckinInFilesProgress));

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(50);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                baseCommands.PartialCheckin(wkInfo, paths, comment);
            },
                /*afterOperationDelegate*/ delegate
            {
                progressControls.HideProgress();

                ((IPlasticDialogCloser)dialog).CloseDialog();

                if (waiter.Exception is CheckinConflictsException)
                {
                    // we need to explicitly call EditorWindow.Close() to ensure
                    // that the dialog is closed before asking the user
                    dialog.Close();

                    if (!UserWantsToShowIncomingView(guiMessage))
                    {
                        return;
                    }

                    gluonViewSwitcher.ShowIncomingChangesView();
                    return;
                }

                if (waiter.Exception != null)
                {
                    ExceptionsHandler.DisplayException(waiter.Exception);
                    return;
                }

                viewHost.RefreshView(ViewType.CheckinView);
                viewHost.RefreshView(ViewType.HistoryView);
            });
        }
Esempio n. 18
0
        void FillData(
            MountPointWithPath mountWithPath,
            ChangesetInfo csetInfo)
        {
            mSelectedMountWithPath = mountWithPath;
            mSelectedChangesetInfo = csetInfo;

            ((IProgressControls)mProgressControls).ShowProgress(
                PlasticLocalization.GetString(PlasticLocalization.Name.Loading));

            mIsSkipMergeTrackingButtonVisible = false;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(100);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                mDiffs = Plastic.API.GetChangesetDifferences(
                    mountWithPath, csetInfo);
            },
                /*afterOperationDelegate*/ delegate
            {
                ((IProgressControls)mProgressControls).HideProgress();

                if (waiter.Exception != null)
                {
                    ExceptionsHandler.DisplayException(waiter.Exception);
                    return;
                }

                if (mSelectedMountWithPath != mountWithPath ||
                    mSelectedChangesetInfo != csetInfo)
                {
                    return;
                }

                if (mDiffs == null || mDiffs.Count == 0)
                {
                    ClearDiffs();
                    return;
                }

                mIsSkipMergeTrackingButtonVisible =
                    ClientDiffList.HasMerges(mDiffs);

                bool skipMergeTracking =
                    mIsSkipMergeTrackingButtonVisible &&
                    mIsSkipMergeTrackingButtonChecked;

                UpdateDiffTreeView(
                    mDiffs, skipMergeTracking, mDiffTreeView);
            });
        }
Esempio n. 19
0
        void AsyncCalculateStatus(CancelToken cancelToken)
        {
            Dictionary <string, LockStatusData> statusByPathCache = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(50);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                Dictionary <RepositorySpec, List <WorkspaceTreeNode> > lockCandidates =
                    new Dictionary <RepositorySpec, List <WorkspaceTreeNode> >();

                FillLockCandidates.ForTree(mWkInfo, lockCandidates);

                if (cancelToken.IsCancelled())
                {
                    return;
                }

                Dictionary <WorkspaceTreeNode, LockInfo> lockInfoByNode =
                    SearchLocks.GetLocksInfo(mWkInfo, lockCandidates);

                if (cancelToken.IsCancelled())
                {
                    return;
                }

                statusByPathCache = BuildStatusByNodeCache.
                                    ForLocks(mWkInfo.ClientPath, lockInfoByNode);
            },
                /*afterOperationDelegate*/ delegate
            {
                if (waiter.Exception != null)
                {
                    ExceptionsHandler.LogException(
                        "LockStatusCache",
                        waiter.Exception);
                    return;
                }

                if (cancelToken.IsCancelled())
                {
                    return;
                }

                lock (mLock)
                {
                    mStatusByPathCache = statusByPathCache;
                }

                mRepaintProjectWindow();
            });
        }
Esempio n. 20
0
 internal static void Open(List<string> files)
 {
     try
     {
         foreach (string file in files)
             OpenFile(file);
     }
     catch (Exception ex)
     {
         ExceptionsHandler.DisplayException(ex);
     }
 }
Esempio n. 21
0
        private void ThreadProc()
        {
            try
            {
                while (_isRunning)
                {
                    //---- Wait until we wake up this thread
                    if (_commandsCount < 1)
                    {
                        //-- Wait...
                        bool hasTimeOut = false;
                        lock (this)
                            hasTimeOut = !Monitor.Wait(this, _uselessThreadTimeout);

                        //-- The thread pool is NOT heavily used, remove this thread from the pool
                        if (hasTimeOut)
                        {
                            lock (_threads)

                                if (_threads.Count > _minThreadsCount)
                                {
                                    _threads.Remove(Thread.CurrentThread);
                                    return;
                                }
                            continue;
                        }
                    }

                    //---- Process at least one command, if fast enough can process several commands
                    Interlocked.Increment(ref _busyThreads);

                    //---- Thread pool is heavily used, add a thread to the pool
                    if (_busyThreads == _threads.Count)
                    {
                        AddThreadToPool();
                    }

                    ProcessAllCommands();
                    Interlocked.Decrement(ref _busyThreads);
                }
            }

            catch (ThreadAbortException)
            {
            }

            catch (Exception exception)
            {
                ExceptionsHandler.Handle(exception);
            }
        }
        static void EnableUserBetaProgramIfNeeded(string unityAccessToken)
        {
            int ini = Environment.TickCount;

            UnityPackageBetaEnrollResponse response = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(10);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                response = PlasticScmRestApiClient.IsBetaEnabled(unityAccessToken);
            },
                /*afterOperationDelegate*/ delegate
            {
                mLog.DebugFormat(
                    "IsBetaEnabled time {0} ms",
                    Environment.TickCount - ini);

                if (waiter.Exception != null)
                {
                    ExceptionsHandler.LogException(
                        "CalculateUserBetaProgramSetting",
                        waiter.Exception);
                    return;
                }

                if (response == null)
                {
                    return;
                }

                if (response.Error != null)
                {
                    mLog.ErrorFormat(
                        "Unable to retrieve is beta enabled: {0} [code {1}]",
                        response.Error.Message, response.Error.ErrorCode);
                    return;
                }

                if (!response.IsBetaEnabled)
                {
                    mLog.InfoFormat(
                        "Beta is disabled for accessToken: {0}",
                        unityAccessToken);
                    return;
                }

                PlasticMenuItem.Add();
            });
        }
Esempio n. 23
0
        static void HandleUnhandledException(object sender, UnhandledExceptionEventArgs args)
        {
            Exception ex = (Exception)args.ExceptionObject;

            if (IsExitGUIException(ex) ||
                !IsPlasticStackTrace(ex.StackTrace))
            {
                return;
            }

            GUIActionRunner.RunGUIAction(delegate {
                ExceptionsHandler.HandleException("HandleUnhandledException", ex);
            });
        }
Esempio n. 24
0
        public void Sort_SholdWorkAppropriateForNonTextTypes(string columnName, SortDirectionsEnum direction, Type propertyType)
        {
            ExceptionsHandler.Hande(() =>
            {
                this.navigator.AllTypesDataPage().GoTo();
                var tableElement    = new TableElement("table", this.driver);
                string columnHeader = columnName.StartsWith("NestedModel") ? this.GetHeaderForNestedModel(columnName) : columnName;
                tableElement.ClickSortButton(columnHeader, direction);

                AssertNonTextPropertyOrder(columnName, columnHeader, direction, propertyType, tableElement);
                tableElement.GoToLastPage();
                AssertNonTextPropertyOrder(columnName, columnHeader, direction, propertyType, tableElement);
            },
                                    this.driver);
        }
Esempio n. 25
0
        public void Sort_SholdWorkAppropriateForTextTypes(string columnName, SortDirectionsEnum direction)
        {
            ExceptionsHandler.Hande(() =>
            {
                this.navigator.AllTypesDataPage().GoTo();
                var tableElement = new TableElement("table", this.driver);
                tableElement.ClickSortButton(columnName, direction);

                // Assert that rows are in correct order for the first page
                AssertTextPropertyOrder(columnName, direction, tableElement);
                tableElement.GoToLastPage();
                // Assert that rows are in correct order for the last page
                AssertTextPropertyOrder(columnName, direction, tableElement);
            },
                                    this.driver);
        }
Esempio n. 26
0
        private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            try
            {
                ExceptionsHandler.HandleException((Exception)e.ExceptionObject);
            }
            catch
            {
            }

            DialogResult dr = MessageBox.Show("An unexpected error has occurred.\r\nWould you like to report this error?\r\n\r\n(private data will NOT be sent!)", "Error Detected!", MessageBoxButtons.YesNo);

            if (dr == DialogResult.Yes)
            {
                ExceptionsHandler.FlushExceptions();
            }
        }
Esempio n. 27
0
        void AsyncCalculateStatus(CancelToken cancelToken)
        {
            Dictionary <string, AssetStatus> statusByPathCache = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(50);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                OutOfDateItems outOfDateItems =
                    OutOfDateUpdater.CalculateOutOfDateItems(
                        mWkInfo, new List <ErrorMessage>(),
                        OutOfDateCalculator.Options.IsIncomingChanges);

                if (cancelToken.IsCancelled())
                {
                    return;
                }

                statusByPathCache = BuildStatusByPathCache.
                                    ForOutOfDateItems(outOfDateItems, mWkInfo.ClientPath);
            },
                /*afterOperationDelegate*/ delegate
            {
                if (waiter.Exception != null)
                {
                    ExceptionsHandler.LogException(
                        "RemoteStatusCache",
                        waiter.Exception);
                    return;
                }

                if (cancelToken.IsCancelled())
                {
                    return;
                }

                lock (mLock)
                {
                    mStatusByPathCache = statusByPathCache;
                }

                mRepaintProjectWindow();
            });
        }
Esempio n. 28
0
        public void Sort_SholdWorkWithSubsecuentPropertiesSortOperations()
        {
            ExceptionsHandler.Hande(() =>
            {
                string firstColumnName  = "Integer";
                string secondColumnName = "DoubleProperty";

                this.navigator.AllTypesDataPage().GoTo();
                var tableElement = new TableElement("table", this.driver);
                tableElement.ClickSortButton(firstColumnName, SortDirectionsEnum.Asc);
                tableElement.ClickSortButton(secondColumnName, SortDirectionsEnum.Asc);

                AssertNonTextPropertyOrder(secondColumnName, secondColumnName, SortDirectionsEnum.Asc, typeof(double), tableElement);
                tableElement.GoToLastPage();
                AssertNonTextPropertyOrder(secondColumnName, secondColumnName, SortDirectionsEnum.Asc, typeof(double), tableElement);
            },
                                    this.driver);
        }
Esempio n. 29
0
        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            try{
                StringBuilder sb = new StringBuilder();
                sb.Append("Engine Failed. args: ");

                foreach (String s in commandArgs)
                {
                    sb.Append(s);
                    sb.Append(" ");
                }

                ExceptionsHandler.HandleException(new Exception(sb.ToString(), (Exception)e.ExceptionObject));
            }catch
            {
            }
            System.Environment.ExitCode = (int)PageDataCollectorErrors.Unknown;
            System.Environment.Exit((int)PageDataCollectorErrors.Unknown);
        }
Esempio n. 30
0
        void IAssetMenuOperations.ShowDiff()
        {
            if (LaunchTool.ShowDownloadPlasticExeWindow(
                    mWkInfo,
                    mIsGluonMode,
                    TrackFeatureUseEvent.Features.InstallPlasticCloudFromShowDiff,
                    TrackFeatureUseEvent.Features.InstallPlasticEnterpriseFromFromShowDiff,
                    TrackFeatureUseEvent.Features.CancelPlasticInstallationFromFromShowDiff))
            {
                return;
            }

            string selectedPath = AssetsSelection.GetSelectedPath(
                mAssetSelection.GetSelectedAssets());

            DiffInfo diffInfo = null;

            IThreadWaiter waiter = ThreadWaiter.GetWaiter(10);

            waiter.Execute(
                /*threadOperationDelegate*/ delegate
            {
                string symbolicName = GetSymbolicName(selectedPath);
                string extension    = Path.GetExtension(selectedPath);

                diffInfo = PlasticGui.Plastic.API.BuildDiffInfoForDiffWithPrevious(
                    selectedPath, symbolicName, selectedPath, extension, mWkInfo);
            },
                /*afterOperationDelegate*/ delegate
            {
                if (waiter.Exception != null)
                {
                    ExceptionsHandler.DisplayException(waiter.Exception);
                    return;
                }

                DiffOperation.DiffWithPrevious(
                    diffInfo,
                    null,
                    null);
            });
        }