コード例 #1
0
        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();
        }
コード例 #2
0
        internal ObjectMethod Get()
        {
            RefObjectMethod = new FileObjectMethods().GetFileObjectMethods(Id);

            Id = RefObjectMethod.ID;

            return(RefObjectMethod);
        }
コード例 #3
0
ファイル: Json.cs プロジェクト: djserega/MethodStore
 internal void SerializeObjectMethod(FileInfo fileInfo, ObjectMethod objectMethod)
 {
     using (StreamWriter writer = new StreamWriter(fileInfo.FullName))
     {
         writer.WriteLine(Serialize(objectMethod));
         writer.Flush();
     }
 }
コード例 #4
0
        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);
                }
            }
        }
コード例 #5
0
 internal UpdateFilesObjectMethod(Guid id, ObjectMethod objectMethod)
 {
     Id = id;
     RefObjectMethod = objectMethod;
 }
コード例 #6
0
 private void DataGridData_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     _selectedObjectMethod = DataGridData.SelectedItem as ObjectMethod;
 }
コード例 #7
0
ファイル: Json.cs プロジェクト: djserega/MethodStore
        private string Serialize(ObjectMethod obj)
        {
            var serializer = new JavaScriptSerializer();

            return(serializer.Serialize(obj));
        }
コード例 #8
0
        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;
            }
        }