public string CreateProgD(bool Overwrite, DataTable SystemDt, DataView dv, string AppNameSpace, CurrPrj CPrj, CurrSrc CSrc, CurrTar CTar, string dbConnectionString, string dbPassword) { string SrcDb, TarDb; DbPorting pt = new DbPorting(); string ss; DateTime LmSrc, LmTar; StringBuilder sb = new StringBuilder(); foreach (DataRowView drv in dv) { using (Access3.GenCustomsAccess dac = new Access3.GenCustomsAccess()) { LmSrc = dac.GetLastModDt(drv["ProgramName"].ToString(), CSrc.SrcConnectionString, CSrc.SrcDbPassword); } using (Access3.GenCustomsAccess dac = new Access3.GenCustomsAccess()) { LmTar = dac.GetLastModDt(drv["ProgramName"].ToString(), CTar.TarConnectionString, CTar.TarDbPassword); } if (!Overwrite && (LmSrc > Convert.ToDateTime(drv["ModifiedOn"].ToString()) || LmTar > Convert.ToDateTime(drv["ModifiedOn"].ToString()))) { sb.Append("<br />" + drv["ProgramName"].ToString() + " is more recent and not over-written;"); } else { ss = drv["CustomCode"].ToString().Trim().Replace("[[" + "?]]", AppNameSpace); //avoid being replaced by iteself. if (ss != string.Empty) { if (CPrj.TarDesProviderCd == "S") { ss = pt.SqlToSybase(CPrj.EntityId, CPrj.TarDesDatabase, ss, dbConnectionString, dbPassword); } SrcDb = CSrc.SrcDbDatabase; TarDb = CTar.TarDbDatabase; // Save for later restore. foreach (DataRow rr in SystemDt.Rows) { if (drv["MultiDesignDb"].ToString() == "Y") { CSrc.SrcDbDatabase = rr["dbDesDatabase"].ToString(); CTar.TarDbDatabase = rr["dbDesDatabase"].ToString(); ExecProgD(drv["ProgramName"].ToString(), ss, CPrj, CSrc, CTar); } else if (rr["dbDesDatabase"].ToString() == SrcDb) { CSrc.SrcDbDatabase = rr["dbAppDatabase"].ToString(); CTar.TarDbDatabase = rr["dbAppDatabase"].ToString(); ExecProgD(drv["ProgramName"].ToString(), ss, CPrj, CSrc, CTar); } } CSrc.SrcDbDatabase = SrcDb; CTar.TarDbDatabase = TarDb; using (Access3.GenCustomsAccess dac = new Access3.GenCustomsAccess()) { dac.SetLastGenDt(drv["CustomDtlId"].ToString(), CSrc); } } } } return(sb.ToString()); }
public string CreateProgC(bool Overwrite, DataView dv, CurrSrc CSrc, string ProgramPath, string AppNameSpace, string ObjectTypeCd, string FrameworkCd) { StreamWriter sw; BinaryWriter bw; FileInfo fi; bool ErrFound; StringBuilder sb = new StringBuilder(); string Framewk; foreach (DataRowView drv in dv) { if (drv["FrameworkCd"].ToString() == string.Empty) { Framewk = string.Empty; } else if (drv["FrameworkCd"].ToString() == "1") { Framewk = "Dotnet 1.1 "; } else { Framewk = "Dotnet 2.0 "; } ErrFound = false; fi = new FileInfo(ProgramPath + drv["RelativePath"].ToString() + drv["ProgramName"].ToString()); if (!Overwrite && fi.LastWriteTime > Convert.ToDateTime(drv["ModifiedOn"].ToString())) { ErrFound = true; sb.Append("<br />" + Framewk + drv["RelativePath"].ToString() + drv["ProgramName"].ToString() + " is more recent and not over-written;"); } if (!ErrFound) { if (drv["CustomCode"].ToString().Trim() != string.Empty) { sw = new StreamWriter(ProgramPath + drv["RelativePath"].ToString() + drv["ProgramName"].ToString()); try { sw.Write(drv["CustomCode"].ToString().Replace("[[" + "?]]", AppNameSpace)); } //avoid being replaced by iteself. catch (Exception err) { ApplicationAssert.CheckCondition(false, "", "", err.Message); } finally { sw.Close(); } } else if (drv["CustomBin"] != null && drv["CustomBin"].ToString() != string.Empty) { bw = new BinaryWriter(File.Open(ProgramPath + drv["RelativePath"].ToString() + drv["ProgramName"].ToString(), FileMode.Create, FileAccess.ReadWrite)); try { bw.Write((Byte[])drv["CustomBin"]); } catch (Exception err) { ApplicationAssert.CheckCondition(false, "", "", err.Message); } finally { bw.Close(); } } else { ErrFound = true; sb.Append("<br />" + drv["RelativePath"].ToString() + drv["ProgramName"].ToString() + " is ignored;"); } } if (!ErrFound) { if (ObjectTypeCd == "C") // Client tier { if (FrameworkCd == "1") { Robot.ModifyCsproj(false, ProgramPath + "Web.csproj", drv["RelativePath"].ToString() + drv["ProgramName"].ToString(), FrameworkCd, string.Empty); } } else if (ObjectTypeCd == "R") // Rule tier { if (drv["RelativePath"].ToString() == "Common" + CSrc.SrcSystemId.ToString() + "\\Data\\") { Robot.ModifyCsproj(false, ProgramPath + "Common" + CSrc.SrcSystemId.ToString() + "\\Common" + CSrc.SrcSystemId.ToString() + ".csproj", @"Data\" + drv["ProgramName"].ToString(), string.Empty, FrameworkCd); } else if (drv["RelativePath"].ToString().Length > 1) { Robot.ModifyCsproj(false, ProgramPath + drv["RelativePath"].ToString() + drv["RelativePath"].ToString().Substring(0, drv["RelativePath"].ToString().Length - 1) + ".csproj", drv["ProgramName"].ToString(), string.Empty, FrameworkCd); } } using (Access3.GenCustomsAccess dac = new Access3.GenCustomsAccess()) { dac.SetLastGenDt(drv["CustomDtlId"].ToString(), CSrc); } } } return(sb.ToString()); }