public static void InitProcessors(int[] array, ProcessorsList processorsList)
 {
     for (int i = 0; i < array.Length; i++)
     {
         processorsList.AddProcessor(new Processor(array[i]));
     }
 }
Exemple #2
0
        static void Main(string[] args)
        {
            char           id      = Console.ReadKey().KeyChar;
            HttpWebRequest request =
                (HttpWebRequest)WebRequest.Create(string.Format("http://kodaday.intita.com/api/task/{0}", id));

            request.Headers.Add("X-API-KEY: S95Xczjx");

            WebResponse response = request.GetResponse();

            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            Stream       dataStream         = response.GetResponseStream();
            StreamReader reader             = new StreamReader(dataStream);
            string       responseFromServer = reader.ReadToEnd();

            reader.Close();
            response.Close();

            Data data = new Data();

            data = JsonConvert.DeserializeObject <Data>(responseFromServer);

            ProcessorsList processorsList = new ProcessorsList();

            ProcessorsHelper.InitProcessors(data.processors, processorsList);

            int[] outArray = new int[data.tasks.Length];
            ProcessorsHelper.AddTasks(data.tasks, processorsList, ref outArray);



            HttpWebRequest request2 =
                (HttpWebRequest)WebRequest.Create(string.Format("http://kodaday.intita.com/api/task/{0}", id));

            request2.Headers.Add("X-API-KEY: S95Xczjx");
            request2.Method = "POST";
            var stream = request2.GetRequestStream();
            var writer = new StreamWriter(stream);

            writer.Write(JsonConvert.SerializeObject(outArray));
            writer.Flush();
            writer.Close();
            stream.Close();
            WebResponse response2 = request2.GetResponse();


            Console.WriteLine(response2);
        }
        public static int AddTasks(int[] inputArray, ProcessorsList processorsList, ref int[] outputArray)
        {
            int count1 = 0;
            int count2 = 0;

            foreach (var cur in processorsList.GetProcessors())
            {
                if (cur.Type == 1)
                {
                    count1++;
                }
                if (cur.Type == 2)
                {
                    count2++;
                }
            }


            int minCount = 0;

            for (int i = 0; i < inputArray.Length; i++)
            {
                int[] countArray = new int[processorsList.GetProcessors().Count];
                int   proc       = 0;
                foreach (var currentProcessor in processorsList.GetProcessors())
                {
                    countArray[proc] = currentProcessor.GetCountTaktForTask(inputArray[i]);
                    proc++;
                }
                int min        = 999999999;
                int neededProc = 0;

                for (int k = 0; k < countArray.Length; k++)
                {
                    if (countArray[k] < min)
                    {
                        min        = countArray[k];
                        neededProc = k;
                    }
                }
                minCount += countArray[neededProc];
                processorsList.GetProcessors()[neededProc].Tacts = processorsList.GetProcessors()[neededProc].GetCountTaktForTask(inputArray[i]);;
                outputArray[i] = neededProc;
            }
            return(minCount);
        }