Ejemplo n.º 1
0
    public static void Main()
    {
        ClientBusiness rpcBus = new ClientBusiness();
        int            Indexfromserver, Index = 0;;
        char           xmloption, option;
        string         response = rpcBus.Call(Convert.ToString("SendCurveNames"));

        Console.WriteLine("Response is {0}", response);
        string curvenames, ReceivedCurveName;

        string[] values        = new string[] { };
        string[] CurvesValues  = new string[] { };
        string[] splitresponse = response.Split(',');
        string[] requestedcurvenames;
        do
        {
            Console.Clear();
            int diff = 0;
            Console.WriteLine("\n\t\t\t********************\n");
            Console.WriteLine("\t\t\t   WELCOME CLIENT\n");
            Console.WriteLine("\t\t\t********************\n");
            Console.WriteLine("\t\t\tSl#\tCurve Names\n");
            for (int i = 0; i < splitresponse.Length; i++)
            {
                if (splitresponse[i] == "index")
                {
                    continue;
                }
                else
                {
                    Console.WriteLine("\t\t\t{0}\t\t{1}", i, splitresponse[i].Trim());
                }
            }

            Console.WriteLine("\nEnter the name(s) of the required curve in comma separated format from the above available curves!\n");
            curvenames = Console.ReadLine();

            requestedcurvenames = curvenames.Split(',');
            Console.WriteLine("\n");
            string curveresponse = rpcBus.Call(Convert.ToString(curvenames));
            //string curveresponse = "100*10@A:150.0,750.0,750.0,150.0,null,222.0;";
            if (curveresponse == "NOTFOUND")
            {
                Console.WriteLine("Sorry, you have entered the wrong entry.\n");
            }
            else
            {
                Indexfromserver = Convert.ToInt32(curveresponse.Split('*')[0]);
                curveresponse   = curveresponse.Substring(curveresponse.IndexOf('*') + 1);
                diff            = Convert.ToInt32(curveresponse.Split('@')[0]);
                curveresponse   = curveresponse.Substring(curveresponse.IndexOf('@') + 1);
                CurvesValues    = curveresponse.Split(';');
                for (int i = 0; i < CurvesValues.Length; i++)
                {
                    CurvesValues[i] = CurvesValues[i].Trim();
                }

                Console.WriteLine("\t\tThe Received Curves in Tabular Format:-\n");
                for (int j = 0; j < CurvesValues.Length; j++)
                {
                    if (j != 0)
                    {
                        CurvesValues[j] = CurvesValues[j].Substring(CurvesValues[j].IndexOf('*') + 1);
                        CurvesValues[j] = CurvesValues[j].Substring(CurvesValues[j].IndexOf('@') + 1);
                    }
                    Index             = Indexfromserver;
                    values            = CurvesValues[j].Split(',');
                    values[0]         = values[0].Trim();
                    ReceivedCurveName = (values[0].Split(':'))[0];

                    if (ReceivedCurveName == "" || ReceivedCurveName == null)
                    {
                        Console.WriteLine("\n\t\t       Curve {0} not found in Server. \n", requestedcurvenames[j]);
                        continue;
                    }
                    Console.WriteLine("\t\t\t\tCurve {0}\n", ReceivedCurveName.ToUpper());
                    Console.WriteLine("\t\t\tIndex\t\tCurveValues");

                    for (int i = 0; i < values.Length; i++)
                    {
                        if (i == 0)
                        {
                            values[i] = values[i].Trim();
                            if (values[i] == "null")
                            {
                                values[i] = "";
                                Console.WriteLine("\t\t\t{0}\t\t{1}", Index, (values[0].Split(':'))[1]);
                                Index = Index + diff;
                            }
                            else
                            {
                                Console.WriteLine("\t\t\t{0}\t\t{1}", Index, (values[0].Split(':'))[1]);
                                Index = Index + diff;
                            }
                        }
                        else
                        {
                            values[i] = values[i].Trim();
                            if (values[i] == "null")
                            {
                                values[i] = "";
                                Console.WriteLine("\t\t\t{0}\t\t{1}", Index, values[i].TrimStart());
                                Index = Index + diff;
                            }
                            else
                            {
                                Console.WriteLine("\t\t\t{0}\t\t{1}", Index, values[i].TrimStart());
                                Index = Index + diff;
                            }
                        }
                    }
                    Console.WriteLine("\n\n");
                }


                Console.WriteLine("Export Datatable to XML File (Y/N)??");
                xmloption = Convert.ToChar(Console.ReadLine());
                if (xmloption == 'y' || xmloption == 'Y')
                {
                    CurvesValues = CurvesValues.Where(x => !string.IsNullOrEmpty(x)).ToArray();
                    string exportxml = rpcBus.csvtoxml(CurvesValues, diff, Indexfromserver);
                    Console.WriteLine("XML File successfully saved in CurveData.XML");
                }
            }
            Console.WriteLine("Display another curve? (Y/N)");
            option = Convert.ToChar(Console.ReadLine());
        }while (option == 'Y' || option == 'y');

        if (option != 'y' || option != 'Y')
        {
            Environment.Exit(0);
        }
        rpcBus.Close();
    }