Пример #1
0
        private static void RegisterLigthSoftware(string info)
        {
            string[] componentInfo         = info.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
            string   hardwareComponentName = componentInfo[0];

            bool isHardwareExists = TheSystem.Components.Exists(c => c.Name == hardwareComponentName);

            if (isHardwareExists)
            {
                var hardwareComponent = TheSystem.Components.First(c => c.Name == hardwareComponentName);

                string name = componentInfo[1];
                int    capacityConsumption = int.Parse(componentInfo[2]);
                int    memoryConsumption   = int.Parse(componentInfo[3]);

                var lightSoftware = new LightSoftware(name, capacityConsumption, memoryConsumption);

                bool hasEnoughCapacity = hardwareComponent.AvailableCapacity >= lightSoftware.CapacityConsumption;
                bool hasEnoughMemory   = hardwareComponent.AvailableMemory >= lightSoftware.MemoryConsumption;
                if (hasEnoughCapacity && hasEnoughMemory)
                {
                    hardwareComponent.AvailableCapacity -= lightSoftware.CapacityConsumption;
                    hardwareComponent.AvailableMemory   -= lightSoftware.MemoryConsumption;
                    hardwareComponent.SoftwareComponents.Add(lightSoftware);
                }
            }
        }
Пример #2
0
        private void RegisterLightSoftware(string hardwareComponentName, string name,
                                           int capacityConsumation, int memoryConsumation)
        {
            LightSoftware lightSoftware = new LightSoftware(name, capacityConsumation, memoryConsumation);

            this.CustomSystem.AddSoftwareToHardware(hardwareComponentName, lightSoftware);
        }
Пример #3
0
        public void RegisterLightSoftware(List <Hardware.Hardware> system, string command)
        {
            var zwischenspeicher  = command.Split('(');
            var zwischenspeicher2 = zwischenspeicher[1].Substring(0, zwischenspeicher[1].Length - 1);
            var splitArray        = zwischenspeicher2.Split(',').ToArray();

            var name         = splitArray[0];
            var nameHardware = splitArray[1];
            var capacity     = Convert.ToInt32(splitArray[2]);
            var memory       = Convert.ToInt32(splitArray[3]);

            if (system.Any(s => s.Name == nameHardware))
            {
                var hardware = system.First(s => s.Name == nameHardware);

                if (hardware.MaximumCapacity - hardware.UsedCapacity >= capacity && hardware.MaximumMemory - hardware.UsedMemory >= memory)
                {
                    var software = new LightSoftware(name, nameHardware, capacity, memory);

                    hardware.RegisterSoftwareComponent(software);
                    hardware.UsedCapacity += software.CapacityConsumption;
                    hardware.UsedMemory   += software.MemoryConsumption;
                }
            }
        }
Пример #4
0
    public void RegisterLightSoftware(string hardwareComponentName, string name, int capacity, int memory)
    {
        var software = new LightSoftware(name, capacity, memory);

        if (Components.ContainsKey(hardwareComponentName))
        {
            Components[hardwareComponentName].AddSoftware(software);
        }
    }
Пример #5
0
        private static string CreateLightSoftware(string[] dataSystem, out Software lsSoft)
        {
            string lsHName    = dataSystem[0];
            string lsName     = dataSystem[1];
            int    lsCapacity = int.Parse(dataSystem[2]);
            int    lsMemory   = int.Parse(dataSystem[3]);

            lsSoft = new LightSoftware(lsName, lsCapacity, lsMemory);
            return(lsHName);
        }
Пример #6
0
    public void RegisterLightSoftware(string[] arr)
    {
        string hardwareComponentName = arr[1];
        string name = arr[2];
        int    cap  = int.Parse(arr[3]);
        int    mem  = int.Parse(arr[4]);

        Hardware CurrHardware = this.HardwereComponentsLis.FirstOrDefault(se => se.Name == hardwareComponentName);

        if (CurrHardware != null)
        {
            Software software = new LightSoftware(name, cap, mem);
            bool     pass     = CurrHardware.AddSoftwere(software);
        }
    }
Пример #7
0
    private static void RegisterLightSoftwareCommand(
        string[] inputArgs, List <Software> software, List <Hardware> hardware)
    {
        var hardwareComponentName = inputArgs[1];
        var lsName = inputArgs[2];
        var lsCapacityConsumption = int.Parse(inputArgs[3]);
        var lsMemoryConsumption   = int.Parse(inputArgs[4]);

        var lightSoftware  = new LightSoftware(lsName, lsCapacityConsumption, lsMemoryConsumption);
        var targetHardware = hardware.FirstOrDefault(h => h.Name == hardwareComponentName);

        if (targetHardware != null && targetHardware.CanRunSoftware(lightSoftware))
        {
            targetHardware.RegisterSoftwareComponent(lightSoftware);
            software.Add(lightSoftware);
        }
    }
Пример #8
0
        private static void CreateLightSoftware(Match match, List <Hardware> components)
        {
            string[] tokens =
                match.Groups[2].Value.Split(new[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
            string hardwareName = tokens[0];
            var    hardware     = components.FirstOrDefault(x => x.Name == hardwareName);

            if (hardware != null)
            {
                string name         = tokens[1];
                int    capacity     = int.Parse(tokens[2]);
                int    memory       = int.Parse(tokens[3]);
                var    newComponent = new LightSoftware(hardware, name, capacity, memory);

                if (hardware.IsCapacityCapable(newComponent) && hardware.IsMemoryCapable(newComponent))
                {
                    hardware.SoftwareComponents.Add(newComponent);
                }
            }
        }
Пример #9
0
        public IComponentSoftware CreateSoftware(string type,
                                                 string name, int capacity, int memory)
        {
            IComponentSoftware componentSoftware = null;

            switch (type)
            {
            case "LightSoftware":
                return(componentSoftware = new LightSoftware(name, capacity, memory));

                break;

            case "ExpressSoftware":
                return(componentSoftware = new ExpressSoftware(name, capacity, memory));

                break;
            }

            return(componentSoftware);
        }
Пример #10
0
        static void Main(string[] args)
        {
            string pattern   = @"(\w+)(\((.*?)\))?";
            string inputLine = Console.ReadLine();
            Regex  regex     = new Regex(pattern);

            while (inputLine != "System Split")
            {
                Match matcher = regex.Match(inputLine);

                if (matcher.Groups[1].Value == "RegisterPowerHardware")
                {
                    string hardwareType = "Power";

                    string[] hardwareData = matcher.Groups[3].Value.Split(',');

                    string hardwareName = hardwareData[0].Trim();

                    int hardwareCapacity = int.Parse(hardwareData[1].Trim());

                    int hardwareMemory = int.Parse(hardwareData[2].Trim());

                    Hardware hardware = new PowerHardware(hardwareName, hardwareType, hardwareCapacity, hardwareMemory);
                    MySystem.RegisterHardware(hardware);
                }

                else if (matcher.Groups[1].Value == "RegisterHeavyHardware")
                {
                    string hardwareType = "Heavy";

                    string[] hardwareData = matcher.Groups[3].Value.Split(',');

                    string hardwareName = hardwareData[0].Trim();

                    int hardwareCapacity = int.Parse(hardwareData[1].Trim());

                    int hardwareMemory = int.Parse(hardwareData[2].Trim());

                    Hardware hardware = new HeavyHardware(hardwareName, hardwareType, hardwareCapacity, hardwareMemory);
                    MySystem.RegisterHardware(hardware);
                }

                else if (matcher.Groups[1].Value == "RegisterExpressSoftware")
                {
                    string softwareType = "ExpressSoftware";

                    string[] softwareData = matcher.Groups[3].Value.Split(',');

                    string hardwareComponentName = softwareData[0].Trim();

                    string softwareName = softwareData[1].Trim();

                    int softwareCapacityConsumption = int.Parse(softwareData[2].Trim());

                    int softwareMemoryconsumption = int.Parse(softwareData[3].Trim());

                    Software software = new ExpressSoftware(softwareName, softwareType, softwareCapacityConsumption, softwareMemoryconsumption);
                    MySystem.RegisterSoftware(hardwareComponentName, software);
                }

                else if (matcher.Groups[1].Value == "RegisterLightSoftware")
                {
                    string softwareType = "LightSoftware";

                    string[] softwareData = matcher.Groups[3].Value.Split(',');

                    string hardwareComponentName = softwareData[0].Trim();

                    string softwareName = softwareData[1].Trim();

                    int softwareCapacityConsumption = int.Parse(softwareData[2].Trim());

                    int softwareMemoryconsumption = int.Parse(softwareData[3].Trim());

                    Software software = new LightSoftware(softwareName, softwareType, softwareCapacityConsumption, softwareMemoryconsumption);
                    MySystem.RegisterSoftware(hardwareComponentName, software);
                }

                else if (matcher.Groups[1].Value == "ReleaseSoftwareComponent")
                {
                    string[] dataForSoftwareRelease = matcher.Groups[3].Value.Split(',');

                    string hardwareComponentName = dataForSoftwareRelease[0].Trim();

                    string softwareComponentName = dataForSoftwareRelease[1].Trim();

                    MySystem.ReleaseSoftowareComponent(hardwareComponentName, softwareComponentName);
                }

                else if (matcher.Groups[1].Value == "Analyze")
                {
                    MySystem.Analyze();
                }

                inputLine = Console.ReadLine();
            }

            MySystem.SystemSplit();
        }
Пример #11
0
        protected SoftwareComponent CreateLightSoftware(string[] data)
        {
            SoftwareComponent lightSoftwareComponent = new LightSoftware(data[1], int.Parse(data[2]), int.Parse(data[3]), data[0]);

            return(lightSoftwareComponent);
        }