59 lines
1.6 KiB
C#
59 lines
1.6 KiB
C#
using LCU.Library.Internal.IncentiveApiModels.Entities;
|
|
using LCU.Library.Internal.IncentiveApiModels.Enums;
|
|
|
|
namespace LCU.API.Internal.Operations.IncentiveApiLib.Services;
|
|
|
|
public class DataParsingService
|
|
{
|
|
public static List<ActivityMetaData> MapActivityMetaData(List<string> dataStrings)
|
|
{
|
|
var parsedMetaData = new List<ActivityMetaData>();
|
|
|
|
foreach (var dataString in dataStrings)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(dataString))
|
|
{
|
|
foreach (var item in dataString.Split(",", StringSplitOptions.RemoveEmptyEntries))
|
|
{
|
|
parsedMetaData.Add(DetermineActivityMetaData(item));
|
|
}
|
|
}
|
|
}
|
|
|
|
return parsedMetaData;
|
|
}
|
|
|
|
public static ActivityMetaData DetermineActivityMetaData(string metaDataString)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(metaDataString))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
if (metaDataString.Contains("@"))
|
|
{
|
|
return new ActivityMetaData
|
|
{
|
|
MetaData = metaDataString.Trim(),
|
|
MetaDataType = MetaDataType.Email
|
|
};
|
|
}
|
|
|
|
var phoneString = DataCleaningService.CleanedPhoneNumber(metaDataString);
|
|
if (phoneString.Length == 10)
|
|
{
|
|
return new ActivityMetaData
|
|
{
|
|
MetaData = phoneString.Trim(),
|
|
MetaDataType = MetaDataType.Phone
|
|
};
|
|
}
|
|
|
|
return new ActivityMetaData
|
|
{
|
|
MetaData = metaDataString.Trim(),
|
|
MetaDataType = MetaDataType.Unknown
|
|
};
|
|
}
|
|
}
|