/// <summary> /// Create Process Instance from Process and create parameters /// </summary> /// <param name="process">process</param> /// <param name="Record_ID">Record</param> public MPInstance(MProcess process, int Record_ID) : this(process.GetCtx(), 0, null) { if (process.Get_ID() <= 0) { return; } SetAD_Process_ID(process.GetAD_Process_ID()); SetRecord_ID(Record_ID); SetAD_User_ID(process.GetCtx().GetAD_User_ID()); // PO Save below if (!Save()) // need to save for parameters { throw new ArgumentException("Cannot Save"); } // Set Parameter Base Info MProcessPara[] para = process.GetParameters(); for (int i = 0; i < para.Length; i++) { MPInstancePara pip = new MPInstancePara(this, para[i].GetSeqNo()); pip.SetParameterName(para[i].GetColumnName()); pip.SetInfo(para[i].GetName()); pip.Save(); // PO Save } }
public static string GetItemString(IntPtr Handle, int N) { string CL_Name = MethodBase.GetCurrentMethod().DeclaringType.FullName + "+MAINSTRUCT";//`1"; IntPtr ProcessPointer = MProcess.GetProcessPointer(Handle); if (MProcess.IsWin64(ProcessPointer)) { CL_Name = CL_Name + "64"; } else { CL_Name = CL_Name + "32"; } Type myType = Type.GetType(CL_Name); /* myType = (MProcess.IsWin64(ProcessPointer)) ? myType.MakeGenericType(new Type[] { Type.GetType("System.UInt64") }) : * myType.MakeGenericType(new Type[] { Type.GetType("System.UInt32") });*/ object Data = Activator.CreateInstance(myType); IGetSet GS = Data as IGetSet; uint MaxT = 256; byte[] List_COL = new byte[MaxT]; IntPtr ItemPointerT = Memory.VirtualAllocEx(ProcessPointer, IntPtr.Zero, MaxT, Memory.AllocationType.Commit, Memory.MemoryProtection.ReadWrite); GS.GetSet().SetFieldValue(new string[] { "mask", "cchTextMax", "pszText" }, (SETGETMSG.WIDTH | SETGETMSG.TEXT), MaxT, ItemPointerT); IntPtr ItemPointerD = Memory.WriteProcessMemory(ProcessPointer, Data); Message.P.SM(Handle, (uint)MSG.GETITEMA, N, ItemPointerD); bool bSuccess3 = Memory.ReadProcessMemory(ProcessPointer, ItemPointerT, (object)List_COL); Memory.VirtualFreeEx(ProcessPointer, ItemPointerT, 0, Memory.FreeType.Release); Memory.VirtualFreeEx(ProcessPointer, ItemPointerD, 0, Memory.FreeType.Release); return(System.Text.Encoding.Default.GetString(List_COL).Trim('\0')); }
/// <summary> /// After Save /// </summary> /// <param name="newRecord">new</param> /// <param name="success">success</param> /// <returns>success</returns> protected override bool AfterSave(bool newRecord, bool success) { // Update Statistics if (!newRecord && !IsProcessing() && Is_ValueChanged("IsProcessing")) { //long ms = System.currentTimeMillis() - GetCreated().getTime(); long ms = CommonFunctions.CurrentTimeMillis() - GetCreated().Millisecond; int seconds = (int)(ms / 1000); if (seconds < 1) { seconds = 1; } MProcess prc = MProcess.Get(GetCtx(), GetAD_Process_ID()); prc.AddStatistics(seconds); if (prc.Get_ID() != 0 && prc.Save()) { log.Fine("afterSave - Process Statistics updated Sec=" + seconds); } else { log.Warning("afterSave - Process Statistics not updated"); } } return(success); }
/// <summary> /// Based on Report ID, Generate report and then save it in physcal location /// </summary> /// <param name="ctx"></param> /// <param name="_trx"></param> /// <param name="AD_TableID"></param> /// <param name="recordID"></param> /// <param name="AD_UserID"></param> /// <param name="AD_ClientID"></param> /// <param name="nodeName"></param> /// <param name="windowID"></param> /// <param name="WFActivity"></param> /// <returns>file info.</returns> public FileInfo GetPdfReportForMail(Ctx ctx, Trx _trx, int AD_TableID, int recordID, int AD_UserID, int AD_ClientID, string nodeName, int windowID, int WFActivity) { try { int reportID = GetDoctypeBasedReport(ctx, AD_TableID, recordID, windowID, WFActivity); if (reportID == 0) { VLogger.Get().Warning("No Report found on DocType and Window Tab. For Table=" + AD_TableID); return(null); } FileInfo temp = null; MProcess process = MProcess.Get(ctx, reportID); ProcessInfo pi = new ProcessInfo(nodeName, reportID, AD_TableID, recordID); pi.SetAD_User_ID(AD_UserID); pi.SetAD_Client_ID(AD_ClientID); MPInstance pInstance = new MPInstance(process, recordID); //FillParameter(pInstance, trx); pi.SetAD_PInstance_ID(pInstance.GetAD_PInstance_ID()); if (process.GetIsCrystalReport() == "Y") { pi.SetIsCrystal(true); } else { pi.SetIsCrystal(false); } pi.SetAD_ReportFormat_ID(process.GetAD_ReportFormat_ID()); pi.SetAD_ReportMaster_ID(process.GetAD_ReportMaster_ID()); process.ProcessIt(pi, _trx); IReportEngine repo = ReportRun(pi, ctx, _trx); byte[] bytes = repo.GetReportBytes(); string repPath = repo.GetReportFilePath(true, out bytes); repPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath + repPath; ctx.SetContext("FetchingDocReport", "N"); if (!string.IsNullOrEmpty(repPath)) { temp = new FileInfo(repPath); if (temp.Exists) { return(temp); } return(null); } return(null); } catch { ctx.SetContext("FetchingDocReport", "N"); return(null); } }
protected override void DoWork() { m_summary = new StringBuilder(m_model.ToString()) .Append(" - "); MProcess process = m_model.GetProcess(); // try { // Explicitly set Environment Ctx ctx = m_model.GetCtx(); ctx.SetAD_Client_ID(m_model.GetAD_Client_ID()); ctx.SetContext("AD_Client_ID", m_model.GetAD_Client_ID()); ctx.SetAD_Org_ID(m_model.GetAD_Org_ID()); ctx.SetContext("AD_Org_ID", m_model.GetAD_Org_ID()); ctx.SetAD_User_ID(m_model.GetUpdatedBy()); ctx.SetContext("AD_User_ID", m_model.GetUpdatedBy()); ctx.SetContext("#SalesRep_ID", m_model.GetUpdatedBy()); // m_trx = Trx.Get("Scheduler"); String result = m_model.Execute(m_trx); m_summary.Append(result); m_trx.Commit(); } catch (Exception e) { if (m_trx != null) { m_trx.Rollback(); } log.Log(Level.WARNING, process.ToString(), e); m_summary.Append(e.ToString()); } if (m_trx != null) { m_trx.Close(); } // int no = m_model.DeleteLog(); m_summary.Append("Logs deleted=").Append(no); // MSchedulerLog pLog = new MSchedulerLog(m_model, m_summary.ToString()); pLog.SetReference("#" + (_runCount.ToString()) + " - " + TimeUtil.FormatElapsed(VAdvantage.Classes.CommonFunctions.CovertMilliToDate(_startWork))); pLog.Save(); }
private void ReceiveData(string data) { if (data.Contains("RING") && data.Contains("CLIP")) { if (data.Contains(SignalView.GSMSignaler.Phone.Replace("+", ""))) { if (LastIncomingCall > DateTime.Now.AddSeconds(-60)) { CounterCalls++; if (CounterCalls == 8) { MProcess.CloseTerminal(); SignalView.GSMSignaler.SendSignalResetCall(); } } else { LastIncomingCall = DateTime.Now; CounterCalls = 1; } } } }
/// <summary> /// Assign/UnAssign process from group to role /// </summary> /// <param name="AD_Group_ID"></param> /// <param name="AD_Role_ID"></param> /// <param name="grantAccess"></param> private void ProvideProcessAccessToRole(int AD_Group_ID, int AD_Role_ID, bool grantAccess) { string sql = "SELECT AD_Process_ID from AD_Group_Process WHERE IsActive='Y' AND AD_GroupInfo_ID=" + AD_Group_ID; DataSet ds = DB.ExecuteDataset(sql); List <int> groupWindowIDs = new List <int>(); Dictionary <int, bool> roleWindowIDsDictinary = new Dictionary <int, bool>(); StringBuilder winIDs = new StringBuilder(); if (ds != null && ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["AD_Process_ID"] != null && ds.Tables[0].Rows[i]["AD_Process_ID"] != DBNull.Value) { if (winIDs.Length > 0) { winIDs.Append(","); } winIDs.Append(ds.Tables[0].Rows[i]["AD_Process_ID"].ToString()); groupWindowIDs.Add(Convert.ToInt32(ds.Tables[0].Rows[i]["AD_Process_ID"])); } } groupWindowIDs.Sort(); sql = "SELECT AD_Process_ID,IsReadWrite FROM AD_Process_Access WHERE AD_Role_ID=" + AD_Role_ID + " AND AD_Process_ID IN(" + winIDs.ToString() + ")"; ds = DB.ExecuteDataset(sql); if (ds != null && ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { roleWindowIDsDictinary[Convert.ToInt32(ds.Tables[0].Rows[i]["AD_Process_ID"])] = ds.Tables[0].Rows[i]["IsReadWrite"].ToString() == "Y" ? true : false; } } for (int i = 0; i < groupWindowIDs.Count(); i++) { MProcess wind = new MProcess(ctx, groupWindowIDs[i], null); MProcessAccess wAccess = new MProcessAccess(wind, AD_Role_ID); if (roleWindowIDsDictinary.ContainsKey(groupWindowIDs[i])) { if (roleWindowIDsDictinary[groupWindowIDs[i]] != grantAccess) { //wAccess.SetIsReadWrite(grantAccess); //wAccess.Save(); if (grantAccess) { sql = "UPDATE AD_Process_Access Set IsReadWrite='Y',IsActive='Y' WHERE AD_Process_ID=" + groupWindowIDs[i] + " AND AD_Role_ID=" + AD_Role_ID; } else { sql = "UPDATE AD_Process_Access Set IsReadWrite='N',IsActive='N' WHERE AD_Process_ID=" + groupWindowIDs[i] + " AND AD_Role_ID=" + AD_Role_ID; } DB.ExecuteQuery(sql, null, null); } } else { wAccess.SetAD_Client_ID(ctx.GetAD_Client_ID()); wAccess.SetAD_Org_ID(ctx.GetAD_Org_ID()); wAccess.SetAD_Role_ID(AD_Role_ID); wAccess.SetAD_Process_ID(groupWindowIDs[i]); wAccess.SetIsReadWrite(grantAccess); wAccess.Save(); } } } }
/// <summary> /// Complete the Payment Record /// </summary> /// <param name="ctx">Context</param> /// <param name="Record_ID">C_Payment_ID</param> /// <param name="Process_ID">AD_Process_ID</param> /// <param name="DocAction">Documnet Action</param> /// <returns>return message</returns> public string CompletePayment(Ctx ctx, int Record_ID, int Process_ID, string DocAction) { string result = ""; MRole role = MRole.Get(ctx, ctx.GetAD_Role_ID()); if (Util.GetValueOfBool(role.GetProcessAccess(Process_ID))) { DB.ExecuteQuery("UPDATE C_Payment SET DocAction = '" + DocAction + "' WHERE C_Payment_ID = " + Record_ID); MProcess proc = new MProcess(ctx, Process_ID, null); MPInstance pin = new MPInstance(proc, Record_ID); if (!pin.Save()) { ValueNamePair vnp = VLogger.RetrieveError(); string errorMsg = ""; if (vnp != null) { errorMsg = vnp.GetName(); if (errorMsg == "") { errorMsg = vnp.GetValue(); } } if (errorMsg == "") { result = Msg.GetMsg(ctx, "DocNotCompleted"); } return(result); } MPInstancePara para = new MPInstancePara(pin, 20); para.setParameter("DocAction", DocAction); if (!para.Save()) { //String msg = "No DocAction Parameter added"; // not translated } ProcessInfo pi = new ProcessInfo("WF", Process_ID); pi.SetAD_User_ID(ctx.GetAD_User_ID()); pi.SetAD_Client_ID(ctx.GetAD_Client_ID()); pi.SetAD_PInstance_ID(pin.GetAD_PInstance_ID()); pi.SetRecord_ID(Record_ID); pi.SetTable_ID(335); //AD_Table_ID=335 for C_Payment ProcessCtl worker = new ProcessCtl(ctx, null, pi, null); worker.Run(); if (pi.IsError()) { ValueNamePair vnp = VLogger.RetrieveError(); string errorMsg = ""; if (vnp != null) { errorMsg = vnp.GetName(); if (errorMsg == "") { errorMsg = vnp.GetValue(); } } if (errorMsg == "") { errorMsg = pi.GetSummary(); } if (errorMsg == "") { errorMsg = Msg.GetMsg(ctx, "DocNotCompleted"); } result = errorMsg; return(result); } else { result = ""; } } else { result = Msg.GetMsg(ctx, "NoAccess"); return(result); } return(result); }