Exemplo n.º 1
0
        public override Task <WinterReply> WinterSign(WinterRequest request, ServerCallContext context)
        {
            string signResult = "No sign";

            if (request.Date != null)
            {
                this.ReadFromFile();
                Console.WriteLine("Client connected on Winter!");
                Console.WriteLine(request.Date);
                for (int i = 0; i < winterSigns.Count; i++)
                {
                    if (CheckSign(winterSigns[i].StartDay, winterSigns[i].EndDay, winterSigns[i].StartMonth,
                                  winterSigns[i].EndMonth, request.Date))
                    {
                        signResult = winterSigns[i].SignName;
                    }
                }
            }
            else
            {
                Console.WriteLine(request.Date + " wrong input!");
            }

            return(Task.FromResult(new WinterReply
            {
                ZodiacSign = signResult
            }));
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            var channel = GrpcChannel.ForAddress("https://localhost:5001");
            var input   = ValidateInput();

            var season = GetSeason(input);

            switch (season)
            {
            case "Winter":
            {
                var client  = new Winter.WinterClient(channel);
                var request = new WinterRequest();
                request.Date = input;
                var response = client.GetWinterSign(request);
                Console.WriteLine("You are born in Winter.");
                Console.WriteLine($"Your sign is {response.Sign}");
                break;
            }

            case "Spring":
            {
                var client  = new Spring.SpringClient(channel);
                var request = new SpringRequest();
                request.Date = input;
                var response = client.GetSpringSign(request);
                Console.WriteLine("You are born in Spring.");
                Console.WriteLine($"Your sign is {response.Sign}");
                break;
            }

            case "Summer":
            {
                var client  = new Summer.SummerClient(channel);
                var request = new SummerRequest();
                request.Date = input;
                var response = client.GetSummerSign(request);
                Console.WriteLine("You are born in Summer.");
                Console.WriteLine($"Your sign is {response.Sign}");
                break;
            }

            case "Autumn":
            {
                var client  = new Autumn.AutumnClient(channel);
                var request = new AutumnRequest();
                request.Date = input;
                var response = client.GetAutumnSign(request);
                Console.WriteLine("You are born in Autumn");
                Console.WriteLine($"Your sign is {response.Sign}");
                break;
            }
            }

            channel.ShutdownAsync().Wait();
            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
Exemplo n.º 3
0
        public override Task <WinterResponse> GetWinterSign(WinterRequest request, ServerCallContext context)
        {
            var birthday = request.Date;
            var year     = GetYears(birthday);
            var dateTime = DateTime.Parse(birthday);
            var path     = "Winter.txt";
            var file     = File.ReadAllLines(path);

            string sign = GetSign(file, year, dateTime);

            Console.WriteLine("Your sign is : " + sign);
            return(Task.FromResult(new WinterResponse()
            {
                Sign = sign
            }));
        }
        public override Task <HoroscopResponse> getZodiacSign(WinterRequest request, ServerCallContext context)
        {
            var Birthday = DateTime.Parse(request.Date);

            string sign = "";

            string[] dates = File.ReadAllLines(@"../../WinterSigns.txt");

            for (int index = 0; index < dates.Length; index = index + 3)
            {
                sign = dates[index];
                var StartPeriod  = DateTime.Parse(dates[index + 1]);
                var FinishPeriod = DateTime.Parse(dates[index + 2]);

                if (Birthday.Month == StartPeriod.Month && Birthday.Month == FinishPeriod.Month)
                {
                    if (Birthday.Day >= StartPeriod.Day && Birthday.Day <= FinishPeriod.Day)
                    {
                        break;
                    }
                }

                if (StartPeriod.Month != FinishPeriod.Month)
                {
                    if (Birthday.Month >= StartPeriod.Month && Birthday.Month <= FinishPeriod.Month)
                    {
                        if ((Birthday.Month == StartPeriod.Month && Birthday.Day >= StartPeriod.Day) || (Birthday.Month == FinishPeriod.Month && FinishPeriod.Day <= FinishPeriod.Day))
                        {
                            break;
                        }
                    }
                }
            }

            return(Task.FromResult(new HoroscopResponse()
            {
                Sign = sign
            }));
        }
Exemplo n.º 5
0
        public override Task <WinterResponse> WinterSignSelection(WinterRequest request, ServerCallContext context)
        {
            string startDate;
            string endDate;
            string sign;
            string pattern = "MM/dd/yyyy";
            var    file    = File.ReadAllLines("Winter.txt");

            DateTime requestParsed;
            DateTime startParsed;
            DateTime endParsed;

            for (var i = 0; i < file.Length; i += 3)
            {
                startDate = file.ElementAt(i).ToString();
                endDate   = file.ElementAt(i + 1).ToString();
                sign      = file.ElementAt(i + 2).ToString();

                if (DateTime.TryParseExact(startDate, pattern, null, DateTimeStyles.None, out startParsed) &&
                    DateTime.TryParseExact(endDate, pattern, null, DateTimeStyles.None, out endParsed) &&
                    DateTime.TryParseExact(request.Date, pattern, null, DateTimeStyles.None, out requestParsed))
                {
                    if (((startParsed.Month < requestParsed.Month) ||
                         (startParsed.Month == requestParsed.Month && startParsed.Day <= requestParsed.Day)) &&
                        ((endParsed.Month > requestParsed.Month) ||
                         (endParsed.Month == requestParsed.Month) && endParsed.Day >= requestParsed.Day))
                    {
                        return(Task.FromResult(new WinterResponse {
                            Sign = sign
                        }));
                    }
                }
            }
            return(Task.FromResult(new WinterResponse {
                Sign = "Could not find a sign for this date!"
            }));
        }
        static void Main(string[] args)
        {
            const string Host = "localhost";
            const int    Port = 16842;

            var channel = new Channel($"{Host}:{Port}", ChannelCredentials.Insecure);
            var request = new HoroscopRequest();

            do
            {
                Console.WriteLine("Enter your Birthday: ");
                request.Date = Console.ReadLine();
            } while (isValid(request.Date) == false);

            //var client = new HoroscopService.HoroscopServiceClient(channel);
            //var respone = client.ShowSign(request);
            //Console.WriteLine("Your Zodiac Sign is {0} ", respone.Sign);

            //----------------------Bonus

            var Birthday = DateTime.Parse(request.Date);

            switch (wichSeasone(Birthday))
            {
            case 1:
                var SpringRequest = new SpringRequest();
                var Springclient  = new SpringService.SpringServiceClient(channel);

                SpringRequest.Date = request.Date;
                var respone1 = Springclient.getZodiacSign(SpringRequest);
                Console.WriteLine("Your Zodiac Sign is {0} ", respone1.Sign);
                break;

            case 2:
                var SummerRequest = new SummerRequest();
                var Summerclient  = new SummerService.SummerServiceClient(channel);

                SummerRequest.Date = request.Date;
                var respone3 = Summerclient.getZodiacSign(SummerRequest);
                Console.WriteLine("Your Zodiac Sign is {0} ", respone3.Sign);
                break;

            case 3:
                var AutumnRequest = new AutumnRequest();
                var Autumnclient  = new AutumnService.AutumnServiceClient(channel);

                AutumnRequest.Date = request.Date;
                var respone2 = Autumnclient.getZodiacSign(AutumnRequest);
                Console.WriteLine("Your Zodiac Sign is {0} ", respone2.Sign);
                break;

            case 4:
                var WinterRequest = new WinterRequest();
                var Winterclient  = new WinterService.WinterServiceClient(channel);

                WinterRequest.Date = request.Date;
                var respone4 = Winterclient.getZodiacSign(WinterRequest);
                Console.WriteLine("Your Zodiac Sign is {0} ", respone4.Sign);
                break;
            }

            // Shutdown
            channel.ShutdownAsync().Wait();
            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }