Action<string,string> cVar = (string n,string v)=>{
if( !project.Variables.Keys.Contains(n)){
(from x in project.Variables.GetType().GetMethods() where x.Name=="CreateVariable" select x).ToArray()[0].Invoke(project.Variables,
new Object[]{n,v,ZennoLab.InterfacesLibrary.ProjectModel.Enums.VariableGroupTypeV4.UserDefined,true});
}else{
project.Variables[n].Value = v;
}
};
cVar("OldUserAgent",project.Profile.UserAgent);
string r = project.Variables["ProfileInfo"].Value;
var ar = r.Split(new Char[]{'\n'} , StringSplitOptions.RemoveEmptyEntries);
if( ar.Length == 3 )
{
for(int i=0;i<ar.Length;i++){ ar[i] = ar[i].Trim( new Char[]{' ','\r'});}
if( ar[0] == "ok")
{
cVar("profileIsOK","True");
var tn = ar[1].Split( new Char[]{'|'}, StringSplitOptions.None);
var tv = ar[2].Split( new Char[]{'|'}, StringSplitOptions.None);
var sourceProfileHeader = ar[1];//.Replace("|","{String.Tab}");
var sourceProfile = ar[2];//.Replace("|","{String.Tab}");
cVar("sourceProfileHeader",sourceProfileHeader);
cVar("sourceProfile",sourceProfile);
if ( tn.Length == tv.Length )
{
for(int i=0; i<tn.Length;i++){
cVar( tn[i], tv[i] );
}
if( project.Variables.Keys.Contains("AutoYear"))
{
var year = Convert.ToInt32(project.Variables["AutoYear"].Value);
if( year <2015 ){
year = 2015 + new Random().Next(2020-2015);
project.Variables["AutoYear"].Value = year.ToString();
}
}
if( project.Variables.Keys.Contains("Phone"))
{
var p = project.Variables["Phone"].Value;
p = p.Replace("-","");
project.Variables["Phone"].Value = p;
}
if( project.Variables.Keys.Contains("DateOfBirth"))
{
var dob = project.Variables["DateOfBirth"].Value;
var adob = dob.Split(new char[]{' '});
if(adob.Length>=1){ dob = adob[0];}
adob = dob.Split(new char[]{'-'});
if( adob.Length==3)
{
dob = adob[0]+"/"+adob[1]+"/"+adob[2];
}
adob = dob.Split(new char[]{'/'});
if(adob.Length==3){
var y = adob[0];
var m = adob[1];
var d = adob[2];
if( y.Length!=4){
m = adob[0];
d = adob[1];
y = adob[2];
}
var age = DateTime.Now.Year - Convert.ToInt32(y);
if( age<30 || age>55){
y = (DateTime.Now.Year - (30 + new Random().Next(55-30+1))).ToString();
}
dob = y+"/"+m+"/"+d;
project.Variables["DateOfBirth"].Value = dob;
}
}
var state = project.Variables["State"].Value;
var city = project.Variables["City"].Value;
//var country = project.Variables["country"].Value;
if ( state != "" && city != "" )
{
project.SendInfoToLog("get profile "+ state+"/"+city,true);
}else{
project.Variables["profileIsOK"].Value = "False";
project.SendErrorToLog("profile must have country ,city,state filed!",true);
}
}else{
project.Variables["profileIsOK"].Value = "False";
project.SendErrorToLog("profile header length != value length",true);
}
}else{
cVar("profileIsOK","False");
}
}else{
project.SendErrorToLog(r,true);
cVar("profileIsOK","False");
}