122 lines
3.6 KiB
C#
122 lines
3.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Tool
|
|
{
|
|
public class CommonHelper
|
|
{
|
|
public static bool IMEICheck(string imei)
|
|
{
|
|
|
|
int vl_Sum1 = 0, vl_Sum2 = 0, vl_Total = 0;
|
|
int vl_Temp = 0;
|
|
|
|
for (int i = 0; i < 14; i++)
|
|
{
|
|
/*(1)将奇数位数字相加(从1开始计数)*/
|
|
if ((i % 2) == 0)
|
|
{
|
|
vl_Sum1 = vl_Sum1 + int.Parse(imei[i].ToString());
|
|
}
|
|
else
|
|
{
|
|
/*(2)将偶数位数字分别乘以2,分别计算个位数和十位数之和(从1开始计数)*/
|
|
vl_Temp = (int.Parse(imei[i].ToString())) * 2;
|
|
if (vl_Temp < 10)
|
|
{
|
|
vl_Sum2 = vl_Sum2 + vl_Temp;
|
|
}
|
|
else
|
|
{
|
|
vl_Sum2 = vl_Sum2 + 1 + vl_Temp - 10;
|
|
}
|
|
}
|
|
}
|
|
/*(1)+(2)*/
|
|
vl_Total = vl_Sum1 + vl_Sum2;
|
|
/*如果得出的数个位是0则校验位为0,否则为10减去个位数 */
|
|
if ((vl_Total % 10) == 0)
|
|
{
|
|
if (imei[14] == '0')
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((10 - (vl_Total % 10)).ToString() == imei[14].ToString())
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
public static string GetIMEI(string imei)
|
|
{
|
|
|
|
int vl_Sum1 = 0, vl_Sum2 = 0, vl_Total = 0;
|
|
int vl_Temp = 0;
|
|
|
|
for (int i = 0; i < 14; i++)
|
|
{
|
|
/*(1)将奇数位数字相加(从1开始计数)*/
|
|
if ((i % 2) == 0)
|
|
{
|
|
vl_Sum1 = vl_Sum1 + int.Parse(imei[i].ToString());
|
|
}
|
|
else
|
|
{
|
|
/*(2)将偶数位数字分别乘以2,分别计算个位数和十位数之和(从1开始计数)*/
|
|
vl_Temp = (int.Parse(imei[i].ToString())) * 2;
|
|
if (vl_Temp < 10)
|
|
{
|
|
vl_Sum2 = vl_Sum2 + vl_Temp;
|
|
}
|
|
else
|
|
{
|
|
vl_Sum2 = vl_Sum2 + 1 + vl_Temp - 10;
|
|
}
|
|
}
|
|
}
|
|
/*(1)+(2)*/
|
|
vl_Total = vl_Sum1 + vl_Sum2;
|
|
/*如果得出的数个位是0则校验位为0,否则为10减去个位数 */
|
|
if ((vl_Total % 10) == 0)
|
|
{
|
|
return imei + "0";
|
|
}
|
|
else
|
|
{
|
|
return imei + (10 - (vl_Total % 10)).ToString();
|
|
}
|
|
}
|
|
public static List<T> Clone<T>(List<T> list) where T : new()
|
|
{
|
|
List<T> items = new List<T>();
|
|
|
|
foreach (var m in list)
|
|
{
|
|
var model = new T();
|
|
var ps = model.GetType().GetProperties();
|
|
var properties = m.GetType().GetProperties();
|
|
foreach (var p in properties)
|
|
{
|
|
foreach (var pm in ps)
|
|
{
|
|
if (pm.Name == p.Name)
|
|
{
|
|
pm.SetValue(model, p.GetValue(m));
|
|
}
|
|
}
|
|
}
|
|
items.Add(model);
|
|
}
|
|
|
|
return items;
|
|
}
|
|
}
|
|
}
|