Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9256509
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T11:57:35+00:00 2026-06-18T11:57:35+00:00

I have an existing asp.net (c#) application. I need to provide users with a

  • 0

I have an existing asp.net (c#) application. I need to provide users with a way to create flexibles rules to calculate an effective date given a hiredate and an enrollmentdate.

Some examples of rules that might be used:

  1. The later of hiredate or enrollmentdate
  2. HireDate + 90 Days
  3. The first of the Month after the enrollment date
  4. If the enrollment date is before the 15 of the month, then the effective date is the 1st of the next month. If it is on the 15 or after, it’s the 1st of the month after that.

I started out with a handful of offset fields (day offset, month offset, etc…), but as I come across new requirements, I’m coming to realize the current approach isn’t flexible enough.

What I would like to do is allow the end user to define a function that returns a date given two parameters (hiredate, enrollmentdate), and store that function in the database. When I need to calculate the effectivedate I’d pull this function out of the database execute it passing in the parameters to get my effectivedate.

My intial reaction was to look for a DSL that would allow me to define date manipulation functions and integrate that into my solution. However my search for an appropriate DSL has turned up nothing.

Now I am wondering whether CSharpCodeProvider might work as a component to the solution.
If I pull a string out of a database, and compile it via CsharpCodeProvider, can I enforce that the resulting code matches a function signature (takes 2 datetime parameters, and returns a datatime)?

Is there a way to ensure that the function doesn’t have any side effects? For example, No I/O. No reading or session, cache, or application.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T11:57:36+00:00Added an answer on June 18, 2026 at 11:57 am

    See my recent answer here: Parsing "DateTime.Now"?

    Essentially, you can easily leverage an existing library like FLEE to parse expressions and emit IL for these rules. If you take a look at the examples, you can see how to set up variables for the user expressions to leverage. For example, you may define a “rule” that consists of some input variables (like HireDate or EnrollmentDate), and a user expression/predicate that returns the date. If you expose the DateTime members like I have in the linked answer, then users can leverage those as well.

    Just as a quick example, not tested but should give you an idea.

    You can setup some custom functions to help, like getting the first day of a month:

    public static class CustomFunctions
    {
        public static DateTime GetFirstDayOfMonth(DateTime date)
        {
            return new DateTime(date.Year, date.Month, 1);
        }
    }
    

    A basic FLEE setup (you’ll have to customize/tweak as necessary)

    ExpressionContext context = new ExpressionContext();
    
    //Tell FLEE to expect a DateTime result; if the expression evaluates otherwise, 
    //throws an ExpressionCompileException when compiling the expression
    context.Options.ResultType = typeof(DateTime);
    
    //Instruct FLEE to expose the `DateTime` static members and have 
    //them accessible via "DateTime".
    //This mimics the same exact C# syntax to access `DateTime.Now`
    context.Imports.AddType(typeof(DateTime), "DateTime");
    context.Imports.AddType(typeof(CustomFunctions));
    
    //Expose your key variables like HireDate and EnrollmentDate
    context.Variables["HireDate"] = GetHireDate(); //DateTime I suppose
    context.Variables["EnrollmentDate"] = GetEnrollmentDate(); //DateTime I suppose
    
    //Parse the expression, naturally the string would come from your data source
    IGenericExpression<DateTime> expression = context.CompileGeneric<DateTime>(GetYourRule(), context);
    
    DateTime date = expression.Evaluate();
    

    Then your rules might look like:

    string rule1 = "if(HireDate > EnrollmentDate, HireDate, EnrollmentDate)";
    string rule2 = "HireDate.AddDays(90)";
    string rule3 = "GetFirstDayOfMonth(EnrollmentDate.AddMonths(1))";
    string rule4 = "GetFirstDayOfMonth(EnrollmentDate.AddMonths(if(EnrollmentDate.Day < 15, 1, 2)))"; 
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have an existing asp.net (c#) application. I need to provide users with a
I have an existing 32-bit ASP.NET application that used 32-bit unmanaged DLLs. If I
I have a silverlight application that I am embedding in an existing ASP.NET web
I have this existing environment: 1) ASP.NET 3.5 web application 2) forms authentication with
I have an ASP.NET MVC 4 application that needs to use an existing API
I have an ASP.NET application with existing business classes and a database schema. (which
I need to implement a dialog for a web application (ASP.NET/C#) where users can
I have an existing C# ASP.NET application with a user interface and various buttons
I have an existing ASP.NET MVC 2 application that I've been asked to extend.
we have asp.net web application and we need to support automatic login using domain

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.