예제 #1
0
        /// <summary>
        /// Görevin durumunu değiştirir
        /// </summary>
        public async Task <bool> ChangeState(Guid id, CompleteState state)
        {
            //Enum tanımlı mı?
            if (!Enum.IsDefined(typeof(CompleteState), state))
            {
                return(false);
            }

            //Durumu değiştirilen görev "Yeni" değerine atanamaz
            if (state == CompleteState.New)
            {
                return(false);
            }

            var work = await _context.Works.SingleOrDefaultAsync(x => x.WorkId == id);

            //Mevcut durum gelen ile aynı veya mevcut durumu bitmiş iken değiştirme yapılamaz
            if (work == null || work.CompleteState == CompleteState.Finish || work.CompleteState == state)
            {
                return(false);
            }

            work.CompleteState = (CompleteState)state;


            return(await _context.SaveChangesAsync() > 0);
        }
예제 #2
0
 public void EvaluateToken(JsonToken token, object?value, int depth)
 {
     if (EvaluateTokenCore(token, value, depth))
     {
         Complete = CompleteState.Completed;
     }
 }
예제 #3
0
 public void Execute(Client player)
 {
     GameObject[] NormPoints = GameObject.FindGameObjectsWithTag("Normal");
     if (NormPoints.Length == 0)
     {
         CompleteState completeState = new CompleteState();
         completeState.Enter(player);
     }
 }
예제 #4
0
        public async Task <IActionResult> ChangeState([FromQuery] Guid id, [FromBody] CompleteState state)
        {
            var result = await _workService.ChangeState(id, state);

            if (result)
            {
                return(Ok());
            }
            else
            {
                return(BadRequest());
            }
        }
예제 #5
0
        public virtual void Initialize(ContextBase context, SchemaScope?parent, int initialDepth, ScopeType type)
        {
            Context      = context;
            Parent       = parent;
            InitialDepth = initialDepth;
            Type         = type;
            Complete     = CompleteState.Incomplete;

#if DEBUG
            Interlocked.Increment(ref LastDebugId);
            DebugId = LastDebugId;
#endif
        }
예제 #6
0
        public void Draw(Graphics graphics) {
            // TODO GameManager.State에 따라 다른 형태의 화면 표시가 필요함
            
            var world = _manager.GetWorld();

            var entities = world.EntityManager.Entities;

            float width = _control.DisplayRectangle.Right - _control.DisplayRectangle.Left;
            float height = _control.DisplayRectangle.Bottom - _control.DisplayRectangle.Top;

            var factorWidth = width / world.Size.Width;
            var factorHeight = height / world.Size.Height;
            graphics.FillRectangle(Brushes.Black, 0, 0, world.Size.Width * factorWidth, world.Size.Height * factorHeight);
            graphics.DrawString($@"Game state: {_manager.State switch {
                PlayingState _ => "Playing",
                PausedState _ => "Paused",
                CompleteState _ => "Complete",
                CompleteAllState _ => "CompleteAll",
                IntermediateState _ => "Intermediate",
                GameOverState _ => "GameOver",
                _ => "Else"
            }}", new Font("Arial", 16), Brushes.White, 0, 0);
예제 #7
0
 protected void UpdateStateInvoke()
 {
     CompleteState.Invoke(this);
 }
    protected void Page_Load(object sender, EventArgs e)
    {
        Conn.Open();

        userID  = Session["userID"].ToString();
        bookID  = Request.Form["bookID"];
        grade   = Request.Form["grade"];
        content = Request.Form["content"];

        // 查書籍借閱者ID
        String borrowerIDsql = "SELECT [Lease].BorrowerID " +
                               "FROM [Lease] " +
                               "WHERE [Lease].LeaseID='" + bookID + "'";
        SqlCommand    borrowerIDCmd = new SqlCommand(borrowerIDsql, Conn);
        SqlDataReader borrowerIDdr  = borrowerIDCmd.ExecuteReader();

        while (borrowerIDdr.Read())
        {
            borrowerID = borrowerIDdr["BorrowerID"].ToString();
        }

        borrowerIDCmd.Cancel();
        borrowerIDdr.Close();


        // insert letter to 借閱者([Letter].Recipient=borrowerID, [Letter].LeaseID=bookID)
        // findmaxLetterIDsql start
        String findmaxLetterIDsql = "SELECT MAX (CONVERT(int, \"LetterID\")) as maxID " +
                                    "FROM Letter";

        SqlCommand    findmaxLetterIDCmd = new SqlCommand(findmaxLetterIDsql, Conn);
        SqlDataReader findmaxLetterIDdr  = findmaxLetterIDCmd.ExecuteReader();

        while (findmaxLetterIDdr.Read())
        {
            Int16 maxID = Convert.ToInt16(findmaxLetterIDdr["maxID"].ToString());
            nextLetterID = (maxID + 1).ToString();
        }

        findmaxLetterIDCmd.Cancel();
        findmaxLetterIDdr.Close();
        // findmaxLetterIDsql end

        String insertLettersql = "INSERT INTO Letter " +
                                 "VALUES('" + nextLetterID + "', '出租者確認收到書籍', '您已完成租借教材程序','" + borrowerID + "', '0', '" + bookID + "')";
        SqlCommand    insertLetterCmd = new SqlCommand(insertLettersql, Conn);
        SqlDataReader insertLetterdr  = insertLetterCmd.ExecuteReader();

        insertLetterCmd.Cancel();
        insertLetterdr.Close();


        // 更改[lease].RevertSitutaion=2
        String updateLeasesql = "UPDATE [Lease] " +
                                "SET [Lease].RevertSituation='2' " +
                                "WHERE [Lease].LeaseID='" + bookID + "'";
        SqlCommand    updateLeaseCmd = new SqlCommand(updateLeasesql, Conn);
        SqlDataReader updateLeasedr  = updateLeaseCmd.ExecuteReader();

        updateLeaseCmd.Cancel();
        updateLeasedr.Close();

        // 新增UserEvalution
        // findmaxUEvaIDsql start
        String findmaxUEvaIDsql = "SELECT MAX (CONVERT(int, \"UserEvaluationID\")) as maxID " +
                                  "FROM UserEvaluation";

        SqlCommand    findmaxUEvaIDCmd = new SqlCommand(findmaxUEvaIDsql, Conn);
        SqlDataReader findmaxUEvaIDdr  = findmaxUEvaIDCmd.ExecuteReader();

        while (findmaxUEvaIDdr.Read())
        {
            Int16 maxID = Convert.ToInt16(findmaxUEvaIDdr["maxID"].ToString());
            nextUEvaID = (maxID + 1).ToString();
        }

        findmaxUEvaIDCmd.Cancel();
        findmaxUEvaIDdr.Close();
        // findmaxUEvaIDsql end

        // insertEvasql start
        String insertEvasql = "INSERT INTO UserEvaluation " +
                              "VALUES('" + nextUEvaID + "','" + grade + "','" + content + "','" + borrowerID + "', '" + nextLetterID + "')";
        SqlCommand    insertEvaCmd = new SqlCommand(insertEvasql, Conn);
        SqlDataReader insertEvadr  = insertEvaCmd.ExecuteReader();

        insertEvaCmd.Cancel();
        insertEvadr.Close();
        // insertEvasql end

        // ajax back
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        var           responseEntities  = new List <CompleteState>();
        CompleteState state             = new CompleteState {
            state = "success"
        };

        responseEntities.Add(state);

        var result = serializer.Serialize(responseEntities);

        Response.Write(result);
        Response.End();


        Conn.Close();
    }