示例#1
0
    /// <summary>
    /// 获取状态
    /// </summary>
    ActivityState GetInDayTime(bool isTomorrow = false)
    {
        ActivityState cur   = ActivityState.NOTATTHE;
        int           index = -1;

        for (int i = 0; i < RefData.looptime.Count; i++)
        {
            cur = GetInDateTime(RefData.looptime[i], isTomorrow);
            if (cur == ActivityState.ONGOING)
            {
                UpdateTimePoint = minTime;
//				Debug.Log("name  =   "+RefData.name +":"+RefData.looptime[i].start[0]+":"+RefData.looptime[i].start[1] +":"+RefData.looptime[i].end[0]+":"+RefData.looptime[i].end[1]);
                return(ActivityState.ONGOING);
            }
            if (cur == ActivityState.HASENDED)
            {
                index++;
            }
        }

        if (index >= RefData.looptime.Count - 1)
        {
            updateTimePoint = 0;
            minTime         = 0;
            return(ActivityState.HASENDED);
        }
        UpdateTimePoint = minTime;
        return(ActivityState.NOTATTHE);
    }
示例#2
0
        public Action <Canvas> GetAction(XPoint[] xpoints, ActivityState context)
        {
            context.GridFactor = _gridFactor;
            var grid = new XGrid(context);

            return(c => c.DrawGrid(grid, _paint));
        }
 protected override void OnStop()
 {
     base.OnStop();
     State = ActivityState.Stopped;
     UnBindEventHandlers();
     ViewModel?.ViewDisappeared();
 }
示例#4
0
 public ActivityDTO(long id, WeekPictogramDTO pictogram, int order, ActivityState state)
 {
     this.Id        = id;
     this.Pictogram = pictogram;
     this.Order     = order;
     this.State     = state;
 }
 protected override void OnResume()
 {
     base.OnResume();
     State = ActivityState.Resumed;
     BindEventHandlers();
     ViewModel?.ViewAppeared();
 }
示例#6
0
        public Dictionary <DayOfWeek, ActivityState> PerformanceStatus(DateTime relativeTo)
        {
            Dictionary <DayOfWeek, ActivityState> ret = new Dictionary <DayOfWeek, ActivityState>();

            foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek)))
            {
                ActivityState state = ActivityState.NotScheduled;

                var performancesThisWeek = Performances.Where(d => d.IsBetweenDates(Util.StartOfWeek(relativeTo), Util.EndOfWeek(relativeTo)));

                if (DaysPerformedList.Contains(day))
                {
                    state = day < relativeTo.DayOfWeek ? ActivityState.PastDue : ActivityState.Upcoming;
                }

                if (performancesThisWeek.Any(d => d.WhenPerformed.DayOfWeek == day))
                {
                    state = ActivityState.Completed;
                }

                ret.Add(day, state);
            }

            return(ret);
        }
示例#7
0
    public void SetBtnState(ActivityState state)
    {
        bool hadbuy = state == ActivityState.Got;

        m_spr_buyBtn.isEnabled = !hadbuy;
        m_label_desc.text      = hadbuy ? "今日已购" : "立即购买";
    }
 protected override void OnPause()
 {
     base.OnPause();
     State = ActivityState.Paused;
     UnBindEventHandlers();
     ViewModel?.ViewDisappearing();
 }
示例#9
0
        public void CollisionTest()
        {
            TinCanJsonConverter converter = new TinCanJsonConverter();
            TCAPI target = new TCAPI(new Uri("http://cloud.scorm.com/tc/public"), new BasicHTTPAuth("CZSWMUZPSE", "vwiuflgsY22FDXpHA4lwwe5hrnUXvcyJjW3fDrpH"));
            Actor actor  = new Actor("Mufasa", "mailto:[email protected]");

            string[] stateIds      = { "The Lion King", "The Fallen King", "The New King" };
            string[] stateContents =
            {
                "Mufasa rules his country as a proud and fair king of lions, celebrating his recently newborn son Simba.",
                "Scar kills Mufasa, simply muttering the words 'Long Live the King'",
                "Simba finally realizes he must follow in his fathers footsteps to save the kingdom from the evil Scar."
            };

            string activityId = "example.com/TheLionKing";

            string[] results = target.GetActivityStateIds(activityId, actor);

            ActivityState state    = new ActivityState(activityId, stateIds[0], actor, stateContents[1], "text/plain");
            ActivityState previous = new ActivityState(activityId, stateIds[0], actor, stateContents[0], "text/plain");

            target.SaveActivityState(state);
            state.Body = stateContents[2];
            target.SaveActivityState(state, false, previous);
        }
示例#10
0
    void Rest()
    {
        currRestBreak -= Time.deltaTime;

        GameObject fireplace = GameObject.FindGameObjectWithTag("campfire");

        Vector3 relativePos = fireplace.transform.position - transform.position;

        transform.rotation = Quaternion.Slerp(transform.rotation,
                                              Quaternion.LookRotation(relativePos, Vector3.up),
                                              Time.deltaTime * 30f);

        if (myInteractor.minimumDistance < Vector3.Distance(transform.position, fireplace.transform.position))
        {
            transform.Translate(Vector3.forward * Time.deltaTime * speed);
            if (animator)
            {
                animator.SetBool("walking", true);
            }
        }
        else
        {
            if (animator)
            {
                animator.SetBool("walking", false);
            }
        }

        if (currRestBreak <= 0)
        {
            currWorkShift = workTime;
            currState     = ActivityState.working;
        }
    }
示例#11
0
    void Work()
    {
        currWorkShift -= Time.deltaTime;

        if (!closestObject)
        {
            closestObject = myInteractor.FindClosestObjectWithTag("interactiveEnvironment", false);
        }
        Vector3 relativePos = closestObject.transform.position - transform.position;

        transform.rotation = Quaternion.Slerp(transform.rotation,
                                              Quaternion.LookRotation(relativePos, Vector3.up),
                                              Time.deltaTime * 30f);

        if (myInteractor.minimumDistance < Vector3.Distance(transform.position, closestObject.transform.position))
        {
            transform.Translate(Vector3.forward * Time.deltaTime * speed);
            if (animator)
            {
                animator.SetBool("interacting", false);
            }
            if (animator)
            {
                animator.SetBool("walking", true);
            }
        }
        else
        {
            myInteractor.InteractWithNearbySurroudings();
            if (!myInteractor.interactionInProgress)
            {
                closestObject = null;
                if (animator)
                {
                    animator.SetBool("interacting", false);
                }
            }
            else
            {
                if (animator)
                {
                    animator.SetBool("interacting", true);
                }
            }
            //if (animator)
            //    animator.SetBool("walking", false);
        }

        if (currWorkShift <= 0)
        {
            myInteractor.CancelInteraction();
            if (animator)
            {
                animator.SetBool("interacting", false);
            }
            currRestBreak = restTime;
            currState     = ActivityState.resting;
            closestObject = null;
        }
    }
示例#12
0
        public Action <Canvas> GetAction(XPoint[] xpoints, ActivityState context)
        {
            return(new Action <Canvas> ((canvas) => {
                canvas.RotateY(context);

                var path = new Path();
                var first = xpoints.First();
                var min = xpoints.Min(x => x.Y);
                var last = xpoints.Last();
                path.MoveTo(0, 0);

                foreach (var point in xpoints.ToArray())
                {
                    path.LineTo(point.X, point.Y);
                }

                path.LineTo(last.X, min);
                path.LineTo(first.X, min);
                path.LineTo(first.X, first.Y);
                path.Close();
                canvas.DrawPath(path, SignalPaint);

                canvas.RotateY(context);
            }));
        }
示例#13
0
        public void OnActivityStateChanged(object s, ActivityState e)
        {
            switch (e)
            {
            case ActivityState.Started:
                Map?.OnStart();
                break;

            case ActivityState.Resumed:
                Map?.OnResume();
                break;

            case ActivityState.Paused:
                Map?.OnPause();
                break;

            case ActivityState.Stopped:
                Map?.OnStop();
                break;

            case ActivityState.Destroyed:
                Map?.OnDestroy();
                break;

            case ActivityState.LowMemory:
                Map?.OnLowMemory();
                break;
            }
        }
示例#14
0
 private void SetBookmarkState(ActivityState state)
 {
     foreach (var bookmark in _application.GetBookmarks())
     {
         _application.ResumeBookmark(bookmark.BookmarkName, state);
     }
 }
示例#15
0
 private void UpdateActivityStatus(ActivityState state, string error = null)
 {
     if (ActivityStateChanged != null)
     {
         ActivityStateChanged(this, new ActivityStateEventArgs(this.Id, this.Name, state, error));
     }
 }
示例#16
0
        public SearchAgent()
        {
            State = ActivityState.INACTIVE;
            InitializeResultsStruct();

            m_threadCount = 0;
        }
示例#17
0
 /// <summary>
 /// 重新初始化非服务端控制的活动的时间与状态
 /// </summary>
 public void StateUpdateTime()
 {
     if (!SerVerCententTime)
     {
         state = GetInTime();
     }
 }
示例#18
0
 protected override void OnStart()
 {
     base.OnStart();
     State = ActivityState.Started;
     BindEventHandlers();
     ViewModel?.ViewAppearing();
 }
示例#19
0
        public Yield Invoke(Plug plug, string verb, XUri uri, DreamMessage request, Result <DreamMessage> response)
        {
            Result <DreamMessage> res;

            // register activity
            DreamContext    context = DreamContext.CurrentOrNull;
            Action <string> activity;

            if (context != null)
            {
                activity = new ActivityState(context.Env, verb, uri.ToString()).Message;
            }
            else
            {
                activity = delegate(string message) { };
            }
            activity("pre Invoke");
            yield return(res = Coroutine.Invoke(HandleInvoke, activity, plug, verb, uri, request, new Result <DreamMessage>(response.Timeout)).Catch());

            activity("post Invoke");

            // unregister activity
            activity(null);

            // return response
            response.Return(res);
        }
示例#20
0
    ActivityState GetInTime()
    {
        ActivityState newState = ActivityState.NOTATTHE;

        if (RefData == null)
        {
            return(ActivityState.HASENDED);
        }
        updateTimePoint = 0;
        minTime         = 0;
        newServerTime   = GameCenter.instance.CurServerTime;
        if (ID == ActivityType.FAIRYAUSIEGE)
        {
            int time = GameCenter.mainPlayerMng.ServerStartTiem(3, newServerTime);
            if (time > 0)
            {
                //UpdateTimePoint = time;//没必要在这设置距离下次更新的时间点,这里设置会导致到达三天的时间前五分钟会出现图标提示 by ljq
                return(newState);
            }
        }

        if (RefData.looptype == (int)Looptype.DayLoop)
        {
            newState = GetInDayTime();
        }
        else if (RefData.looptype == (int)Looptype.WeekLoop)
        {
            for (int i = 0; i < RefData.loopday.Count; i++)
            {
                if (RefData.loopday[i] != 0)
                {
                    if (newServerTime.DayOfWeek == (DayOfWeek)(RefData.loopday[i] % 7))
                    {
                        newState = GetInDayTime();
                    }
//					else if(newServerTime.DayOfWeek == (DayOfWeek)(RefData.loopday[i]%7 - 1)){
//						return GetInDayTime(true);
//					}
                }
            }
        }
        else if (RefData.looptype == (int)Looptype.MonthLoop)
        {
            newServerTime = GameCenter.instance.CurServerTime;
            for (int i = 0; i < RefData.loopday.Count; i++)
            {
                if (RefData.loopday[i] != 0)
                {
                    if (newServerTime.Day == RefData.loopday[i])
                    {
                        newState = GetInDayTime();
                    }
//					else if(cur.Day == RefData.loopday[i] - 1){
//						return GetInDayTime(true);
//					}
                }
            }
        }
        return(newState);
    }
示例#21
0
        /// <summary>
        /// Updates the activity monitor.
        /// </summary>
        /// <param name="newState">The new state.</param>
        /// <param name="newMessage">The new message.</param>
        /// <param name="fallBackMessage">The fall back message.</param>
        /// <param name="resetToIdleAfterXMilliseconds">The monitor state is automatically reverted to idle after X milliseconds (0
        /// = never revert).</param>
        public void UpdateActivityMonitor(ActivityState newState, string newMessage, string fallBackMessage = "", double resetToIdleAfterXMilliseconds = 0)
        {
            var strImage = "";

            switch (newState)
            {
            case ActivityState.AuctionFound:
                strImage = "/Images/auctionPlus.ico";
                break;

            case ActivityState.Error:
                strImage = "/Images/auctionAlert.ico";

                break;

            case ActivityState.Transmitting:
                strImage = "/Images/auctionArrow.ico";
                break;

            case ActivityState.Disabled:
                strImage = "/Images/auctionDisabled.ico";
                break;

            default:
                strImage = "/Images/auction.ico";
                break;
            }

            this.IconStatusMessage = $"P99 Auction House - {newMessage}";
            if (!string.IsNullOrWhiteSpace(strImage))
            {
                this.IconImage = strImage;

                if (resetToIdleAfterXMilliseconds > 0)
                {
                    if (string.IsNullOrWhiteSpace(fallBackMessage))
                    {
                        fallBackMessage = "P99 Auction House";
                    }
                    else
                    {
                        fallBackMessage = $"P99 Auction House - {fallBackMessage}";
                    }

                    if (timer == null || timer.Enabled == false)
                    {
                        timer          = new Timer();
                        timer.Elapsed += (sender, args) =>
                        {
                            this.UpdateActivityMonitor(ActivityState.Idle, fallBackMessage);
                            timer.Stop();
                        };
                        timer.AutoReset = false;
                        timer.Interval  = resetToIdleAfterXMilliseconds;
                        timer.Start();
                    }
                }
            }
        }
示例#22
0
 public void On(StepExecutedEvent evnt)
 {
     _currentStep++;
     _failures = 0;
     _state    = _currentStep == _steps.Length
         ? ActivityState.Finished
         : ActivityState.WaitingForExternalDependency;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ActivityStateEventArgs"/> class.
 /// </summary>
 /// <param name="id">The id.</param>
 /// <param name="name">The name.</param>
 /// <param name="state">The state.</param>
 /// <param name="message">The message.</param>
 public ActivityStateEventArgs(Guid id, string name, ActivityState state, string message)
     : this(id, name, state)
 {
     if (!string.IsNullOrEmpty(message))
     {
         Message = message;
     }
 }
示例#24
0
 /// <summary>
 /// Creates a new many-to-many relationship between a weekday and a resource.
 /// </summary>
 /// <param name="weekday">The involved weekday.</param>
 /// <param name="resource">The involved resource.</param>
 public Activity(Weekday weekday, Pictogram pictogram, int order, ActivityState state)
 {
     this.Other        = weekday;
     this.PictogramKey = pictogram.Id;
     this.Pictogram    = pictogram;
     this.Order        = order;
     this.State        = state;
 }
示例#25
0
 public ActivityDatum(DateTimeOffset timestamp, Activities activity, ActivityPhase phase, ActivityState state, ActivityConfidence confidence)
     : base(timestamp)
 {
     Activity   = activity;
     Phase      = phase;
     State      = state;
     Confidence = confidence;
 }
 internal protected override void Initialize()
 {
     tube.ChannelReady += OnChannelReady;
     tube.Closed       += OnTubeClosed;
     tube.TubeOffered  += OnTubeOffered;
     state              = ActivityState.RemotePending;
     tube.Process();
 }
示例#27
0
        protected void TranslateToConsumedState()
        {
            if (ActivityState != ActivityState.Running)
            {
                throw new Exception($"Cannot end activity that is not in Running state. Current state - {this.ActivityState}");
            }

            ActivityState = ActivityState.Consumed;
        }
示例#28
0
        public void StoreRole(IActor actor, ActivityState activityState)
        {
            string role = activityState.ActorRoleName;

            if (!string.IsNullOrEmpty(role))
            {
                setAttribute(role, actor);
            }
        }
示例#29
0
 public Activity(ActivityState status, AowGameType type, string fileName, string mapTitle, string turnNo)
 {
     _status    = status;
     _type      = type;
     _fileName  = fileName;
     _mapTitle  = mapTitle;
     _turnNo    = turnNo;
     _dateTicks = DateTime.Now.Ticks.ToString();
 }
示例#30
0
 protected override void OnStop()
 {
     base.OnStop();
     if (ViewModel != null && _activityState != ActivityState.Stopped)
     {
         ViewModel.OnNavigatedFrom(new NavigationArgs(NavigationArgs.NavigationMode.Back));
     }
     _activityState = ActivityState.Stopped;
 }
        /// <summary>
        /// Updates the activity monitor.
        /// </summary>
        /// <param name="newState">The new state.</param>
        /// <param name="newMessage">The new message.</param>
        /// <param name="fallBackMessage">The fall back message.</param>
        /// <param name="resetToIdleAfterXMilliseconds">The monitor state is automatically reverted to idle after X milliseconds (0
        /// = never revert).</param>
        public void UpdateActivityMonitor(ActivityState newState, string newMessage, string fallBackMessage = "", double resetToIdleAfterXMilliseconds = 0)
        {
            var strImage = "";
            switch (newState)
            {
                case ActivityState.AuctionFound:
                    strImage = "/Images/auctionPlus.ico";
                    break;
                case ActivityState.Error:
                    strImage = "/Images/auctionAlert.ico";

                    break;
                case ActivityState.Transmitting:
                    strImage = "/Images/auctionArrow.ico";
                    break;
                case ActivityState.Disabled:
                    strImage = "/Images/auctionDisabled.ico";
                    break;
                default:
                    strImage = "/Images/auction.ico";
                    break;
            }

            this.IconStatusMessage = $"P99 Auction House - {newMessage}";
            if (!string.IsNullOrWhiteSpace(strImage))
            {
                this.IconImage = strImage;

                if (resetToIdleAfterXMilliseconds > 0)
                {
                    if (string.IsNullOrWhiteSpace(fallBackMessage))
                        fallBackMessage = "P99 Auction House";
                    else
                        fallBackMessage = $"P99 Auction House - {fallBackMessage}";

                    if (timer == null || timer.Enabled == false)
                    {
                        timer = new Timer();
                        timer.Elapsed += (sender, args) =>
                        {
                            this.UpdateActivityMonitor(ActivityState.Idle, fallBackMessage);
                            timer.Stop();
                        };
                        timer.AutoReset = false;
                        timer.Interval = resetToIdleAfterXMilliseconds;
                        timer.Start();
                    }
                }
            }
        }
示例#32
0
        public Yield Invoke(Plug plug, string verb, XUri uri, DreamMessage request, Result<DreamMessage> response)
        {
            Result<DreamMessage> res;

            // register activity
            DreamContext context = DreamContext.CurrentOrNull;
            Action<string> activity;
            if(context != null) {
                activity = new ActivityState(context.Env, verb, uri.ToString()).Message;
            } else {
                activity = delegate(string message) { };
            }
            activity("pre Invoke");
            yield return res = Coroutine.Invoke(HandleInvoke, activity, plug, verb, uri, request, new Result<DreamMessage>(response.Timeout)).Catch();
            activity("post Invoke");

            // unregister activity
            activity(null);

            // return response
            response.Return(res);
        }
示例#33
0
        private void WorkerThreadMethod()
        {
            bool revert = (state != ActivityState.Idle);

            state = ActivityState.Running;

            OnProgressChanged(EventArgs.Empty);

            if (!revert)
                state = Execute();
            else
                state = Revert();

            workerThread = null;
            OnProgressChanged(EventArgs.Empty);
        }
 protected virtual void OnTubeOffered(object sender, EventArgs args)
 {
     state = ActivityState.LocalPending;
 }
 protected virtual void OnTubeClosed(object sender, EventArgs args)
 {
     Console.WriteLine ("{0} detected Tube closing", Contact.Name);
     state = ActivityState.Idle;
     OnClosed (EventArgs.Empty);
 }
 protected internal override void Initialize()
 {
     tube.ChannelReady += OnChannelReady;
     tube.Closed += OnTubeClosed;
     tube.TubeOffered += OnTubeOffered;
     state = ActivityState.RemotePending;
     tube.Process ();
 }
        public void Start()
        {
            if (state != ActivityState.Idle) {
                return;
            }

            //            if (!Contact.HasService (service)) {
            //                throw new InvalidOperationException (String.Format ("{0} does not support service {1}",
            //                                                                    Contact.Name, service));
            //            }

            tube.Offer ();
            state = ActivityState.RemotePending;
        }
        public void Accept()
        {
            if (state != ActivityState.LocalPending) {
                throw new InvalidOperationException (String.Format ("Activity state is not in expected state of {0}",
                                                                    ActivityState.LocalPending));
            }

            tube.Accept ();
            state = ActivityState.RemotePending;
        }
示例#39
0
        private void RequestHandler(IAsyncResult ar)
        {
            HttpListenerContext httpContext = null;
            Action<string> activity = null;
            HttpListener listener = (HttpListener)ar.AsyncState;

            // try to finish getting the current context
            try {
                httpContext = listener.EndGetContext(ar);
            } catch(Exception e) {
                _log.WarnExceptionFormat(e, "unable to finish acquiring the request context, unable to handle request");
            }

            // start listening for next request
            if(!listener.IsListening) {
                _log.Debug("dropping out of request handler, since the listener is no longer listening");
                return;
            }
            try {
                listener.BeginGetContext(RequestHandler, listener);
            } catch(Exception e) {
                _log.WarnExceptionFormat(e, "unable to re-aquire context, dropping out of request handler");
                return;
            }

            // if we didn't succeed in ending the GetContext call, drop out
            if(httpContext == null) {
                return;
            }
            DreamMessage request = null;
            try {

                // finish listening for current context
                string[] prefixes = new string[listener.Prefixes.Count];
                listener.Prefixes.CopyTo(prefixes, 0);
                XUri requestUri = HttpUtil.FromHttpContext(httpContext);
                _log.DebugMethodCall("RequestHandler", httpContext.Request.HttpMethod, requestUri);

                // create request message
                request = new DreamMessage(DreamStatus.Ok, new DreamHeaders(httpContext.Request.Headers), MimeType.New(httpContext.Request.ContentType), httpContext.Request.ContentLength64, httpContext.Request.InputStream);
                DreamUtil.PrepareIncomingMessage(request, httpContext.Request.ContentEncoding, prefixes[0], httpContext.Request.RemoteEndPoint.ToString(), httpContext.Request.UserAgent);
                requestUri = requestUri.AuthorizeDreamInParams(request, _dreamInParamAuthtoken);

                // check if the request was forwarded through Apache mod_proxy
                string hostname = requestUri.GetParam(DreamInParam.HOST, null) ?? request.Headers.ForwardedHost ?? request.Headers.Host ?? requestUri.HostPort;
                activity = new ActivityState(_env, httpContext.Request.HttpMethod, httpContext.Request.Url.ToString(), hostname).Message;
                activity("RequestHandler");

                // process message
                _env.UpdateInfoMessage(_sourceExternal, null);
                string verb = httpContext.Request.HttpMethod;
                _env.SubmitRequestAsync(verb, requestUri, httpContext.User, request, new Result<DreamMessage>(TimeSpan.MaxValue))
                    .WhenDone(result => Coroutine.Invoke(ResponseHandler, request, result, httpContext, activity, new Result(TimeSpan.MaxValue)));
            } catch(Exception ex) {
                _log.ErrorExceptionMethodCall(ex, "RequestHandler");
                if(request != null) {
                    request.Close();
                }
                try {
                    DreamMessage response = DreamMessage.InternalError(ex);
                    httpContext.Response.StatusCode = (int)response.Status;
                    Stream stream = response.ToStream();
                    httpContext.Response.Headers.Clear();
                    foreach(KeyValuePair<string, string> pair in response.Headers) {
                        HttpUtil.AddHeader(httpContext.Response, pair.Key, pair.Value);
                    }
                    httpContext.Response.KeepAlive = false;
                    long size = response.ContentLength;
                    if(((size == -1) || (size > 0)) && (stream != Stream.Null)) {
                        CopyStream(delegate { }, stream, httpContext.Response.OutputStream, size, new Result<long>(DreamHostService.MAX_REQUEST_TIME)).Block();
                    }
                    httpContext.Response.OutputStream.Flush();
                } catch {
                    httpContext.Response.StatusCode = (int)DreamStatus.InternalError;
                }
                httpContext.Response.Close();
                if(activity != null) {
                    activity(null);
                }
            }
        }