ปรับ api เข้ากับ โครงสร้างใหม่
This commit is contained in:
parent
8851ac6db0
commit
811fa781b4
20 changed files with 1397 additions and 73 deletions
301
Extensions/StringExtension.cs
Normal file
301
Extensions/StringExtension.cs
Normal file
|
|
@ -0,0 +1,301 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace BMA.EHR.Recurit.Exam.Service.Extensions
|
||||
{
|
||||
public enum DateTimeFormat
|
||||
{
|
||||
Dmy,
|
||||
Mdy,
|
||||
Ymd
|
||||
}
|
||||
|
||||
public static partial class StringExtension
|
||||
{
|
||||
#region " Methods "
|
||||
|
||||
#region " Utilities "
|
||||
|
||||
public static string Format(this string input, int digit)
|
||||
{
|
||||
var fmt = $"D{digit}";
|
||||
return input.ToInteger().ToString(fmt);
|
||||
|
||||
}
|
||||
|
||||
public static string RemoveComma(this string value)
|
||||
{
|
||||
string ret;
|
||||
if (value.Contains(","))
|
||||
{
|
||||
ret = value.Replace(",", "");
|
||||
return ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (value != "")
|
||||
{
|
||||
return value;
|
||||
}
|
||||
else
|
||||
return "0.00";
|
||||
}
|
||||
}
|
||||
|
||||
public static string RemoveSpace(this string value)
|
||||
{
|
||||
string ret;
|
||||
if (value.Contains(","))
|
||||
{
|
||||
ret = value.Replace(" ", "");
|
||||
return ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (value != "")
|
||||
{
|
||||
return value;
|
||||
}
|
||||
else
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public static string Left(this string input, int length)
|
||||
{
|
||||
if (length > 0 && input.Length >= length)
|
||||
{
|
||||
return input.Substring(0, length);
|
||||
}
|
||||
else
|
||||
{
|
||||
return input;
|
||||
}
|
||||
}
|
||||
|
||||
public static string Right(this string input, int length)
|
||||
{
|
||||
if (length > 0 && input.Length >= length)
|
||||
{
|
||||
return input.Substring(input.Length - length, length);
|
||||
}
|
||||
else
|
||||
{
|
||||
return input;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region " Validation "
|
||||
|
||||
public static bool IsDateTime(this string input)
|
||||
{
|
||||
try
|
||||
{
|
||||
var d = Convert.ToDateTime(input);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsUrl(this string input)
|
||||
{
|
||||
if (input.Trim() != "")
|
||||
{
|
||||
if ((input.Left(7).ToLower() != "http://") || (input.Left(8).ToLower() != "https://"))
|
||||
{
|
||||
input = "http://" + input;
|
||||
}
|
||||
Regex reg = new Regex("http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?");
|
||||
return reg.Match(input).Success;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether this instance is email.
|
||||
/// </summary>
|
||||
/// <param name="input">The input.</param>
|
||||
/// <returns></returns>
|
||||
public static bool IsEmail(this string input)
|
||||
{
|
||||
if (input.Trim() != "")
|
||||
{
|
||||
Regex reg = new Regex("\\w+([-+.\']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
|
||||
return reg.Match(input).Success;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether this instance is numeric.
|
||||
/// </summary>
|
||||
/// <param name="input">The input.</param>
|
||||
/// <returns></returns>
|
||||
public static bool IsNumeric(this string input)
|
||||
{
|
||||
if (input.Length > 0)
|
||||
{
|
||||
double tempDouble = (double)(NumberStyles.Number);
|
||||
return double.TryParse(input, out tempDouble);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static string IsNull(this string input, string value)
|
||||
{
|
||||
if (input == null)
|
||||
return value;
|
||||
else
|
||||
return input;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region " Conversion "
|
||||
|
||||
public static DateTime ToDateTime(this string input, DateTimeFormat format, string seperator = "/")
|
||||
{
|
||||
try
|
||||
{
|
||||
var dd = input.Split(seperator);
|
||||
switch (format)
|
||||
{
|
||||
case DateTimeFormat.Dmy:
|
||||
return new DateTime(dd[2].ToInteger().ToCeYear(), dd[1].ToInteger(), dd[0].ToInteger());
|
||||
case DateTimeFormat.Mdy:
|
||||
return new DateTime(dd[2].ToInteger().ToCeYear(), dd[0].ToInteger(), dd[1].ToInteger());
|
||||
case DateTimeFormat.Ymd:
|
||||
return new DateTime(dd[0].ToInteger().ToCeYear(), dd[1].ToInteger(), dd[2].ToInteger());
|
||||
default:
|
||||
return DateTime.MinValue;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return DateTime.MinValue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static string ValueOrBlank(this string input)
|
||||
{
|
||||
if (input == null) return "";
|
||||
|
||||
if (input == "0")
|
||||
return "";
|
||||
else
|
||||
return input;
|
||||
}
|
||||
|
||||
public static MemoryStream ToMemoryStream(this string base64String)
|
||||
{
|
||||
if (base64String == null || base64String == String.Empty) return null;
|
||||
|
||||
var bytes = Convert.FromBase64String(base64String);
|
||||
var stream = new MemoryStream(bytes);
|
||||
|
||||
return stream;
|
||||
}
|
||||
|
||||
public static double ToDouble(this string input)
|
||||
{
|
||||
if (input == null) return 0.0;
|
||||
|
||||
if (input == "") return 0.0;
|
||||
|
||||
double ret = 0.0;
|
||||
input = input.RemoveComma();
|
||||
if (input.IsNumeric())
|
||||
{
|
||||
ret = double.Parse(input);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static float ToFloat(this string input)
|
||||
{
|
||||
if (input == null) return 0F;
|
||||
|
||||
if (input == "") return 0F;
|
||||
|
||||
float ret = 0F;
|
||||
input = input.RemoveComma();
|
||||
if (input.IsNumeric())
|
||||
{
|
||||
ret = float.Parse(input);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static int ToInteger(this string input)
|
||||
{
|
||||
if (input == null) return 0;
|
||||
|
||||
if (input == "") return 0;
|
||||
|
||||
int ret = 0;
|
||||
input = input.RemoveComma();
|
||||
int.TryParse(input, out ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static string ToBlank(this string value)
|
||||
{
|
||||
if (value == "0")
|
||||
return "";
|
||||
else
|
||||
return value;
|
||||
}
|
||||
|
||||
public static DateTime ToCeDateTime(this string date)
|
||||
{
|
||||
try
|
||||
{
|
||||
DateTime dddd;
|
||||
if (!DateTime.TryParse(date, out dddd))
|
||||
return DateTime.MinValue;
|
||||
|
||||
|
||||
if (date == "01/01/0001")
|
||||
return Convert.ToDateTime(date);
|
||||
|
||||
string[] dd = date.Split('/');
|
||||
|
||||
int yy = 0;
|
||||
if (dd[2].Length == 2)
|
||||
yy = dd[2].Left(2).ToInteger() + 2500;
|
||||
else
|
||||
yy = dd[2].Left(4).ToInteger();
|
||||
if (yy >= 2400) yy -= 543;
|
||||
DateTime birthdate = new DateTime(yy, dd[1].ToInteger(), dd[0].ToInteger());
|
||||
return birthdate;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return DateTime.MinValue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue