public WindowObjectMethod(Guid id, bool isNewObject = false) { _isNewObject = isNewObject; InitializeComponent(); _ref = new UpdateFilesObjectMethod(id).Get(); ID = _ref.ID; if (_isNewObject) { ParseTextInClipboard(); } else { _dataParameters = _ref.Parameters?.ToList(); } if (_dataParameters == null) { _dataParameters = new List <Parameter>(); } SetDataContextForm(); _refreshDataGrid.RefreshDataGrid += _refreshDataGrid_RefreshDataGrid; ReadFileTypeMethods(); }
internal ObjectMethod Get() { RefObjectMethod = new FileObjectMethods().GetFileObjectMethods(Id); Id = RefObjectMethod.ID; return(RefObjectMethod); }
internal void SerializeObjectMethod(FileInfo fileInfo, ObjectMethod objectMethod) { using (StreamWriter writer = new StreamWriter(fileInfo.FullName)) { writer.WriteLine(Serialize(objectMethod)); writer.Flush(); } }
internal bool ParseClipboardTextToObjectMethods(ObjectMethod objectMethod) { string textClipboard = Clipboard.GetText(); if (string.IsNullOrWhiteSpace(textClipboard)) { return(false); } textClipboard = RemoveStartText(textClipboard, "Процедура"); textClipboard = RemoveStartText(textClipboard, "Функция"); textClipboard = textClipboard.TrimStart(); int countDot = textClipboard.Count(f => f == '.'); if (countDot == 1) { int positionDot = textClipboard.IndexOf('.'); objectMethod.Module = RemoveSpace(new string(textClipboard.Take(positionDot).ToArray())); textClipboard = RemoveStartText(textClipboard, objectMethod.Module + "."); ParseTextMethodNameAndParameters(objectMethod, textClipboard); return(true); } else { int countOpeningBracket = textClipboard.Count(f => f == '('); if (countOpeningBracket == 1) { ParseTextMethodNameAndParameters(objectMethod, textClipboard); return(true); } else { return(false); } } }
internal UpdateFilesObjectMethod(Guid id, ObjectMethod objectMethod) { Id = id; RefObjectMethod = objectMethod; }
private void DataGridData_SelectionChanged(object sender, SelectionChangedEventArgs e) { _selectedObjectMethod = DataGridData.SelectedItem as ObjectMethod; }
private string Serialize(ObjectMethod obj) { var serializer = new JavaScriptSerializer(); return(serializer.Serialize(obj)); }
private void ParseTextMethodNameAndParameters(ObjectMethod objectMethod, string textClipboard) { int countOpeningBracket = textClipboard.Count(f => f == '('); if (countOpeningBracket == 1) { int positionOpeningBracket = textClipboard.IndexOf("("); objectMethod.MethodName = RemoveSpace(textClipboard.Substring(0, positionOpeningBracket)); textClipboard = textClipboard.Substring(positionOpeningBracket + 1); int countClosingBracket = textClipboard.Count(f => f == ')'); if (countClosingBracket == 1) { string textParameter = string.Empty; textParameter = textClipboard; textParameter = textParameter.Replace("\r", ""); textParameter = textParameter.Replace("\n", ""); textParameter = textParameter.Replace("\t", ""); textParameter = textParameter.TrimEnd(';'); textParameter = textParameter.TrimEnd(' '); textParameter = RemoveEndText(textParameter, "Экспорт"); textParameter = textParameter.TrimEnd(' '); textParameter = textParameter.TrimEnd(')'); List <Parameter> listParameters = new List <Parameter>(); string[] textParameters = textParameter.Split(','); foreach (string item in textParameters) { if (string.IsNullOrWhiteSpace(item)) { continue; } string textCurrentParameter = item.Replace("знач ", "Знач "); textCurrentParameter = textCurrentParameter.TrimStart().TrimEnd(); Parameter newParameter = new Parameter(); if (textCurrentParameter.StartsWith("Знач ")) { newParameter.ByValue = true; textCurrentParameter = textCurrentParameter.Replace("Знач ", ""); } int positionEquals = textCurrentParameter.IndexOf('='); if (positionEquals > 0) { newParameter.Name = RemoveSpace(textCurrentParameter.Substring(0, positionEquals)); newParameter.ValueByDefault = TrimNotUserChar(textCurrentParameter.Substring(positionEquals)); } else { newParameter.Name = RemoveSpace(textCurrentParameter); } listParameters.Add(newParameter); } objectMethod.Parameters = listParameters.ToArray(); } } else { objectMethod.MethodName = textClipboard; } }