public virtual IHttpActionResult RequestRefresh([FromBody] RefreshParams rp)
        {
            return(ExecuteValidatedAction(() =>
            {
                // manually validating, as api is no longer wired up...
                ValidatorHelpers.ValidateAndThrow(rp, new RefreshParamsValidator());

                // validate AuthClient and RefreshToken
                JwtConfig config = new JwtConfig(true, RequestLeftPart);
                AuthClient client = ValidateClient(rp);
                AuthToken rt = AuthService.RetrieveToken(rp.AuthUserId, rp.AuthClientId, rp.TokenIdentifier);

                AddNoCacheHeader();

                if (client == null || rt == null || rt.AuthClientId != client.Id ||
                    !JsonWebToken.GrantNewAccess(config, rt.Token))
                {
                    return ImATeapot();
                }

                // get user
                AuthUser user = AuthService.GetByIdForLogin(rt.AuthUserId);
                if (user == null)
                {
                    return ImATeapot();
                }

                CheckSetRoleManager(user);                                             // make sure state is set in RoleManager
                ILoginResultDto loginResult = CreateTokenResult(user, client, config); // create new tokens, return result
                return loginResult != null ? (IHttpActionResult)Ok(loginResult) : ImATeapot();
            }));
        }
Beispiel #2
0
        internal async Task HandleRefreshRequest(RefreshParams refreshParams, RequestContext <bool> context)
        {
            try
            {
                Logger.Write(LogLevel.Verbose, "HandleRefreshRequest");
                Validate.IsNotNull(nameof(refreshParams), refreshParams);
                Validate.IsNotNull(nameof(context), context);

                string uri = refreshParams.SessionId;
                ObjectExplorerSession session = null;
                if (!sessionMap.TryGetValue(uri, out session))
                {
                    Logger.Write(LogLevel.Verbose, $"Cannot expand object explorer node. Couldn't find session for uri. {uri} ");
                    await serviceHost.SendEvent(ExpandCompleteNotification.Type, new ExpandResponse
                    {
                        SessionId    = refreshParams.SessionId,
                        NodePath     = refreshParams.NodePath,
                        ErrorMessage = $"Couldn't find session for session: {uri}"
                    });
                }
                else
                {
                    RunExpandTask(session, refreshParams, true);
                }
                await context.SendResult(true);
            }
            catch (Exception ex)
            {
                await context.SendError(ex.ToString());
            }
        }
        private void RefreshMaterialDocumentList()
        {
            RefreshParams args = new RefreshParams();

            args.database   = Database;
            args.dateStart  = pickMdDateFrom.Value;
            args.dateFinish = pickMdDateTo.Value;
            bgRefreshMaterialDocumentList.RunWorkerAsync(args);
        }
        /// <summary>
        ///     обновляет список заявок на пропуск
        /// </summary>
        private void RefreshPlanAppointList()
        {
            RefreshParams args = new RefreshParams();

            args.database   = Database;
            args.pageNumber = PlanAppointPage;
            args.dateStart  = pickPlanAppointStart.Value;

            bgRefreshPlanAppointList.RunWorkerAsync(args);
        }
        private void bgRefreshMaterialDocumentList_DoWork(object sender, DoWorkEventArgs e)
        {
            RefreshParams args = (RefreshParams)e.Argument;

            Database database = args.database;

            RefreshResult result = new RefreshResult();

            result.List = MaterialPermit.LoadList((EntryControlDatabase)database, args.dateStart, args.dateFinish);

            e.Result = result;
        }
        private void bgRefreshPlanAppointList_DoWork(object sender, DoWorkEventArgs e)
        {
            RefreshParams args = (RefreshParams)e.Argument;

            Database database = args.database;

            RefreshResult result = new RefreshResult();

            result.totalPages = PlanAppoint.GetNumberWOPermit(database, args.dateStart);
            result.List       = PlanAppoint.LoadWoPermit(database, args.dateStart, args.pageNumber);
            e.Result          = result;
        }
        private void bgRefresh_DoWork(object sender, DoWorkEventArgs e)
        {
            RefreshParams parameters = (RefreshParams)e.Argument;

            RefreshResult result = new RefreshResult();

            result.totalPages = Permit.GetCount(parameters.database, parameters.dateStart, parameters.dateFinish,
                                                parameters.entryPoint, parameters.defaultState);

            result.List = LoadPermitList(parameters.database, parameters.dateStart,
                                         parameters.dateFinish, parameters.entryPoint, parameters.defaultState,
                                         parameters.pageNumber);

            e.Result = result;
        }
        /// <summary>
        ///     обновляет список пропусков
        /// </summary>
        private void RefreshPermitList()
        {
            RefreshParams args = new RefreshParams();

            args.database   = Database;
            args.dateStart  = pickDateStart.Value;
            args.dateFinish = pickDateFinish.Value;

            args.entryPoint   = EntryPoint.Empty; //(EntryPoint)rboxEntryPoint.SelectedItem;
            args.defaultState = (EnumerationItem)cboxPermitType.SelectedItem;

            args.pageNumber = PermitListPage;

            bgRefreshPermitList.RunWorkerAsync(args);
        }
Beispiel #9
0
        private async Task <ExpandResponse> CallServiceRefresh(RefreshParams expandParams, RequestContext <bool> requestContext)
        {
            ExpandResponse result = null;

            serviceHostMock.AddEventHandling(ExpandCompleteNotification.Type, (et, p) => result = p);

            await service.HandleRefreshRequest(expandParams, requestContext);

            Task task = service.ExpandTask;

            if (task != null)
            {
                await task;
            }

            return(result);
        }
Beispiel #10
0
        public async Task RefreshNodeGivenInvalidSessionShouldReturnEmptyList()
        {
            RefreshParams expandParams = new RefreshParams()
            {
                SessionId = "invalid session is",
                NodePath  = "Any path"
            };

            // when expanding
            // then expect the nodes are server children
            await RunAndVerify <bool, ExpandResponse>(
                test : (requestContext) => CallServiceRefresh(expandParams, requestContext),
                verify : (actual =>
            {
                Assert.Equal(actual.SessionId, expandParams.SessionId);
                Assert.Null(actual.Nodes);
            }));
        }
        private void bgLastPlanAppointDate_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            DateTime lastDate = (DateTime)e.Result;

            if (lastDate > lastPlanAppouintModifiedDate)
            {
                lastPlanAppouintModifiedDate = lastDate;

                RefreshParams args = new RefreshParams();
                args.database   = Database;
                args.pageNumber = planAppointPage;
                args.dateStart  = pickPlanAppointStart.Value;

                bgRefreshPlanAppointList.RunWorkerAsync(args);
            }
            else
            {
                StartTimer();
            }
        }
Beispiel #12
0
        private async Task RefreshAndVerifyServerNodes()
        {
            var session = await CreateSession();

            RefreshParams expandParams = new RefreshParams()
            {
                SessionId = session.SessionId,
                NodePath  = session.RootNode.NodePath
            };

            // when expanding
            // then expect the nodes are server children
            await RunAndVerify <bool, ExpandResponse>(
                test : (requestContext) => CallServiceRefresh(expandParams, requestContext),
                verify : (actual =>
            {
                Assert.Equal(actual.SessionId, session.SessionId);
                Assert.NotNull(actual.SessionId);
                VerifyServerNodeChildren(actual.Nodes);
            }));
        }
        private void bgLastMaterialDocumentDate_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            DateTime lastDate = (DateTime)e.Result;

            if (lastDate > lastMaterialDocumentModifiedDate)
            {
                lastMaterialDocumentModifiedDate = lastDate;

                RefreshParams args = new RefreshParams();
                args.database   = Database;
                args.pageNumber = materialDocumentListPage;
                args.dateStart  = DateTime.MinValue;
                args.dateFinish = DateTime.MaxValue;

                bgRefreshMaterialDocumentList.RunWorkerAsync(args);
            }
            else
            {
                StartTimer();
            }
        }
        /// <summary>
        ///     принудительно обновляет данные
        /// </summary>
        private void ForceRefreshData()
        {
            if (isRefreshing)
            {
                return;
            }

            isRefreshing = true;
            refreshTimer.Stop();

            string refreshingText = "обновляем...";

            lblToRefresh.Text  = refreshingText;
            lblToRefresh2.Text = refreshingText;
            lblToRefresh3.Text = refreshingText;

            RefreshParams parameters = new RefreshParams();

            parameters.database     = Database;
            parameters.dateStart    = pickDateStart.Value;
            parameters.dateFinish   = pickDateFinish.Value;
            parameters.entryPoint   = EntryPoint.Empty;
            parameters.defaultState = (EnumerationItem)cboxPermitType.SelectedItem;
            parameters.pageNumber   = PermitListPage;

            bgRefreshPermitList.RunWorkerAsync(parameters);

            parameters.pageNumber = planAppointPage;

            bgRefreshPlanAppointList.RunWorkerAsync(parameters);

            parameters.dateStart  = pickMdDateFrom.Value;
            parameters.dateFinish = pickMdDateTo.Value;
            parameters.pageNumber = MaterialDocumentListPage;

            if (ShowMaterialDocuments)
            {
                bgRefreshMaterialDocumentList.RunWorkerAsync(parameters);
            }
        }
        private void bgLastUpdateDate_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            DateTime lastDate = (DateTime)e.Result;

            if (lastDate > lastPermitModifiedDate)
            {
                lastPermitModifiedDate = lastDate;

                RefreshParams parameters = new RefreshParams();
                parameters.database     = Database;
                parameters.dateStart    = pickDateStart.Value;
                parameters.dateFinish   = pickDateFinish.Value;
                parameters.entryPoint   = EntryPoint.Empty;
                parameters.defaultState = (EnumerationItem)cboxPermitType.SelectedItem;
                parameters.pageNumber   = PermitListPage;

                bgRefreshPermitList.RunWorkerAsync(parameters);
            }
            else
            {
                StartTimer();
            }
        }