|
|
Enter subhead content here
|
|
using System;
using System.Text;
using System.Collections;
using System.Diagnostics;
using System.IO;
using EXDb97;
using EXCommon;
//###2
namespace EPol
{
///
/// Summary description for Class1.
///
public class CEmailCommandManager : CCommandFactoryBase
{
public CEmailCommandManager()
: base()
{
m_oCommandManager = null;
}
CCommandManager m_oCommandManager;
public CCommandManager CommandManager
{
get
{
return m_oCommandManager;
}
}
public bool bInitDatabase( string sDatabaseName)
{
m_oCommandManager = new CCommandManager(P.ENGLISH);
bool bRet= m_oCommandManager.bInitDatabase(sDatabaseName);
return bRet;
}
public string sDatabaseName{
get {
return m_oCommandManager.sDatabaseName;
}
}
public void vCleanAllData()
{
m_oCommandManager.vCleanAllData();
}
public void vRegister()
{
m_oCommandManager.vRegister();
}
public ec dExecute(CReceivedEmail oRecievedEmail, out CStatusEmail oStatusEmail)
{
m_oCommandManager.m_oCommandLine.vClear();
oStatusEmail = new CStatusEmail(oRecievedEmail.sGetRecipientEmail(0),
oRecievedEmail.m_sSenderName, oRecievedEmail.m_sSenderAdress);
ec dStatus = ec.ST_SUCCEED;
for (int dRecipientIndex = 0; dRecipientIndex < oRecievedEmail.dRecipientCount; dRecipientIndex++)
{
P dLanguage = CEntityManager.Instance(P.ENGLISH).dFindEntity(
CCommandFactoryBase.csGetParameter(P.LANGUAGE.ToString().ToLower(),
oRecievedEmail.Subject));
if (dLanguage == P.LANGUAGE) dLanguage = P.ENGLISH;
m_oCommandManager.Language = dLanguage;
CCommandParser oCommandParser = CCommandParser.Instance(dLanguage, "");
string sUserIDPublicProfile;
if (dRecipientIndex ==0 && m_oCommandManager.bIsEmailRegistered(oRecievedEmail.m_sSenderAdress) == false)
{
if (m_oCommandManager.bRegister(oRecievedEmail.m_sSenderAdress, dLanguage, out sUserIDPublicProfile))
{
oStatusEmail.vAddLine("Congratulation. You are registered in " + ELECTRONIC_DEMOCRACY_INITIALE + " database.");
oStatusEmail.vAddLine("Your default public profile is " + sUserIDPublicProfile + ".");
oStatusEmail.vAddLine("You can change it with the command:\nupdate avatar " +
sUserIDPublicProfile + " -name:{new_avatar_name}");
EPAssert(IsUsed(m_oCommandManager.SenderProfileIndex), "The sender profile should be known");
}
else
{
m_oCommandManager.vAdd(oRecievedEmail.m_sSenderAdress, ec.ST_PROFILE_UNDEFINED);
oStatusEmail.vAddStatus(oRecievedEmail.Subject, m_oCommandManager.m_oCommandLine.GetErrors,
"", " Can not register the email adress");
dStatus = ec.ST_PROFILE_UNDEFINED;
}
}
if (dStatus == ec.ST_SUCCEED)
{
EPAssert(IsUsed(m_oCommandManager.m_oCommandLine.SenderIndex), "The sender profile should be known");
dStatus = m_oCommandManager.dAddRecipient(oRecievedEmail.sGetRecipient(dRecipientIndex));
if (dStatus != ec.ST_SUCCEED)
{
m_oCommandManager.vAdd(oRecievedEmail.sGetRecipient(dRecipientIndex), dStatus);
oStatusEmail.vAddStatus(ELECTRONIC_DEMOCRACY_INITIALE + ": " +
oRecievedEmail.Subject, m_oCommandManager.m_oCommandLine.GetErrors, oRecievedEmail.sGetRecipient(dRecipientIndex), "The recipient
adress is not valid");
}
else
{
// m_oCommandManager.vInitializeCommandLineFactory();
CTrace.i().vWrite(ENMessage.CommandManager, "oRecievedEmail.CommandCount = " + oRecievedEmail.CommandCount);
for (int i = 0; i < oRecievedEmail.CommandCount; i++)
{
string csBodyMessage;
csBodyMessage = "";
dStatus = ec.ST_SUCCEED;
P dCommand =oRecievedEmail.getEmailCommand(i).m_dCommand;
P dEntity = CDbEntityManager.Instance(
m_oCommandManager.m_sDatabaseName, dLanguage).dGet(dLanguage, oRecievedEmail.getEmailCommand(i).m_sEntityName);
CTrace.i().vWriteLn(ENMessage.CommandManager, "CommandLine=" + m_oCommandManager.m_oCommandLine.csDump() );
if (IsUsed(dCommand) && IsUsed(dEntity ) )
{
dStatus = m_oCommandManager.dExecute(oRecievedEmail.getEmailCommand(i).m_dCommand, dEntity,
oRecievedEmail.getEmailCommand(i).m_csEntityContent,
oRecievedEmail.getEmailCommand(i).m_csOptionString,
out csBodyMessage);
CTrace.i().vWriteLn(ENMessage.CommandManager, "oRecievedEmail = " + oRecievedEmail.getEmailCommand(i).csDump());
m_oCommandManager.m_oCommandLine.vAdd(dCommand + " " + dEntity, dStatus);
}
else if (IsNotUsed(dCommand))
{
dStatus = ec.ST_COMMAND_IS_NOT_KNOWN;
m_oCommandManager.m_oCommandLine.vAdd(dCommand, dStatus);
}
else if (IsNotUsed(dEntity))
{
dStatus = ec.ST_ENTITY_NOT_SUPPORTED;
m_oCommandManager.m_oCommandLine.vAdd(dEntity, dStatus);
}
else
{
m_oCommandManager.m_oCommandLine.vAdd(dEntity, dStatus);
}
oStatusEmail.vAddStatus(ELECTRONIC_DEMOCRACY_INITIALE + ": " + m_oCommandManager.Synopsis,
m_oCommandManager.m_oCommandLine.GetErrors, oRecievedEmail.sGetRecipient(dRecipientIndex), csBodyMessage);
if (dStatus != ec.ST_SUCCEED && BREAK_AT_FIRST_BUG)
{
break;
}
}
}
}
}
return dStatus;
}
}
///
/// Summary description for Class1.
///
public abstract class CEmail : CCommandFactoryBase
{
public CEmail(string sSenderAdress, string sSenderName, string[] sRecipientAdressArray)
{
m_sRecipientAdress = sRecipientAdressArray;
m_sSenderName = sSenderName;
m_sSenderAdress = sSenderAdress;
}
public CEmail(string sSenderAdress, string sSenderName, string sRecipientAdress)
{
m_sRecipientAdress = new string[1];
m_sRecipientAdress[0]= sRecipientAdress;
m_sSenderName = sSenderName;
m_sSenderAdress = sSenderAdress;
} public string m_sSenderAdress, m_sSenderName;
string[] m_sRecipientAdress;
public virtual string csDump()
{
string csDump = " m_csRecipientAdress=" + m_sRecipientAdress +
" m_csSenderAdress=" + m_sSenderAdress + " m_sSenderName=" + m_sSenderName + "\n";
return csDump;
}
public string[] sGetAdressArray(string sAddressArray)
{
sAddressArray= sAddressArray.Trim('<', '>');
ArrayList oArray = new ArrayList();
int dIndex=0;
while (dIndex < sAddressArray.Length)
{
int dNextNext = sAddressArray.IndexOf(';', dIndex);
if (dNextNext == -1)
{
oArray.Add(sAddressArray.Substring(dIndex));
break;
}
else
{
oArray.Add(sAddressArray.Substring(dIndex, dNextNext - dIndex));
}
dIndex = dNextNext + 1;
}
return (string[])oArray.ToArray(typeof(String));
}
public P Language {
get
{
P dLanguage = P.ENGLISH;
if (Subject != "")
{
dLanguage = CEntityManager.Instance(P.ENGLISH).dFindEntity(CCommandFactoryBase.csGetParameter(P.LANGUAGE.ToString().ToLower(),
Subject));
}
if (dLanguage == P.LANGUAGE || IsNotUsed(dLanguage)) dLanguage = P.ENGLISH;
return dLanguage;
}
}
public int dRecipientCount
{
get
{
return m_sRecipientAdress.Length;
}
}
public string sGetRecipient(int i)
{
return csUsedIDFromEmailAdress(m_sRecipientAdress[i]);
}
public string sGetRecipientEmail(int i)
{
return m_sRecipientAdress[i];
}
public virtual bool bIsValid
{
get
{
return m_sRecipientAdress != null && m_sSenderAdress != null &&
m_sRecipientAdress[0] != "" && m_sSenderAdress != "";
}
}
public abstract string Subject
{
get;
}
public abstract string BodyText
{
get;
}
}
public class CStatusEmail : CEmail
{
public CStatusEmail(string sSenderAdress, string sName, string[] sRecipientAdressArray)
: base(sSenderAdress, sName, sRecipientAdressArray)
{
m_oStatusLine = new ArrayList();
}
public CStatusEmail(string sSenderAdress, string sName, string sRecipientAdress)
: base(sSenderAdress, sName, sRecipientAdress)
{
m_oStatusLine = new ArrayList();
}
ArrayList m_oStatusLine;
public void vAddLine(string csMessage)
{
m_oStatusLine.Add(csMessage);
}
public void vAddStatus(string csSynopsys, ENErrorEvent[] dErrorArrayCode, string sRecipientName, string csMessage)
{
m_oStatusLine.Add(csSynopsys + " >> " + ToString(dErrorArrayCode) );
if (sRecipientName != "")
{
m_oStatusLine.Add("From:" + sRecipientName);
}
if (csMessage != "")
{
m_oStatusLine.Add( csMessage);
}
}
public override string Subject
{
get
{
if (m_oStatusLine.Count == 0)
{
return "";
}
else
{
return m_oStatusLine[0].ToString();
}
}
}
public override string BodyText
{
get
{
if (m_oStatusLine.Count <= 1)
{
return "";
}
else
{
StringBuilder oStringBuilder = new StringBuilder();
for (int i = 1; i < m_oStatusLine.Count; i++)
{
oStringBuilder.Append(m_oStatusLine[i] + "\n");
}
return oStringBuilder.ToString();
}
}
}
public override string csDump()
{
string csDump = base.csDump();
csDump += "Subject: " + Subject + "\n";
csDump += "Body: " + BodyText + "\n";
return csDump;
}
}
public class CReceivedEmail : CEmail
{
public CReceivedEmail(string sSenderAdress, string sName, string[] sRecipientAdressArray, DateTime oRecieveTime)
: base(sSenderAdress, sName, sRecipientAdressArray)
{
m_oRecieveDateTime = oRecieveTime;
m_oEmailCommandArray = new ArrayList();
}
public CReceivedEmail(string sSenderAdress, string sName, string sRecipientAdress, DateTime oRecieveTime)
: base(sSenderAdress, sName, sRecipientAdress)
{
m_oRecieveDateTime = oRecieveTime;
m_oEmailCommandArray = new ArrayList();
}
// public string m_csSenderAdress, m_csRecipientAdress;
public DateTime m_oRecieveDateTime;
public override string csDump()
{
string csDump = "m_csSenderAdress = " + m_sSenderAdress + " Date:" + m_oRecieveDateTime + "\n";
for (int i = 0; i < m_oEmailCommandArray.Count; i++)
{
csDump += ((CEmailCommand)m_oEmailCommandArray[i]).csDump() + "\n";
}
return csDump + base.csDump();
}
protected ArrayList m_oEmailCommandArray;
public int CommandCount
{
get
{
return m_oEmailCommandArray.Count;
}
}
public CEmailCommand getEmailCommand(int i)
{
return (CEmailCommand)m_oEmailCommandArray[i];
}
public ec dAddText(string csText)
{
string csEntityContent, csOptionString;
ec dErrorCode;
CCommandParser oCommandParser = CCommandParser.Instance(Language, csText);
int i = 0;
P dCommand; string sEntity;
while ((dErrorCode = oCommandParser.dNext(out dCommand, out sEntity, out csEntityContent, out csOptionString)) != ec.ST_PARSER_EOM)
{
if ( dErrorCode == ec.ST_PARSER_CANNOT_FIND_THE_NEXT_COMMAND)
{
return ec.ST_WRONG_EMAIL;
}
if (dErrorCode == ec.ST_SUCCEED)
{
m_oEmailCommandArray.Add(new CEmailCommand(Language, dCommand, sEntity, csEntityContent, csOptionString)); i++;
}
else
{
CTrace.i().vWriteLn(ENMessage.Lesson,"dErrorCode = " + dErrorCode);
}
}
return dErrorCode;
}
public override bool bIsValid
{
get
{
return base.bIsValid && m_oEmailCommandArray.Count > 0;
}
}
public override string Subject
{
get
{
if (m_oEmailCommandArray.Count == 0)
{
return "";
}
else
{
return ((CEmailCommand)m_oEmailCommandArray[0]).Synopsis;
}
}
}
public override string BodyText
{
get
{
if (m_oEmailCommandArray.Count <= 1)
{
return "";
}
else
{
StringBuilder oStringBuilder = new StringBuilder();
for (int i = 1; i < m_oEmailCommandArray.Count; i++)
{
oStringBuilder.Append(((CEmailCommand)m_oEmailCommandArray[i]).Synopsis + "\n");
}
return oStringBuilder.ToString();
}
}
}
}
///
/// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
public class CLesson : CLessonBase
{
public CLesson()
{
vClear();
}
public CLesson(CLesson oLesson)
{
vClear();
if (oLesson != null)
{
m_sPurpose = oLesson.m_sPurpose;
m_sTitle = oLesson.m_sTitle;
m_sDefaultDomain = oLesson.m_sDefaultDomain;
}
}
public string Title
{
get
{
return m_sTitle;
}
}
public bool isValid
{
get
{
if (m_sPurpose != "" && m_sTitle != "" && m_oLessonEmailArray.Count > 0)
{
for (int i = 0; i < m_oLessonEmailArray.Count; i++)
{
if (((CLessonEmail)m_oLessonEmailArray[i]).isValid)
{
return true;
}
}
}
return false;
}
}
public CLessonEmail getLessonEmail(int i){
if (i >=m_oLessonEmailArray.Count) return null;
return (CLessonEmail)m_oLessonEmailArray[i];
}
public int LessonEmailCount
{
get {
return m_oLessonEmailArray.Count;
}
}
ArrayList m_oLessonEmailArray;
protected string m_sPurpose, m_sTitle, m_sDefaultDomain;
public void vClear()
{
m_sPurpose = m_sTitle = "";
m_oLessonEmailArray = new ArrayList();
}
public CLessonEmail getLastLessonEmail()
{
if (m_oLessonEmailArray.Count == 0)
{
return null;
}
else
{
return (CLessonEmail)m_oLessonEmailArray[m_oLessonEmailArray.Count - 1];
}
}
public void vAddLine(string s)
{
try
{
s = sGetUncommentedText(s);
if (s != null && s != "")
{
CTrace.i().vWriteLn(ENMessage.ParseLesson, s);
if (bAdd(s, "pur=", ref m_sPurpose)) { }
else if (bAdd(s, "tit=", ref m_sTitle)) { }
else
{
if ((s.IndexOf("sen=") >= 0 && this.LessonEmailCount >= 1 && ((CLessonEmail)m_oLessonEmailArray[LessonEmailCount-1]).isValid)
|| getLastLessonEmail()== null)
{
CLessonEmail oLessonEmail = new CLessonEmail(getLastLessonEmail());
// oLessonEmail.Domain = m_sDefaultDomain;
m_oLessonEmailArray.Add(oLessonEmail);
}
getLastLessonEmail().vAddLine(s);
}
}
}
catch (Exception e)
{
CTrace.i().vWriteLn(ENMessage.CommandParsing,e.Message);
}
}
public string csDump()
{
string sOutput = "";
sOutput += "pur=" + m_sPurpose + "\n";
sOutput += "tit=" + m_sTitle + "\n";
for (int i = 0; i < m_oLessonEmailArray.Count; i++)
{
sOutput += "number=" + i + "\n" + ((CLessonEmail)m_oLessonEmailArray[i]).csDump();
}
return sOutput;
}
}
/// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class CLessonEmail : CLessonBase
{
public CLessonEmail(string sDomain)
{
vClear();
}
public CLessonEmail(CLessonEmail oLessonEmail)
{
vClear();
if (oLessonEmail != null)
{
m_sRecipient = oLessonEmail.m_sRecipient;
m_sSender = oLessonEmail.m_sSender;
m_sName = oLessonEmail.m_sName;
}
}
public bool isValid
{
get
{
return Recipient != "" && Sender != "" && Body != "";
}
}
public void vAddLine(string s)
{
try
{
//CTrace.i().vWriteLn(ENMessage.CommandParsing,s);
if (bAdd(s, "rec=", ref m_sRecipient)) { }
else if (bAdd(s, "sen=", ref m_sSender)) { }
else if (bAdd(s, "nam=", ref m_sName)) { }
// else if (bAdd(s, "dom=", ref m_sDomain)) { }
else
{
m_sbBody.Append(s + "\n");
}
}
catch (Exception e)
{
CTrace.i().vWriteLn(ENMessage.CommandParsing,e.Message);
}
}
private string m_sName, m_sRecipient, m_sSender;
StringBuilder m_sbBody;
public void vClear()
{
m_sRecipient = m_sSender = m_sName = "";
m_sbBody = new StringBuilder();
}
public string Name
{
get
{
if (m_sName == "")
{
if (m_sSender != "")
{
m_sSender = m_sSender.Trim(' ');
int dNameIndex = m_sSender.IndexOf('@');
if (dNameIndex <= 0) return m_sSender;
return m_sSender.Substring(0, dNameIndex);
}
}
return m_sName;
}
}
public string Sender
{
get
{
if ( m_sSender == "") return "";
m_sSender = m_sSender.Trim(' ');
int dIndex = m_sSender.IndexOf('@');
if (dIndex <= 0)
{
// EPAssertMessage(m_sDomain != null, "Default domain should be filled up");
return m_sSender + "@" + DEFAULT_DOMAIN;
}
return m_sSender;
}
}
public string Domain
{
get
{
// EPAssert(m_sDomain != null, "Default domain should be filled up");
return DEFAULT_DOMAIN;
}
/* set
{
m_sDomain = value;
}*/
}
public string Recipient
{
get
{
if (m_sRecipient == "") return "";
m_sRecipient = m_sRecipient.Trim(' ');
int dIndex = m_sRecipient.IndexOf('@');
if (dIndex <= 0)
{
// EPAssertMessage(m_sDomain != null, "Default domain should be filled up");
return m_sRecipient + "@" + DEFAULT_DOMAIN;
}
return m_sRecipient;
}
}
public string Body
{
get
{
return m_sbBody.ToString();
}
}
public string csDump()
{
string sOutput="";
sOutput += "\n-------------------------------------------------------------------------------------------------\n";
sOutput += "sen=" + Sender + "(" + Name + ")\n";
sOutput += "rec=" + Recipient + "\n";
sOutput += "body=" + Body + "\n";
sOutput += "-------------------------------------------------------------------------------------------------\n";
return sOutput;
}
}
/// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class CLessonBase : CSerializableBase
{
public CLessonBase()
{
m_bIsCommentText = false;
}
public enum ENLessonPurpose
{
test = 0,
basic
}
public const string DEFAULT_DOMAIN="test.fr";
protected string sGetEndSubstring(int dIndex, string s) {
if (dIndex >= s.Length)
{
return "";
}
else
{
return s.Substring(dIndex);
}
}
protected string sGetBegSubstring(int dIndex, string s)
{
if (dIndex >= s.Length)
{
return s;
}
else
{
return s.Substring(0, dIndex);
}
}
protected bool m_bIsCommentText;
protected string sGetUncommentedText(string s)
{
if (s == null || s.Length == 0) return null;
if (m_bIsCommentText)
{
int dEndComment = s.IndexOf("*/");
if (dEndComment >= 0)
{
m_bIsCommentText = false;
return sGetUncommentedText(sGetEndSubstring(dEndComment+2, s));
}
else {
return "";
}
}
else
{
int dStartComment = s.IndexOf("/*");
int dLineComment = s.IndexOf("//");
if (dStartComment >=0 || ( dLineComment>=0 && dStartComment >=0 && dStartComment =0) || ( dLineComment>=0 && dStartComment >=0 && dLineComment < dStartComment)) {
return sGetBegSubstring(dLineComment, s);
}
return s;
}
}
public bool bAdd(string s, string sKey, ref string sField)
{
int dIndex = s.IndexOf(sKey);
if (dIndex >= 0)
{
sField = s.Substring(sKey.Length);
return true;
}
return false;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class CLessonManager : CLessonBase
{
public CLessonManager(ENLessonPurpose enLessonPurpose)
{
m_enLessonPurpose = enLessonPurpose;
m_oLessonArray = new ArrayList();
}
ArrayList m_oLessonArray;
ENLessonPurpose m_enLessonPurpose;
public CLesson getLastLesson()
{
if (m_oLessonArray.Count == 0)
{
return null;
}
else
{
return (CLesson)m_oLessonArray[m_oLessonArray.Count - 1];
}
}
public void vLoad(string sFileName)
{
string sFilePath = FILE_PATH + "\\" + sFileName;
using (StreamReader sr = File.OpenText(sFilePath))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
int dPurpose = s.IndexOf("pur=");
if (m_oLessonArray.Count== 0 ||(dPurpose >= 0 && getLastLesson().isValid))
{
m_oLessonArray.Add(new CLesson(getLastLesson()));
}
if (getLastLesson() != null)
{
getLastLesson().vAddLine(s);
}
}/*
if (oLesson != null && oLesson.m_sPurpose.ToLower() == m_enLessonPurpose.ToString().ToLower())
{
m_oLessonArray.Add(oLesson);
}*/
}
}
public string csDump()
{
string sOutput="";
for (int i = 0; i < m_oLessonArray.Count; i++)
{
sOutput += ((CLesson)m_oLessonArray[i]).csDump();
}
return sOutput;
}
public int dFindIndex(string sTitle)
{
for (int i = 0; i < m_oLessonArray.Count; i++)
{
if (sTitle.ToLower() == ((CLesson)m_oLessonArray[i]).Title.ToLower())
{
return i;
}
}
return NOT_USED;
}
public CDbEPBase.ec dExecute( int dIndex, out CStatusEmail oStatusEmail)
{
CDbEPBase.ec dStatus = CDbEPBase.ec.ST_NOT_USED; oStatusEmail = null;
CDbEPBase.EPAssert(dIndex >= 0, "Index is not known");
CLesson oLesson = ((CLesson)m_oLessonArray[dIndex]);
CEmailManager oEmailManager = new CEmailManager();
if (oEmailManager.bInitDatabase("EPOL_" + m_enLessonPurpose.ToString().ToUpper()))
{
if (m_enLessonPurpose == ENLessonPurpose.test)
{
oEmailManager.vCleanAllData();
}
oEmailManager.vRegister();
for (int dLCom = 0; dLCom < oLesson.LessonEmailCount; dLCom++)
{
CLessonEmail oLessonEmail = oLesson.getLessonEmail(dLCom);
CTrace.i().vWriteLn(ENMessage.CommandManager, "oLessonEmail(" + dLCom + ")= " + oLessonEmail.csDump());
CReceivedEmail oRecievedEmail = new CReceivedEmail(oLessonEmail.Sender, oLessonEmail.Name, oLessonEmail.Recipient, DateTime.Now);
oRecievedEmail.dAddText(oLessonEmail.Body);
CTrace.i().vWriteLn(ENMessage.CommandManager,"oRecievedEmail.csDump() = " + oRecievedEmail.csDump());
dStatus = oEmailManager.dExecute(oRecievedEmail, out oStatusEmail);
CTrace.i().vWriteLn(ENMessage.CommandManager,"oStatusEmail dStatus = " + dStatus + " " + oStatusEmail.csDump());
}
}
return dStatus;
}
public CDbEPBase.ec dParse(int dIndex, out CCommandLine[] oCommandLineArray)
{
CDbEPBase.ec dErrorCode = CDbEPBase.ec.ST_SUCCEED; oCommandLineArray = null;
CDbEPBase.EPAssert(dIndex >= 0, "Index is not known");
CLesson oLesson = ((CLesson)m_oLessonArray[dIndex]);
CEmailManager oEmailManager = new CEmailManager();
if (oEmailManager.bInitDatabase("EPOL_" + m_enLessonPurpose.ToString().ToUpper()))
{
for (int dLCom = 0; dLCom < oLesson.LessonEmailCount; dLCom++)
{
CLessonEmail oLessonEmail = oLesson.getLessonEmail(dLCom);
CReceivedEmail oRecievedEmail = new CReceivedEmail(oLessonEmail.Sender, oLessonEmail.Name, oLessonEmail.Recipient, DateTime.Now);
oRecievedEmail.dAddText(oLessonEmail.Body);
CTrace.i().vWriteLn(ENMessage.CommandParsing,"oRecievedEmail.csDump() = " + oRecievedEmail.csDump());
oCommandLineArray = new CCommandLine[oRecievedEmail.CommandCount];
CCommandLineFactory oCommandLineFactory = new CCommandLineFactory(oEmailManager.sDatabaseName);
CCommandContext oCommandContext = new CCommandContext();
oCommandLineFactory.vSet( ref oCommandContext);
for (int i = 0; i < oRecievedEmail.CommandCount; i++)
{
dErrorCode = oCommandLineFactory.dLoadOption(
oRecievedEmail.getEmailCommand(i).m_dCommand,
CDbEntityManager.Instance(
oEmailManager.sDatabaseName, CDbEPBase.P.ENGLISH).dGet(CDbEPBase.P.ENGLISH, oRecievedEmail.getEmailCommand(i).m_sEntityName),
oRecievedEmail.getEmailCommand(i).m_csEntityContent,
oRecievedEmail.getEmailCommand(i).m_csOptionString, out oCommandLineArray[i]);
CTrace.i().vWriteLn(ENMessage.CommandParsing,"oCommandLineArray[i] = " + oCommandLineArray[i].csDump());
}
}
}
return dErrorCode;
}
}
}
|
|
|
|
|
|
|
|
Enter supporting content here
|
|
|
|