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; } }
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(); }