public void SetCommandInArg(string targetCommandId, string argIndex, string commandId, string customeArg) { try { //initial data var data = string.Empty; //get command func Func <RecordModel> func = () => { var record = RecordQueries.GetRecord(Int32.Parse(commandId)); return(new RecordModel() { Id = record.Key, args = record.Value.args, MethodName = record.Value.method.Name, Once = false, ModelInstanceName = record.Value.modelInstance.ToString(), ReturnedName = record.Value.method.Name + '-' + record.Key }); }; //validation var result = commandId == "" ? data = customeArg : data = JsonConvert.SerializeObject(func()); //get target var targetCommand = RecordQueries.GetRecord(Int32.Parse(targetCommandId)); targetCommand.Value.args[Int32.Parse(argIndex)] = data; //update arg System.Console.WriteLine(); } catch (Exception e) { CMD.ShowApplicationMessageToUser($"message : {e.Message}\nroute : {this.ToString()}", showType: ShowType.DANGER); } }
public void Repeat(string hasThread, string number, string threadNumber) { try { var data = bool.Parse(hasThread) ? Int32.Parse(threadNumber) : Int32.Parse(number); var record_last = RecordQueries.GetRecords().Last(); RecordQueries.GetRecords().Remove(record_last.Key); var last_id = record_last.Key; var _id = RecordQueries.GetRecords().OrderBy(r => r.Key).Last().Key; var listOfRecordModel = RecordQueries.GetRecords().Where(r => r.Key <= _id) .Select(rec => new RecordModel { Id = rec.Key, ModelInstanceName = rec.Value.modelInstance.ToString(), MethodName = rec.Value.method.Name, args = rec.Value.args, ReturnedName = rec.Value.method.Name + '-' + rec.Key, Once = false }); var records_json = JsonConvert.SerializeObject(listOfRecordModel); var modelInstance = Type.GetType("BCL.Repeater._Config"); var method = modelInstance.GetMethod("_Repeat"); var args = new object[] { hasThread, data.ToString(), records_json }; RecordQueries.AddNewRecord(last_id, (modelInstance, method, args)); } catch (System.Exception e) { CMD.ShowApplicationMessageToUser($"message : {e.Message}\nroute : {this.ToString()}", showType: ShowType.DANGER); } }
/// <summary> /// clear all commands from commands information /// </summary> public void ClearRecords() { try { RecordQueries.ClearRecords(); } catch (Exception e) { CMD.ShowApplicationMessageToUser($"message : {e.Message}\nroute : {this.ToString()}", showType: ShowType.DANGER); } }
/// <summary> /// /// </summary> /// <param name="key"></param> /// <param name="position"></param> /// <param name="value"></param> public void RecordDynamicize(string key, string position, string value) { try { var record = RecordQueries.GetRecord(Int32.Parse(key)); record.Value.args[Int32.Parse(position)] = value; } catch (Exception e) { CMD.ShowApplicationMessageToUser($"message : {e.Message}\nroute : {this.ToString()}", showType: ShowType.DANGER); } }
/// <summary> /// remove range of commands from commands information by commands key /// </summary> /// <param name="prefix"></param> public void RemoveRecords(string prefix) { try { var keys = RecordQueries.GetKeyOfRecords(prefix); RecordQueries.RemoveRecords(keys); } catch (Exception e) { CMD.ShowApplicationMessageToUser($"message : {e.Message}\nroute : {this.ToString()}", showType: ShowType.DANGER); } }
/// <summary> /// copy records to variable /// </summary> /// <param name="name">name of variable</param> public void CopyRecords(string name) { try { var data = RecordQueries.GetNewInstanceOfRecords().Select(item => new { Name = item.Key, Value = item.Value }); VariablesStorageQueries.AddNewVariable(name, data); } catch (Exception e) { CMD.ShowApplicationMessageToUser($"message : {e.Message}\nroute : {this.ToString()}", showType: ShowType.DANGER); } }
/// <summary> /// paste records in records list /// </summary> /// <param name="name">name of variable</param> public void PasteRecords(string name) { try { var records = VariablesStorageQueries.GetVariableValue(name) as IEnumerable <object>; foreach (dynamic item in records) { RecordQueries.AddNewRecord(item.Name, item.Value); } } catch (Exception e) { CMD.ShowApplicationMessageToUser($"message : {e.Message}\nroute : {this.ToString()}", showType: ShowType.DANGER); } }
/// <summary> /// pause current reconding /// </summary> /// <param name="state">state of record</param> public void PauseRecord(string state) { switch (state) { case "play": RecordQueries.SetRecordState(true); break; case "pause": RecordQueries.SetRecordState(false); break; } }
/// <summary> /// remove specific command information /// </summary> /// <param name="key">key of command information</param> public void RemoveRecord(string key) { try { if (key.Contains(',')) { foreach (var item in key.Split(',')) { RecordQueries.RemoveCommand(Int32.Parse(item)); } return; } RecordQueries.RemoveCommand(Int32.Parse(key)); } catch (Exception e) { CMD.ShowApplicationMessageToUser($"message : {e.Message}\nroute : {this.ToString()}", showType: ShowType.DANGER); } }
/// <summary> /// import records to records storage /// </summary> /// <param name="name">file name</param> public void ImportRecords(string fileName) { try { using (StreamReader reader = new StreamReader(fileName)) { var json = reader.ReadToEnd(); var records = JsonConvert.DeserializeObject <List <RecordModel> > (json) as List <RecordModel>; //add to record storage foreach (var record in records) { RecordQueries.AddNewRecord(record.Id, (Type.GetType(record.ModelInstanceName), Type.GetType(record.ModelInstanceName).GetMethod(record.MethodName), record.args)); } } } catch (Exception e) { CMD.ShowApplicationMessageToUser($"message : {e.Message}\nroute : {this.ToString()}", showType: ShowType.DANGER); } }
/// <summary> /// export records to text file /// </summary> /// <param name="name">file name</param> public void ExportRecords(string fileName) { var records = RecordQueries.GetRecords(); using (StreamWriter writer = new StreamWriter(fileName == "" ? Guid.NewGuid().ToString() + "_records.txt" : fileName)) { var listOfRecordModel = RecordQueries.GetRecords().Select(rec => new RecordModel { Id = rec.Key, ModelInstanceName = rec.Value.modelInstance.ToString(), MethodName = rec.Value.method.Name, args = rec.Value.args, ReturnedName = rec.Value.method.Name + '-' + rec.Key, Once = false, State = "undifined" }); var Json = JsonConvert.SerializeObject(listOfRecordModel); writer.Write(Json); } }
/// <summary> /// display history of user input commands /// </summary> public void DisplayCommandsInformation() { try { var commands = RecordQueries.GetRecords(); foreach (var command in commands) { var value = command.Value; string str = ""; foreach (var item in value.args) { if (item != null) { str += $"{item.ToString()},"; } } CMD.ShowApplicationMessageToUser($"{command.Key}\t{value.modelInstance}\t{value.method}\t[{str}]"); } } catch (Exception e) { CMD.ShowApplicationMessageToUser($"message : {e.Message}\nroute : {this.ToString()}", showType: ShowType.DANGER); } }
/// <summary> /// display record state /// </summary> public void DisplayStateOfRecord() { CMD.ShowApplicationMessageToUser($"record state : {RecordQueries.GetRecordState()}"); }