2017-03-13 16:44:07 +01:00
|
|
|
using System;
|
2017-07-08 20:27:36 +02:00
|
|
|
using System.Globalization;
|
2017-03-13 16:44:07 +01:00
|
|
|
using System.Threading.Tasks;
|
2023-03-19 17:57:55 +00:00
|
|
|
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
2017-03-13 16:44:07 +01:00
|
|
|
|
|
|
|
|
namespace Yavsc
|
|
|
|
|
{
|
|
|
|
|
public class MyDecimalModelBinder : IModelBinder
|
|
|
|
|
{
|
|
|
|
|
|
2023-03-19 17:57:55 +00:00
|
|
|
async Task IModelBinder.BindModelAsync(ModelBindingContext bindingContext)
|
2017-03-13 16:44:07 +01:00
|
|
|
{
|
2023-03-19 17:57:55 +00:00
|
|
|
ValueProviderResult valueResult = bindingContext.ValueProvider
|
2017-03-13 16:44:07 +01:00
|
|
|
.GetValue(bindingContext.ModelName);
|
|
|
|
|
decimal actualValue ;
|
2017-07-09 04:05:06 +02:00
|
|
|
|
2017-03-13 16:44:07 +01:00
|
|
|
try {
|
2023-03-19 17:57:55 +00:00
|
|
|
bindingContext.Result = ModelBindingResult.Success(
|
|
|
|
|
Decimal.Parse(valueResult.FirstValue, System.Globalization.NumberStyles.AllowDecimalPoint));
|
2017-03-13 16:44:07 +01:00
|
|
|
}
|
|
|
|
|
catch (Exception ) {
|
2023-03-19 17:57:55 +00:00
|
|
|
bindingContext.Result = ModelBindingResult.Failed();
|
2017-03-13 16:44:07 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-07-08 20:27:36 +02:00
|
|
|
|
|
|
|
|
public class MyDateTimeModelBinder : IModelBinder
|
|
|
|
|
{
|
2023-03-19 17:57:55 +00:00
|
|
|
async Task IModelBinder.BindModelAsync(ModelBindingContext bindingContext)
|
2017-07-08 20:27:36 +02:00
|
|
|
{
|
|
|
|
|
ValueProviderResult valueResult = bindingContext.ValueProvider
|
|
|
|
|
.GetValue(bindingContext.ModelName);
|
|
|
|
|
DateTime actualValue ;
|
2023-03-19 17:57:55 +00:00
|
|
|
// DateTime are sent in the french format
|
|
|
|
|
if (DateTime.TryParse(valueResult.FirstValue,new CultureInfo("fr-FR"), DateTimeStyles.AllowInnerWhite, out actualValue))
|
|
|
|
|
{
|
|
|
|
|
bindingContext.Result = ModelBindingResult.Success(actualValue);
|
|
|
|
|
}
|
|
|
|
|
else bindingContext.Result = ModelBindingResult.Failed();
|
|
|
|
|
|
2017-07-08 20:27:36 +02:00
|
|
|
}
|
|
|
|
|
}
|
2017-07-09 02:26:20 +02:00
|
|
|
}
|