Ejemplo n.º 1
0
        public override Returned Execute(Ambit ambit)
        {
            var returned = new Returned();

            if (this.type == 1)
            {
                returned = new Returned(int.Parse(this.value.ToString()), DataType.INTEGER);
            }
            else if (this.type == 2)
            {
                returned = new Returned(this.value.ToString(), DataType.STRING);
            }

            else if (this.type == 3)
            {
                if (this.value.ToString() == "false")
                {
                    returned = new Returned(false, DataType.BOOLEAN);
                }
                else
                {
                    returned = new Returned(true, DataType.BOOLEAN);
                }
            }
            else if (this.type == 4)
            {
                returned = new Returned(double.Parse(this.value.ToString()), DataType.REAL);
            }

            else if (this.type == 7)
            {
                returned = new Returned(this.value.ToString(), DataType.IDENTIFIER);
            }
            return(returned);
        }
        public IActionResult Return(Guid id, [FromBody] Returned returner)
        {
            logger.LogInformation($"Looking for timesheet {id}");

            Timecard timecard = repository.Find(id);

            if (timecard != null)
            {
                if (timecard.Status != TimecardStatus.Submitted)
                {
                    return(StatusCode(409, new InvalidStateError()
                    {
                    }));
                }

                var transition = new Transition(returner, TimecardStatus.Draft);

                logger.LogInformation($"Adding submittal {transition}");

                timecard.Transitions.Add(transition);

                repository.Update(timecard);

                return(Ok(transition));
            }
            else
            {
                return(NotFound());
            }
        }
Ejemplo n.º 3
0
        public override object Execute(Ambit ambit)
        {
            Identifier buscar = new Identifier();

            //BUSCA LA VARIABLE SI NO HA SIDO DECLARADA
            if (!ambit.Ambit_name_inmediato.Equals("Function") && !ambit.Ambit_name_inmediato.Equals("Procedure"))
            {
                buscar = ambit.getVariable(id);
            }
            //SIGFINICA QUE ES UNA DECLARACION EN FUNCION
            else
            {
                buscar = ambit.getVariableFunctionInAmbit(id);
            }

            if (buscar.IsNull)
            {
                try
                {
                    Returned val = this.value.Execute(ambit);

                    //VERIFICA QUE NO HAYA ERROR
                    if (val.getDataType == DataType.ERROR)
                    {
                        return(null);
                    }


                    if (this.type == DataType.CONST)
                    {
                        ambit.save(this.id, val.Value, val.getDataType, true, true, "Constante");
                        return(val.Value);
                    }
                    else
                    {
                        if (val.getDataType == this.type)
                        {
                            ambit.save(this.id, val.Value, val.getDataType, false, isAssigned, "Variable");
                            return(val.Value);
                        }
                        else
                        {
                            set_error("El tipo " + val.getDataType + " no es asignable con " + this.type.ToString(), row, column);
                            return(null);
                        }
                    }
                }
                catch (Exception)
                {
                }
            }
            else
            {
                set_error("La variable '" + id + "' ya fue declarada", row, column);
                return(null);
            }
            return(0);
        }
Ejemplo n.º 4
0
 public CustomEntry()
 {
     InitializeComponent();
     ReturnCommand = new Command(() =>
     {
         Returned?.Invoke(this, new EntryEventArgs(Name));
     });
     PwEntry.Focused += (sender, e) => AnimateError(false);
     BindingContext   = this;
 }
Ejemplo n.º 5
0
        public override Returned Execute(Ambit ambit)
        {
            var result    = new Returned();
            var operacion = GetOpLogical(this.type);



            if (operacion != OpLogical.NOT)
            {
                var varIz  = this.left.Execute(ambit);
                var valDer = right.Execute(ambit);
                if (varIz.Value is bool && valDer.Value is bool)
                {
                    var izq = (bool)(varIz.Value);

                    switch (operacion)
                    {
                    case OpLogical.AND:
                        var der = (bool)(valDer.Value);
                        result = new Returned((izq && der), DataType.BOOLEAN);
                        break;

                    case OpLogical.OR:
                        var valDere = right.Execute(ambit);
                        var dere    = (bool)(valDere.Value);
                        result = new Returned((izq || dere), DataType.BOOLEAN);
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    set_error("Operador '" + this.type + "' NO puede ser aplicado a los tipos " + varIz.getDataType + " con " + valDer.getDataType, 0, 0);
                    return(new Returned());
                }
            }
            else
            {
                var varIz = this.left.Execute(ambit);
                if (varIz.Value is bool)
                {
                    var izq = (bool)(varIz.Value);
                    result = new Returned(!(izq), DataType.BOOLEAN);
                }
                else
                {
                    set_error("Operador '" + this.type + "' NO puede ser aplicado al tipo " + varIz.getDataType, 0, 0);
                    return(new Returned());
                }
            }
            return(result);
        }
Ejemplo n.º 6
0
        public override void Update(bool[] pressed)
        {
            select.Update();
            select.Position = new Vector2(selects[(int)pausetype].Position.X - 4, selects[(int)pausetype].Position.Y - 4);

            if (pressed[(int)ButtonType.Up])
            {
                ChangePauseType(-1);
                Sound.Play(soundfilenames[0], -1000);
            }
            else if (pressed[(int)ButtonType.Down])
            {
                ChangePauseType(1);
                Sound.Play(soundfilenames[0], -1000);
            }
            else if (pressed[(int)ButtonType.Cross] || pressed[(int)ButtonType.Start])
            {
                if (Resumed != null)
                {
                    Resumed.Invoke(this, EventArgs.Empty);
                }
            }
            else if (pressed[(int)ButtonType.Circle])
            {
                if (pausetype == PauseType.Resume)
                {
                    if (Resumed != null)
                    {
                        Resumed.Invoke(this, EventArgs.Empty);
                    }
                }
                else if (pausetype == PauseType.Retry)
                {
                    if (Retryed != null)
                    {
                        Retryed.Invoke(this, EventArgs.Empty);
                    }
                }
                else if (pausetype == PauseType.Return)
                {
                    if (Returned != null)
                    {
                        Returned.Invoke(this, EventArgs.Empty);
                    }
                }
            }
        }
Ejemplo n.º 7
0
    public void Interact()
    {
        // Player's Animation State Change
        // Lightbulb GameObject destroyed

        PlayerMovement player = FindObjectOfType <PlayerMovement>();
        Transform      lightbulb;

        if (player == null)
        {
            return;
        }

        if (noLightbulb)
        {
            lightbulb = player.transform.GetChild(0).GetChild(0);
            lightbulb.SetParent(transform);
            lightbulb.SetAsFirstSibling();
            lightbulb.localPosition = Vector3.zero;
            lightbulb.localRotation = Quaternion.identity;
            lightbulb.localScale    = Vector3.one;
            noLightbulb             = false;

            Returned?.Invoke();
        }
        else
        {
            lightbulb = transform.GetChild(0);
            lightbulb.SetParent(player.transform.GetChild(0));
            lightbulb.localPosition = Vector3.zero;
            lightbulb.localRotation = Quaternion.identity;
            lightbulb.localScale    = Vector3.one;
            noLightbulb             = true;

            Removed?.Invoke();
        }
    }
Ejemplo n.º 8
0
 public ScimTypeAttributeDefinitionBuilder <T, TAttribute> SetReturned(Returned returned)
 {
     Returned = returned;
     return(this);
 }
Ejemplo n.º 9
0
 private void OnReturned(BrokerReturnedEventArgs e)
 {
     Returned?.Invoke(this, e);
 }
Ejemplo n.º 10
0
        public override Returned Execute(Ambit ambit)
        {
            var valIz  = this.left.Execute(ambit);
            var valDer = this.right.Execute(ambit);


            TablaTipo tablaTipo = new TablaTipo();

            var res = tablaTipo.getTipoRel(valIz.getDataType, valDer.getDataType);

            if (res == DataType.ERROR)
            {
                set_error("Operador '" + this.type + "' NO puede ser aplicado a los tipos " + valIz.getDataType + " con " + valDer.getDataType, 0, 0);
                return(new Returned());
            }


            var result = new Returned();
            var op     = GetType(this.type);

            switch (op)
            {
            case OpRelational.EQUALS:

                var equals = (bool)(valIz.Value.ToString() == valDer.Value.ToString());
                result = new Returned(equals, DataType.BOOLEAN);
                break;

            case OpRelational.DISCTINCT:
                var distict = (bool)(valIz.Value.ToString() != valDer.Value.ToString());
                result = new Returned(distict, DataType.BOOLEAN);
                break;

            case OpRelational.LESS:
                var less = (bool)(double.Parse(valIz.Value.ToString()) < double.Parse(valDer.Value.ToString()));
                result = new Returned(less, DataType.BOOLEAN);

                break;

            case OpRelational.LESS_EQUALS:
                var lessE = (bool)(double.Parse(valIz.Value.ToString()) <= double.Parse(valDer.Value.ToString()));
                result = new Returned(lessE, DataType.BOOLEAN);

                break;

            case OpRelational.HIGHER:
                var higher = (bool)(double.Parse(valIz.Value.ToString()) > double.Parse(valDer.Value.ToString()));
                result = new Returned(higher, DataType.BOOLEAN);
                break;

            case OpRelational.HIGHER_EQUALS:
                var higherE = (bool)(double.Parse(valIz.Value.ToString()) >= double.Parse(valDer.Value.ToString()));
                result = new Returned(higherE, DataType.BOOLEAN);

                break;

            default:
                break;
            }

            return(result);
        }
Ejemplo n.º 11
0
 protected void OnReturn()
 {
     Returned?.Invoke(this, EventArgs.Empty);
 }
Ejemplo n.º 12
0
        /// <summary>
        /// 打印购物凭证
        /// </summary>
        /// <param name="numb">销售编号</param>
        /// <returns></returns>
        public ActionResult PrintReceipt(int Id)
        {
            Returned returned = _returnedContract.Returneds.FirstOrDefault(c => c.Id == Id);

            return(PartialView(returned));
        }
        public override Returned Execute(Ambit ambit)
        {
            var varIz  = new Returned();
            var valDer = new Returned();

            var arithmetic_string = "";
            var texto_original    = "";

            if ((this.left is CallFunction) && !(this.right is CallFunction))
            {
                varIz             = this.left.Execute(ambit);
                valDer            = this.right.Execute(ambit);
                arithmetic_string = varIz.Texto_anterior + valDer.Texto_anterior;
                texto_original    = varIz.Valor_original + type + valDer.Valor_original;
            }
            else if (!(this.left is CallFunction) && (this.right is CallFunction))
            {
                valDer            = this.right.Execute(ambit);
                varIz             = this.left.Execute(ambit);
                arithmetic_string = valDer.Texto_anterior + varIz.Texto_anterior;
                texto_original    = varIz.Valor_original + type + valDer.Valor_original;
            }
            else
            {
                varIz             = this.left.Execute(ambit);
                valDer            = this.right.Execute(ambit);
                arithmetic_string = varIz.Texto_anterior + valDer.Texto_anterior;
                texto_original    = varIz.Valor_original + type + valDer.Valor_original;
            }


            var generator = C3DController.Instance;


            if (varIz.getDataType == DataType.INTEGER || varIz.getDataType == DataType.REAL)
            {
                if (valDer.getDataType == DataType.INTEGER || valDer.getDataType == DataType.REAL)
                {
                    var temp = generator.newTemporal();
                    arithmetic_string += generator.addExpression(temp, varIz.getValue(), valDer.getValue(), type, cant_tabs);

                    if (valDer.getDataType == DataType.REAL || varIz.getDataType == DataType.REAL)
                    {
                        return(new Returned(temp, DataType.REAL, true, "", "", arithmetic_string, texto_original, 0, 0));
                    }
                    return(new Returned(temp, DataType.INTEGER, true, "", "", arithmetic_string, texto_original, 0, 0));
                }
                set_error("Operador '" + this.type + "' NO puede ser aplicado a los tipos " + varIz.getDataType + " con " + valDer.getDataType, row, column);
                return(new Returned());
            }
            else if (varIz.getDataType == DataType.STRING && valDer.getDataType == DataType.STRING)
            {
                arithmetic_string += generator.addExpression("T9", varIz.getValue(), "", "", cant_tabs);
                arithmetic_string += generator.addExpression("T10", valDer.getValue(), "", "", cant_tabs);
                arithmetic_string += generator.save_code("native_concat_str();", cant_tabs);
                return(new Returned("T12", DataType.STRING, true, "", "", arithmetic_string, texto_original, 0, 0));
            }


            set_error("Operador '" + this.type + "' NO puede ser aplicado a los tipos " + varIz.getDataType + " con " + valDer.getDataType, row, column);
            return(new Returned());
        }
        public override Returned Execute(Ambit ambit)
        {
            var relational_Str = "";
            var valIz          = this.left.Execute(ambit);

            relational_Str += valIz.Texto_anterior;

            var result = new Returned();

            var generator = C3DController.Instance;

            var op = GetType(this.type);

            switch (op)
            {
            case OpRelational.EQUALS:
                relational_Str += generator.save_comment("Empieza EQUALS", cant_tabs, false);
                //VERIFICA SI EL IZQUIERDO ES REAL O INT
                if (valIz.getDataType == DataType.REAL || valIz.getDataType == DataType.INTEGER)
                {
                    var valDer = this.right.Execute(ambit);
                    relational_Str += valDer.Texto_anterior;

                    if (valDer.getDataType == DataType.INTEGER || valDer.getDataType == DataType.REAL)
                    {
                        if (this.TrueLabel == "")
                        {
                            this.TrueLabel = generator.newLabel();
                        }
                        if (this.FalseLabel == "")
                        {
                            this.FalseLabel = generator.newLabel();
                        }
                        ambit.free_temp(valIz.getValue());
                        ambit.free_temp(valDer.getValue());

                        relational_Str += generator.add_If(valIz.getValue(), valDer.getValue(), "==", this.TrueLabel, cant_tabs);
                        relational_Str += generator.add_Goto(this.FalseLabel, cant_tabs);
                        relational_Str += generator.save_comment("Termina EQUALS", cant_tabs, true);

                        result = new Returned("", DataType.BOOLEAN, false, this.TrueLabel, this.FalseLabel, relational_Str, "", 0, 0);
                    }
                    else
                    {
                        set_error("Operador '" + this.type + "' NO puede ser aplicado a los tipos " + valIz.getDataType + " con " + valDer.getDataType, row, column);
                        return(result);
                    }
                }
                //VERIFICA SI EL IZQUIERDO ES BOOLEAN
                else if (valIz.getDataType == DataType.BOOLEAN)
                {
                    var trueLabel  = generator.newLabel();
                    var falseLabel = generator.newLabel();
                    relational_Str       += generator.addLabel(valIz.TrueLabel, cant_tabs);
                    this.right.TrueLabel  = trueLabel;
                    this.right.FalseLabel = falseLabel;
                    var valDer = this.right.Execute(ambit);
                    relational_Str += valDer.Texto_anterior;

                    relational_Str += generator.addLabel(valIz.FalseLabel, cant_tabs);

                    this.right.TrueLabel  = falseLabel;
                    this.right.FalseLabel = trueLabel;
                    valDer          = this.right.Execute(ambit);
                    relational_Str += valDer.Texto_anterior;

                    //VERIFICA QUE EL DERECHO SEA BOOLEAN
                    if (valDer.getDataType == DataType.BOOLEAN)
                    {
                        relational_Str += generator.save_comment("Termina EQUALS", cant_tabs, true);
                        ambit.free_temp(valIz.getValue());
                        ambit.free_temp(valDer.getValue());
                        result = new Returned("", DataType.BOOLEAN, false, trueLabel, falseLabel, relational_Str, "", 0, 0);
                    }
                    else
                    {
                        set_error("Operador '" + this.type + "' NO puede ser aplicado a los tipos " + valIz.getDataType + " con " + valDer.getDataType, row, column);
                        return(result);
                    }
                }
                ////VERIFICA QUE EL IZQUIERDO SEA STRING
                else if (valIz.getDataType == DataType.STRING)
                {
                    generator.Native_equals = true;

                    var valDer = this.right.Execute(ambit);
                    relational_Str += valDer.Texto_anterior;


                    if (valDer.getDataType == DataType.STRING)
                    {
                        if (this.TrueLabel == "")
                        {
                            this.TrueLabel = generator.newLabel();
                        }
                        if (this.FalseLabel == "")
                        {
                            this.FalseLabel = generator.newLabel();
                        }



                        var tempo_izq = valIz.Value.ToString();
                        var tempo_der = valDer.Value.ToString();

                        relational_Str += generator.addExpression("T3", tempo_izq, "", "", cant_tabs);
                        relational_Str += generator.addExpression("T4", tempo_der, "", "", cant_tabs);
                        relational_Str += generator.addExpression("T8", "native_cmp_str()", "", "", cant_tabs);
                        relational_Str += generator.add_If("T8", "1", "==", this.TrueLabel, cant_tabs);
                        relational_Str += generator.add_Goto(this.FalseLabel, cant_tabs);

                        ambit.free_temp(tempo_der);
                        ambit.free_temp(tempo_izq);

                        relational_Str += generator.save_comment("Termina EQUALS", cant_tabs, true);

                        result = new Returned("", DataType.BOOLEAN, false, this.TrueLabel, this.FalseLabel, relational_Str, "", 0, 0);
                    }
                    else
                    {
                        set_error("Operador '" + this.type + "' NO puede ser aplicado a los tipos " + valIz.getDataType + " con " + valDer.getDataType, row, column);
                        return(result);
                    }
                }

                else
                {
                    set_error("Operador '" + this.type + "' NO puede ser aplicado al tipo " + valIz.getDataType, row, column);
                    return(result);
                }


                break;

            case OpRelational.DISCTINCT:
                relational_Str += generator.save_comment("Empieza DISTICT", cant_tabs, false);

                //VERIFICA QUE EL IZQUIERDO ESA REAL O INTEGER
                if (valIz.getDataType == DataType.REAL || valIz.getDataType == DataType.INTEGER)
                {
                    var valDer = this.right.Execute(ambit);
                    relational_Str += valDer.Texto_anterior;

                    if (valDer.getDataType == DataType.INTEGER || valDer.getDataType == DataType.REAL)
                    {
                        if (this.TrueLabel == "")
                        {
                            this.TrueLabel = generator.newLabel();
                        }
                        if (this.FalseLabel == "")
                        {
                            this.FalseLabel = generator.newLabel();
                        }
                        ambit.free_temp(valIz.getValue());
                        ambit.free_temp(valDer.getValue());
                        relational_Str += generator.add_If(valIz.getValue(), valDer.getValue(), "!=", this.TrueLabel, cant_tabs);
                        relational_Str += generator.add_Goto(this.FalseLabel, cant_tabs);
                        relational_Str += generator.save_comment("Termina DISTICT", cant_tabs, true);
                        result          = new Returned("", DataType.BOOLEAN, false, this.TrueLabel, this.FalseLabel, relational_Str, "", 0, 0);
                    }
                    else
                    {
                        set_error("Operador '" + this.type + "' NO puede ser aplicado a los tipos " + valIz.getDataType + " con " + valDer.getDataType, row, column);
                        return(result);
                    }
                }
                else if (valIz.getDataType == DataType.BOOLEAN)
                {
                    var trueLabel  = generator.newLabel();
                    var falseLabel = generator.newLabel();
                    relational_Str       += generator.addLabel(valIz.TrueLabel, cant_tabs);
                    this.right.TrueLabel  = falseLabel;
                    this.right.FalseLabel = trueLabel;
                    var valDer = this.right.Execute(ambit);
                    relational_Str += valDer.Texto_anterior;

                    relational_Str += generator.addLabel(valIz.FalseLabel, cant_tabs);

                    this.right.TrueLabel  = trueLabel;
                    this.right.FalseLabel = falseLabel;
                    valDer          = this.right.Execute(ambit);
                    relational_Str += valDer.Texto_anterior;

                    //VERIFICA QUE EL DERECHO SEA BOOLEAN
                    if (valDer.getDataType == DataType.BOOLEAN)
                    {
                        ambit.free_temp(valIz.getValue());
                        ambit.free_temp(valDer.getValue());
                        relational_Str += generator.save_comment("Termina DISTICT", cant_tabs, true);
                        result          = new Returned("", DataType.BOOLEAN, false, trueLabel, falseLabel, relational_Str, "", 0, 0);
                    }
                    else
                    {
                        set_error("Operador '" + this.type + "' NO puede ser aplicado a los tipos " + valIz.getDataType + " con " + valDer.getDataType, row, column);
                        return(result);
                    }
                }
                else
                {
                    set_error("Operador '" + this.type + "' NO puede ser aplicado al tipo " + valIz.getDataType, row, column);
                    return(result);
                }

                break;

            case OpRelational.LESS:
            case OpRelational.LESS_EQUALS:
            case OpRelational.HIGHER:
            case OpRelational.HIGHER_EQUALS:
                relational_Str += generator.save_comment("Empieza " + op, cant_tabs, false);
                if (valIz.getDataType == DataType.REAL || valIz.getDataType == DataType.INTEGER)
                {
                    var valDer = this.right.Execute(ambit);
                    relational_Str += valDer.Texto_anterior;

                    if (valDer.getDataType == DataType.REAL || valDer.getDataType == DataType.INTEGER)
                    {
                        if (this.TrueLabel == "")
                        {
                            this.TrueLabel = generator.newLabel();
                        }
                        if (this.FalseLabel == "")
                        {
                            this.FalseLabel = generator.newLabel();
                        }
                        ambit.free_temp(valIz.getValue());
                        ambit.free_temp(valDer.getValue());
                        relational_Str += generator.add_If(valIz.getValue(), valDer.getValue(), this.type, this.TrueLabel, cant_tabs);
                        relational_Str += generator.add_Goto(this.FalseLabel, cant_tabs);
                        relational_Str += generator.save_comment("Termina " + op, cant_tabs, true);
                        result          = new Returned("", DataType.BOOLEAN, false, this.TrueLabel, this.FalseLabel, relational_Str, "", 0, 0);
                    }
                    else
                    {
                        set_error("Operador '" + this.type + "' NO puede ser aplicado a los tipos " + valIz.getDataType + " con " + valDer.getDataType, row, column);
                        return(result);
                    }
                }
                else
                {
                    set_error("Operador '" + this.type + "' NO puede ser aplicado al tipo " + valIz.getDataType, row, column);
                    return(result);
                }

                break;

            default:
                return(result);
            }

            return(result);
        }