Exemplo n.º 1
0
        private static void MergeInto(VMS left, VMS right)
        {
            left.Id = right.Id;
            left.Version = right.Version;

            foreach (var softListRight in right.SoftwareList)
            {
                var softListLeft = left.SoftwareList.FirstOrDefault(x => x.SoftwareName == softListRight.SoftwareName);

                if (softListLeft == null)
                {
                    left.SoftwareList.Add(softListRight);
                }
                else
                {
                    foreach (var item in softListRight.VMS)
                    {
                        var softListLeftVMS = softListLeft.VMS.FirstOrDefault(x => x.Version == item.Version && x.OSVersion == item.OSVersion);

                        if (softListLeftVMS == null)
                        {
                            softListLeft.VMS.Add(item);
                        }
                        else
                        {
                            softListLeftVMS = item;
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        private static void Merge(string path, VMS vms)
        {
            var originPath = Path.Combine(path, "vms.json");
            var generatedPath = Path.Combine(path, $"vms_{vms.Version}.json");
            var ouputPath = Path.Combine(path, $"vms.json");

            if (!System.IO.File.Exists(originPath))
            {
                System.IO.File.Copy(generatedPath, ouputPath);
                return;
            }

            var origin = System.IO.File.ReadAllText(originPath);
            var jsonOrigin = JsonConvert.DeserializeObject<VMS>(origin);
            var generated = System.IO.File.ReadAllText(generatedPath);
            var jsonGenerated = JsonConvert.DeserializeObject<VMS>(generated);

            MergeInto(jsonOrigin, jsonGenerated);

            string json = JsonConvert.SerializeObject(jsonOrigin, Formatting.Indented, new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            });
            System.IO.File.WriteAllText(ouputPath, json);
        }
        public VMS CreateVms()
        {
            var resultVms = new VMS {
                Id = _buildId, ReleaseNotes = ReleaseNotesUrl, Active = true, Version = _buildId
            };

            resultVms.SoftwareList = new List <Software>();
            var osList = new List <OS>();

            foreach (var osName in _vms)
            {
                var softwareList = new List <Software>();

                foreach (var softwareName in osName.Value)
                {
                    GenerateSoftwareList(softwareList, softwareName);
                    if (softwareName.Name == "VirtualBox")
                    {
                        dynamic a = new JObject();
                        a.Vagrant = softwareName.Value;
                        GenerateSoftwareList(softwareList, ((JContainer)a).First);
                    }
                }

                foreach (var softwareItem in softwareList)
                {
                    MergeSoftwareItems(resultVms.SoftwareList, softwareItem);
                    // resultVms.SoftwareList.AddRange(softwareList.ToArray());
                }
            }

            return(resultVms);
        }
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                slaveSyncSruct = new SlaveSyncSruct();

                //Ловим при обработке (произвольная структура)
                ms = new MMS();
                vc = new VMS();

                slaveSyncSruct.SignalFormedMetaClass += ms.execution_processing_reguest;
                slaveSyncSruct.SignalFormedMetaClass += vc.execution_processing_reguest;

                slaveSyncSruct.SignalFormedMetaClass += DisplayStruct;
                Thread thread = new Thread(slaveSyncSruct.Open);
                thread.Start();

                //Console.WriteLine("Slave Запущен на " + slaveSyncSruct.serialPort.PortName);
                logger.Trace("Slave Запущен на " + slaveSyncSruct.serialPort.PortName);
            }
            catch (Exception ex)
            {
                logger.Error(ex);
                //Console.WriteLine(ex);
            }
        }
Exemplo n.º 5
0
        private static void CreateOutputFile(string path, VMS vms)
        {
            var fileName = $"vms_{vms.Version}.json";
            var fileFullPath = Path.Combine(path, fileName);

            string json = JsonConvert.SerializeObject(vms,
                Formatting.Indented,
                new JsonSerializerSettings
                {
                    NullValueHandling = NullValueHandling.Ignore
                });
            System.IO.File.WriteAllText(fileFullPath, json);

            Console.WriteLine($"{fileFullPath} created");
        }
        //3 структура
        private void button9_Click(object sender, RoutedEventArgs e)
        {
            if (textBox7.Text != "")
            {
                Test4SendStruct test4SendStruct;
                test4SendStruct.name   = textBox7.Text;
                test4SendStruct.fre    = textBox7.Text;
                test4SendStruct.ab     = textBox7.Text;
                test4SendStruct.cd     = textBox7.Text;
                test4SendStruct.count2 = new int[10000];

                int[] ab = new int[10000];

                for (int i = 0; i < 1000; i++)
                {
                    Random rand = new Random();
                    ab[i] = rand.Next(0, 1000);
                }

                vc = new VMS(test4SendStruct);

                try
                {
                    metaClassFor = new MetaClassForStructandtherdata(vc);

                    // создаем объект BinaryFormatter
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.AssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full;
                    var stream = new MemoryStream();

                    formatter.Serialize(stream, metaClassFor);

                    masterSyncStruct.send_multi_message(stream);

                    Console.WriteLine(stream);
                }
                catch (Exception ex)
                {
                    //Console.WriteLine(ex);
                    logger.Error(ex);
                }
            }
        }