protected MethodDeclarationSyntax MutatorFrom(RecordEntry entry)
        {
            var arguments = RecordProperties.Select(x =>
            {
                return(SyntaxFactory.Argument(
                           SyntaxFactory.IdentifierName(x.Identifier)));
            });

            var mutator =
                SyntaxFactory.MethodDeclaration(RecordTypeSyntax, MutatorIdentifierFor(entry))
                .WithModifiers(
                    SyntaxFactory.TokenList(
                        SyntaxFactory.Token(SyntaxKind.PublicKeyword)))
                .WithParameterList(
                    SyntaxFactory.ParameterList(
                        SyntaxFactory.SingletonSeparatedList(
                            SyntaxFactory.Parameter(
                                entry.Identifier)
                            .WithType(entry.Type))))
                .WithBody(
                    SyntaxFactory.Block(
                        SyntaxFactory.ReturnStatement(
                            SyntaxFactory.ObjectCreationExpression(RecordTypeSyntax)
                            .WithArgumentList(
                                SyntaxFactory.ArgumentList(
                                    SyntaxFactory.SeparatedList(arguments))))));

            return(mutator);
        }
        protected SyntaxList <MemberDeclarationSyntax> GenerateMembers(SyntaxToken identifier, IReadOnlyList <RecordEntry> properties)
        {
            var ctor = SyntaxFactory.ConstructorDeclaration(identifier.ValueText)
                       .WithModifiers(SyntaxFactory.TokenList(SyntaxFactory.Token(RecordAttribute.GetPrimaryCtorAccessSyntaxKind())))
                       .WithParameterList(properties.IntoCtorParameterList())
                       .WithBody(properties.IntoCtorBody());

            var members = SyntaxFactory.SingletonList <MemberDeclarationSyntax>(ctor);

            if (RecordAttribute.GetGenerateMutators())
            {
                members = members.AddRange(RecordProperties.Select(p => MutatorFrom(p)));
            }
            return(members);
        }
Exemplo n.º 3
0
 private void CheckPropertySaveStatus(RecordProperties<TreeNode> parent, TableDef<TreeNode> node)
 {
     if (propertyDirtyStatus > 0)
     {
         switch (
             MessageBox.Show("Değişiklikleri kaydetmek istiyor musunuz?", "Lütfen Cevaplayınız",
                             MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question,
                             MessageBoxDefaultButton.Button3))
         {
             case DialogResult.Yes:
                 SaveSelectedProperty();
                 break;
             case DialogResult.Cancel:
                 treeProperties.SelectedNode = null;
                 return;
         }
     }
     selectedProperty = parent;
     selectedTable = node;
     ResetSelectionProperty();
 }
Exemplo n.º 4
0
        private bool FillRecordProperties()
        {
            try
            {
                var fInfo = new FileInfo(Path.Combine("info", "recorderProperties.json"));
                if (!fInfo.Exists)
                    throw new Exception(string.Format("Recorder sistem-tablo bilgilerinin bulunduğu {0} bulunamadı",
                                                      fInfo.FullName));
                var json =
                    new DataContractJsonSerializer(
                        typeof(Dictionary<string, RecordProperties<TreeNode>>));
                using (var fs = new StreamReader(fInfo.FullName, Encoding.GetEncoding(1254)))
                {
                    var o = json.ReadObject(fs.BaseStream);
                    if (o == null)
                        throw new Exception(string.Format("{0} dosyasında sistem-tablo bilgileri bulunamadı",
                                                          fInfo.FullName));
                    if (!(o is Dictionary<string, RecordProperties<TreeNode>>))
                        throw new Exception(
                            string.Format("{0} dosyasındaki {1} türü beklenen sistem-tablo bilgi sözlük türünde değil",
                                          fInfo.FullName, o.GetType().Name));
                    propertyLookup = (Dictionary<string, RecordProperties<TreeNode>>)o;

                    var ls = new List<RecordProperties<TreeNode>>();
                    foreach (var key in propertyLookup.Keys)
                    {
                        if (systemLookup.SystemLookup.ContainsKey(key))
                        {
                            var prop = propertyLookup[key];
                            ls.Add(prop);
                            if (prop.Table == null)
                                prop.Table = new Dictionary<string, TableDef<TreeNode>>();
                        }
                    }
                    foreach (var key in systemLookup.SystemLookup.Keys)
                    {
                        if (!propertyLookup.ContainsKey(key))
                        {
                            var prop = new RecordProperties<TreeNode>
                                {
                                    SystemName = key,
                                    Table = new Dictionary<string, TableDef<TreeNode>>()
                                };
                            ls.Add(prop);
                            propertyLookup[key] = prop;
                        }
                    }
                    ls.Sort(CompareByNameSys);
                    foreach (var r in ls)
                    {
                        var node = new TreeNode(r.SystemName);
                        r.Data = node;
                        node.Tag = r;
                        if (r.Table == null)
                            r.Table = new Dictionary<string, TableDef<TreeNode>>();
                        else
                        {
                            var tables = new TableDef<TreeNode>[r.Table.Values.Count];
                            r.Table.Values.CopyTo(tables, 0);

                            Array.Sort(tables, CompareByNameTable);
                            foreach (var t in r.Table.Values)
                            {
                                var nodeSub = new TreeNode { Text = t.Description, Tag = t };
                                t.Data = nodeSub;
                                node.Nodes.Add(nodeSub);
                            }
                        }
                        treeProperties.Nodes.Add(node);
                    }
                    return true;
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(string.Format("Recorder bilgileri yüklenirken hata oluştu: {0}", e.Message), "Hata",
                                MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
                return false;
            }
        }
Exemplo n.º 5
0
 protected virtual int CompareByNameSys(RecordProperties<TreeNode> l, RecordProperties<TreeNode> r)
 {
     return CompareByText(l.SystemName, r.SystemName);
 }