public int Sum(Que<int> queue) => map( deq(queue), (newqueue, option) => match(option, Some: value => value + Sum(newqueue), None: () => 0 ) );
public void Deq5(Que<int> test) { test = map(deq(test), (queue, value) => { Assert.True(value.IsSome); return queue; }); test = map(deq(test), (queue, value) => { Assert.True(value.IsSome); return queue; }); test = map(deq(test), (queue, value) => { Assert.True(value.IsSome); return queue; }); test = map(deq(test), (queue, value) => { Assert.True(value.IsSome); return queue; }); match(peek(test), Some: v => Assert.True(v == 5, "Actually equals "+v), None: () => Assert.False(true) ); }
private State( int logViewMax, Que<ProcessLogItem> log ) { LogViewMax = logViewMax; Log = log; }
public State(int logViewMax) { LogViewMax = logViewMax; Log = Queue<ProcessLogItem>(); }
/// <summary> /// Creates a new instance of CommandParser. /// </summary> /// <param name="que">Development.Materia.Database.Que that holds the Sqlcommand statement.</param> public CommandParser(Que que) { _que = que; Parse(); }
private void btnSave_Click(object sender, EventArgs e) { if (!btnSave.Enabled) { return; } Validator _validator = SCMS.Validators[this]; if (!Materia.Valid(_validator, txtDescription, !string.IsNullOrEmpty(txtDescription.Text.RLTrim()), "Please specify additional charge's description.")) { return; } if (!Materia.Valid(_validator, cboGroup, cboGroup.SelectedIndex >= 0, "Please specify a proper charge group.")) { return; } if (!Materia.Valid(_validator, cboAccount, cboAccount.SelectedIndex >= 0, "Please specify a proper account.")) { return; } DataTable _additionalcharges = Cache.GetCachedTable("additionalcharges"); if (_additionalcharges != null) { DataRow[] _rows = _additionalcharges.Select("([AdditionalCharge] LIKE '" + txtDescription.Text.ToSqlValidString(true) + "') AND\n" + "NOT ([AdditionalCharge] LIKE '" + _additionalcharge.ToSqlValidString(true) + "')"); if (!Materia.Valid(_validator, txtDescription, _rows.Length <= 0, "Additional charge already exists.")) { return; } string _query = ""; DataColumnCollection _cols = _additionalcharges.Columns; if (_isnew) { _query = "INSERT INTO `additionalcharges`\n" + "(`AdditionalCharge`, `ChargeGroup`, `AccountCode`, `DateCreated`)\n" + "VALUES\n" + "('" + txtDescription.Text.ToSqlValidString() + "', " + cboGroup.SelectedValue.ToString() + ", " + cboAccount.SelectedValue.ToString() + ", NOW());"; object[] _values = new object[_cols.Count]; _values[_cols["AdditionalCharge"].Ordinal] = txtDescription.Text; _values[_cols["ChargeGroup"].Ordinal] = cboGroup.SelectedValue; _values[_cols["AccountCode"].Ordinal] = cboAccount.SelectedValue; _values[_cols["DateCreated"].Ordinal] = DateTime.Now; _values[_cols["LastModified"].Ordinal] = DateTime.Now; _additionalcharges.Rows.Add(_values); } else { _query = "UPDATE `additionalcharges` SET\n" + "`AdditionalCharge` = '" + txtDescription.Text.ToSqlValidString() + "', `ChargeGroup` = " + cboGroup.SelectedValue.ToString() + ", `AccountCode` = " + cboAccount.SelectedValue.ToString() + "\n" + "WHERE\n" + "(`AdditionalCharge` LIKE '" + _additionalcharge.ToSqlValidString() + "');"; DataRow[] _existing = _additionalcharges.Select("[AdditionalCharge] LIKE '" + _additionalcharge.ToSqlValidString(true) + "'"); if (_existing.Length > 0) { _existing[0]["AdditionalCharge"] = txtDescription.Text; _existing[0]["ChargeGroup"] = cboGroup.SelectedValue; _existing[0]["AccountCode"] = cboAccount.SelectedValue; } } if (!string.IsNullOrEmpty(_query.RLTrim())) { btnSave.Enabled = false; btnSaveAndClose.Enabled = false; IAsyncResult _result = Que.BeginExecution(SCMS.Connection, _query); while (!_result.IsCompleted && !_cancelled) { Thread.Sleep(1); Application.DoEvents(); } if (_cancelled) { if (!_result.IsCompleted) { try { _result = null; } catch { } finally { Materia.RefreshAndManageCurrentProcess(); } } return; } else { QueResult _queresult = Que.EndExecution(_result); if (string.IsNullOrEmpty(_queresult.Error.RLTrim())) { UserAction _action = UserAction.Add; if (!_isnew) { _action = UserAction.Edit; } string _log = "Added a new additional charge : " + txtDescription.Text + "."; if (!_isnew) { _log = "Updated additional charge : " + _additionalcharge + (_additionalcharge != txtDescription.Text ? " to " + txtDescription.Text : "").ToString() + "."; } _additionalcharges.AcceptChanges(); _additionalcharge = txtDescription.Text; if (_isnew) { _isnew = false; } if (_updated) { _updated = false; } if (!_withupdates) { _withupdates = true; } Text = Text.Replace(" *", "").Replace("*", ""); Cursor = Cursors.WaitCursor; IAsyncResult _logresult = SCMS.CurrentSystemUser.LogActionAsync(_action, _log); _logresult.WaitToFinish(); Cursor = Cursors.Default; if (sender == btnSaveAndClose) { DialogResult = System.Windows.Forms.DialogResult.OK; Close(); } } else { if (_queresult.Error.Contains("duplicate")) { bool _invalid = Materia.Valid(_validator, txtDescription, false, "Additional charge already exists."); } else { SCMS.LogError(this.GetType().Name, new Exception(_queresult.Error)); MsgBoxEx.Alert("Failed to save the current additional charge.", "Save Additional Charge"); } _additionalcharges.RejectChanges(); } _queresult.Dispose(); } btnSave.Enabled = true; btnSaveAndClose.Enabled = true; } } else { if (sender == btnSaveAndClose) { DialogResult = System.Windows.Forms.DialogResult.None; Close(); } } }
public int GetHashCode(Que <A> x) => Prelude.hash <HashA, A>(x);
public int GetHashCode(Que <A> x) => x.GetHashCode();
public ProcessOpTransaction(ProcessId pid, Que <ProcessOp> ops, Option <HashMap <string, object> > settings) { ProcessId = pid; Ops = ops; Settings = settings; }
public bool Equals(Que <A> x, Que <A> y) => default(EqQue <OrdA, A>).Equals(x, y);
public static (Que <T>, T) PopUnsafe <T>(this Que <T> queue) =>
private void CreateInitialUser(IDbConnection connection) { string _path = Application.StartupPath + "\\Xml\\defaultusers.xml"; DataTable _table = SCMS.XmlToTable(_path); if (_table != null) { DataRow[] _rows = _table.Select("[ComputerName] = '" + Environment.MachineName.ToSqlValidString(true) + "' AND " + "[UserAccount] = '" + Environment.UserName.ToSqlValidString(true) + "'"); if (_rows.Length > 0) { Cache.SyncTable(connection, "users"); bool _exists = false; DataTable _cachedtable = Cache.GetCachedTable("users"); if (_cachedtable != null) { DataRow[] _exrows = _cachedtable.Select("[Username] LIKE '" + _rows[0]["Username"].ToString().ToSqlValidString(true) + "'"); if (_exrows.Length > 0) { _exists = true; } } if (!_exists) { Cache.SyncTable(connection, "departments"); Cache.SyncTable(connection, "positions"); string _query = ""; _exists = false; DataTable _depttable = Cache.GetCachedTable("departments"); if (_depttable != null) { DataRow[] _exrows = _depttable.Select("[Department] LIKE '" + _rows[0]["Department"].ToString().ToSqlValidString(true) + "'"); if (_exrows.Length > 0) { _exists = true; } } if (!_exists) { _query += "INSERT INTO `departments`\n" + "(`Department`, `DateCreated`)\n" + "VALUES\n" + "('" + _rows[0]["Department"].ToString().ToSqlValidString() + "', NOW());\n"; object[] _values = new object[_depttable.Columns.Count]; DataColumnCollection _cols = _depttable.Columns; _values[_cols["Department"].Ordinal] = _rows[0]["Department"]; _values[_cols["DateCreated"].Ordinal] = DateTime.Now; _values[_cols["LastModified"].Ordinal] = DateTime.Now; _depttable.Rows.Add(_values); } _exists = false; DataTable _postntable = Cache.GetCachedTable("positions"); if (_postntable != null) { DataRow[] _exrows = _postntable.Select("[Position] LIKE '" + _rows[0]["Position"].ToString().ToSqlValidString(true) + "'"); if (_exrows.Length > 0) { _exists = true; } } if (!_exists) { _query += "INSERT INTO `positions`\n" + "(`Position`, `DateCreated`)\n" + "VALUES\n" + "('" + _rows[0]["Position"].ToString().ToSqlValidString() + "', NOW());\n"; object[] _values = new object[_postntable.Columns.Count]; DataColumnCollection _cols = _postntable.Columns; _values[_cols["Position"].Ordinal] = _rows[0]["Position"]; _values[_cols["DateCreated"].Ordinal] = DateTime.Now; _values[_cols["LastModified"].Ordinal] = DateTime.Now; _postntable.Rows.Add(_values); } StringBuilder _privileges = new StringBuilder(); for (int i = 1; i <= 700; i++) { _privileges.Append("1"); } _query += "INSERT INTO `users`\n" + "(`Username`, `Password`, `FirstName`, `MiddleName`, `LastName`, `Department`, `Position`, `Active`, `Role`, `Privileges`, `AllCustomers`, `AllCompanies`, `DateCreated`)\n" + "VALUES\n" + "('" + _rows[0]["Username"].ToString().ToSqlValidString() + "', '" + _rows[0]["Password"].ToString().Encrypt(SCMS.EncryptionKey).ToSqlValidString() + "', " + "'" + _rows[0]["FirstName"].ToString().ToSqlValidString() + "', '" + _rows[0]["MiddleName"].ToString().ToSqlValidString() + "', '" + _rows[0]["LastName"].ToString().ToSqlValidString() + "', " + "'" + _rows[0]["Department"].ToString().ToSqlValidString() + "', '" + _rows[0]["Position"].ToString().ToSqlValidString() + "', 1, '" + SystemUserInfo.SuperUserRole.ToSqlValidString() + "', " + "'" + _privileges.ToString() + "', 1, 1, NOW());"; QueResult _result = Que.Execute(connection, _query); if (String.IsNullOrEmpty(_result.Error.RLTrim())) { if (_depttable != null) { _depttable.AcceptChanges(); } if (_postntable != null) { _postntable.AcceptChanges(); } if (_cachedtable != null) { object[] _values = new object[_cachedtable.Columns.Count]; DataColumnCollection _cols = _cachedtable.Columns; _values[_cols["Username"].Ordinal] = _rows[0]["Username"]; _values[_cols["Password"].Ordinal] = _rows[0]["Password"].ToString().Encrypt(SCMS.EncryptionKey); _values[_cols["FirstName"].Ordinal] = _rows[0]["FirstName"]; _values[_cols["MiddleName"].Ordinal] = _rows[0]["MiddleName"]; _values[_cols["LastName"].Ordinal] = _rows[0]["LastName"]; _values[_cols["Position"].Ordinal] = _rows[0]["Position"]; _values[_cols["Department"].Ordinal] = _rows[0]["Department"]; _values[_cols["Role"].Ordinal] = SystemUserInfo.SuperUserRole; _values[_cols["Privileges"].Ordinal] = _privileges.ToString(); _values[_cols["AllCustomers"].Ordinal] = 1; _values[_cols["AllCompanies"].Ordinal] = 1; _values[_cols["DateCreated"].Ordinal] = DateTime.Now; _values[_cols["DateVoided"].Ordinal] = DBNull.Value; _cachedtable.Rows.Add(_values); _cachedtable.AcceptChanges(); } Cache.Save(); } else { if (_depttable != null) { _depttable.RejectChanges(); } if (_postntable != null) { _postntable.RejectChanges(); } if (_cachedtable != null) { _cachedtable.RejectChanges(); } } _result.Dispose(); Materia.RefreshAndManageCurrentProcess(); } } _table.Dispose(); _table = null; Materia.RefreshAndManageCurrentProcess(); } }
public Que GetQue() { return(Que.GetQue(uiHao6.Checked, uiHao5.Checked, uiHao4.Checked, uiHao3.Checked, uiHao2.Checked, uiHao1.Checked)); }
/// <summary> /// Executes the current database script. /// </summary> /// <returns></returns> public DatabaseScriptExecutionResult Execute() { DatabaseScriptExecutionResult _result = new DatabaseScriptExecutionResult(this); string _message = "You are about to execute a database script with the following information<br /><br />" + "<b>Reference No.</b> " + _referenceno + "<br />" + "<b>System Version</b> " + (_systemversion != Application.ProductVersion ? "<font color=\"red\">" : "") + _systemversion + (_systemversion != Application.ProductVersion ? "<\font>" : "") + "<br />" + "<b>Author</b> " + _author + "<br />" + "<b>Date Created</b> " + VisualBasic.Format(_datecreated, "dd-MMM-yyyy") + "<br />" + "<b>Title</b>" + _title + "<br />" + "<b>Description</b> " + _description + "<br />" + (_requiresapprestartafterexecution || _requiresbackupbeforeexecution || _requirespcrestartafterexecution ? "<b>Transitions</b><br />" : "") + (_requiresbackupbeforeexecution ? " Perform database backup before execution<br />" : "") + (_requiresapprestartafterexecution ? " Restart application after execution<br />" : "") + (_requirespcrestartafterexecution ? " Restart workstation after execution<br />" : "") + "<br />" + "Press <font color=\"blue\">OK</font> to continue."; DialogResult _dialogresult = MsgBoxEx.Shout(_message, "Execute Database Script", MessageBoxButtons.OKCancel, MessageBoxDefaultButton.Button2); if (_dialogresult == DialogResult.OK) { if (_requiresbackupbeforeexecution) { string _backupdir = GlobalSettings.AutomaticBackupPath; if (string.IsNullOrEmpty(_backupdir.RLTrim())) { _backupdir = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); } else { if (!Directory.Exists(_backupdir)) { _backupdir = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); } } string _filename = _backupdir + "\\" + SCMS.ServerConnection.Database.ToUpper() + "_BACKUP_" + VisualBasic.Format(DateTime.Now, "dd_MM_yyyy_HH_mm_ss") + ".scmsiv"; DatabaseBackupDialog _dialog = new DatabaseBackupDialog(true); _dialog.BackupPath = _filename; DialogResult _backupresult = _dialog.ShowDialog(); _dialog.Dispose(); _dialog = null; Materia.RefreshAndManageCurrentProcess(); if (_backupresult != DialogResult.OK) { return(_result); } } InitializerDialog _loader = new InitializerDialog(); _loader.Message = "Executing database script into " + SCMS.ServerConnection.Server + " / " + SCMS.ServerConnection.Database + "..."; _loader.Show(); _result.Execute(); if (_result.Executed) { IAsyncResult _logresult = SCMS.CurrentSystemUser.LogActionAsync(UserAction.ExecuteScript, "Executed a database script" + (!string.IsNullOrEmpty(_filename.RLTrim()) ? " : " + _filename : "") + ".", _referenceno); _logresult.WaitToFinish(); IAsyncResult _syncresult = Cache.SyncTableAsync(SCMS.Connection, "scripts"); _syncresult.WaitToFinish(); DataTable _scripts = Cache.GetCachedTable("scripts"); DataRow[] _rows = _scripts.Select("[ReferenceNo] LIKE '" + _referenceno.ToSqlValidString(true) + "'"); if (_rows.Length <= 0) { DataColumnCollection _cols = _scripts.Columns; object[] _values = new object[_cols.Count]; _values[_cols["ReferenceNo"].Ordinal] = _referenceno; _values[_cols["Author"].Ordinal] = _author; _values[_cols["Title"].Ordinal] = _title; _values[_cols["ReferenceNo"].Ordinal] = _referenceno; _values[_cols["SystemVersion"].Ordinal] = _systemversion; _values[_cols["Description"].Ordinal] = _description; _values[_cols["Script"].Ordinal] = _sqlstatement; _values[_cols["DateCreated"].Ordinal] = _datecreated; _values[_cols["Executed"].Ordinal] = 1; _values[_cols["DateExecuted"].Ordinal] = DateTime.Now; _values[_cols["RequireBackup"].Ordinal] = (_requiresbackupbeforeexecution ? 1 : 0); _values[_cols["RequireAppRestart"].Ordinal] = (_requiresapprestartafterexecution ? 1 : 0); _values[_cols["RequirePcRestart"].Ordinal] = (_requiresapprestartafterexecution ? 1 : 0); _scripts.Rows.Add(_values); } else { _rows[0]["Executed"] = 1; _rows[0]["DateExecuted"] = DateTime.Now; } QueryGenerator _generator = new QueryGenerator(_scripts); string _query = _generator.ToString(); _generator = null; Materia.RefreshAndManageCurrentProcess(); if (!string.IsNullOrEmpty(_query.RLTrim())) { IAsyncResult _queresult = Que.BeginExecution(SCMS.Connection, _query); _queresult.WaitToFinish(); QueResult _execresult = Que.EndExecution(_queresult); if (!string.IsNullOrEmpty(_execresult.Error.RLTrim())) { _scripts.RejectChanges(); } else { _scripts.AcceptChanges(); } _execresult.Dispose(); } } _loader.Close(); _loader.Dispose(); _loader = null; Materia.RefreshAndManageCurrentProcess(); if (_result.Executed) { if (_requiresapprestartafterexecution) { FormCollection _forms = Application.OpenForms; int _counter = _forms.Count; for (int i = (_counter - 1); i >= 0; i--) { Form _form = _forms[i]; if (!(_form is MainWindow) && !(_form is LoginDialog)) { if (_form.TopMost) { try { _form.Close(); _form.Dispose(); _counter = _forms.Count; } catch { } finally { Materia.RefreshAndManageCurrentProcess(); } } } } IAsyncResult _logoutresult = SCMS.CurrentSystemUser.LogOutAsync(); _logoutresult.WaitToFinish(); Form _mainform = null; System.Collections.IEnumerator _enumerators = _forms.GetEnumerator(); while (_enumerators.MoveNext()) { Form _form = (Form)_enumerators.Current; if (_form is MainWindow) { _mainform = _form; break; } } if (_mainform != null) { _mainform.Close(); } } else { if (_requirespcrestartafterexecution) { IAsyncResult _logoutresult = SCMS.CurrentSystemUser.LogOutAsync(); _logoutresult.WaitToFinish(); Process.Start("cmd", "/C shutdown -f -r -t 0"); } } } else { MsgBoxEx.Alert("Failed to either complete or fully execute the database script.", "Execute Database Script"); } } return(_result); }