Beispiel #1
0
        public static Block Getter(string fieldName)
        {
            var expressionBuilder = new ExpressionBuilder(ExpressionFlags.Standard);

            expressionBuilder.Add(new FieldSymbol(fieldName));
            if (expressionBuilder.ToExpression().If(out var expression, out var exception))
            {
                return(new Block(new Return(expression, none <TypeConstraint>())));
            }
            else
            {
                throw exception;
            }
        }
Beispiel #2
0
        public static Block Setter(string fieldName, string parameterName)
        {
            var expressionBuilder = new ExpressionBuilder(ExpressionFlags.Standard);

            expressionBuilder.Add(new FieldSymbol(parameterName));
            if (expressionBuilder.ToExpression().If(out var expression, out var exception))
            {
                var assignToField = new AssignToField(fieldName, none <Operation>(), expression);
                return(new Block(assignToField));
            }
            else
            {
                throw exception;
            }
        }
 private Specification<LightPatientDto> BuildAndExpression()
 {
     var builder = new ExpressionBuilder<LightPatientDto>();
     if (this.IsByName) { builder.Add(When.Patient.LastNameContains(this.NameCriteria)); }
     if (this.IsByProfession) { builder.Add(When.Patient.ProfessionIs(this.SelectedProfession)); }
     if (this.IsByBirthdate) { builder.Add(When.Patient.BirthdateIsBetween(this.BirthdateAfterDate, this.BirthdateBeforeDate)); }
     if (this.IsByLastUpdate) { builder.Add(When.Patient.LastUpdateIsBetween(this.UpdateAfterDate, this.UpdateBeforeDate)); }
     if (this.IsByInscription) { builder.Add(When.Patient.InscriptionIsBetween(this.InscriptionAfterDate, this.InscriptionBeforeDate)); }
     if (this.IsByCity) { builder.Add(When.Patient.CityContains(this.CityCriteria)); }
     if (this.IsByReason) { builder.Add(When.Patient.ReasonContains(this.ReasonCriteria)); }
     return (builder.CanBuild)
         ? builder.BuildAndExpression()
         : When.Patient.None();
 }