Example #1
0
        public override Task <AddZodiacResponse> AddZodiac(AddZodiacRequest request, ServerCallContext context)
        {
            var    zodiac    = request.Zodiac;
            string sign      = default;
            var    thisYear  = int.Parse(zodiac.Date.Substring(6, 4));
            var    thisMonth = int.Parse(zodiac.Date.Substring(0, 2));
            var    thisDay   = int.Parse(zodiac.Date.Substring(3, 2));

            var dateTime = new DateTime(thisYear, thisMonth, thisDay);


            sign = GetSign(zodiac);
            Console.WriteLine($"\nDate: {zodiac.Date}");
            Console.WriteLine($"Sign: {sign.ToString()}\n");
            return(Task.FromResult(new AddZodiacResponse()
            {
                Status = AddZodiacResponse.Types.Status.Success,
                Sign = sign
            }));
        }
        public override Task <AddZodiacResponse> AddZodiac(AddZodiacRequest request, ServerCallContext context)
        {
            if (request.Zodiac.Date.Equals("Invalid"))
            {
                Console.WriteLine("Data is blank");
                return(Task.FromResult(new AddZodiacResponse
                {
                    Status = AddZodiacResponse.Types.Status.Error,
                    Sign = "INVALID",
                }));
            }
            using var channel = GrpcChannel.ForAddress("https://localhost:5001");
            var date       = request.Zodiac;
            var stringDate = date.Date.Split("/");

            Console.Write("Sign: ");
            string sign = default;

            var year  = int.Parse(stringDate[2]);
            var month = int.Parse(stringDate[0]);
            var day   = int.Parse(stringDate[1]);

            var dateTime = new DateTime(year, month, day);


            switch (dateTime)
            {
            case { } when(dateTime >= new DateTime(year, 3, 21) && dateTime <= new DateTime(year, 6, 21)):
                //spring
                var clientSpring = new Spring.SpringClient(channel);
                var response     = clientSpring.AddSpring(new AddSpringRequest {
                    SpringDate = request.Zodiac.Date
                });                                                                                                  //await clientSpring.AddSpringAsync(new AddSpringRequest { SpringDate = request.Zodiac.Date });
                sign = response.Sign;
                break;

            case { } when(dateTime >= new DateTime(year, 6, 22) && dateTime <= new DateTime(year, 9, 22)):
                //summer
                var clientSummer = new Summer.SummerClient(channel);
                var response2    = clientSummer.AddSummer(new AddSummerRequest {
                    SummerDate = request.Zodiac.Date
                });
                sign = response2.Sign;
                break;

            case { } when(dateTime >= new DateTime(year, 9, 23) && dateTime <= new DateTime(year, 12, 21)):
                //autumn
                var clientAutumn = new Autumn.AutumnClient(channel);
                var response3    = clientAutumn.AddAutumn(new AddAutumnRequest {
                    AutumnDate = request.Zodiac.Date
                });
                sign = response3.Sign;
                break;

            default:
                //winter
                var clientWinter = new Winter.WinterClient(channel);
                var response4    = clientWinter.AddWinter(new AddWinterRequest {
                    WinterDate = request.Zodiac.Date
                });
                sign = response4.Sign;
                break;
            }
            Console.WriteLine(sign);
            return(Task.FromResult(new AddZodiacResponse
            {
                Status = AddZodiacResponse.Types.Status.Succes,
                Sign = sign,
            }));
        }
Example #3
0
        public override Task <AddZodiacResponse> AddZodiac(AddZodiacRequest request, ServerCallContext context)
        {
            var zodiac = request.Zodiac;

            if (zodiac.Date.Equals("Invalid Date"))
            {
                Console.WriteLine("\nDate Is Blank!");
                return(Task.FromResult(new AddZodiacResponse()
                {
                    Status = AddZodiacResponse.Types.Status.Error, Sign = "Invalid Sign"
                }));
            }

            using var channel = GrpcChannel.ForAddress("https://localhost:5001");

            var date      = zodiac.Date.Split("/");
            var thisYear  = int.Parse(date[2]);
            var thisMonth = int.Parse(date[0]);
            var thisDay   = int.Parse(date[1]);

            var    dateTime = new DateTime(thisYear, thisMonth, thisDay);
            string sign;

            switch (dateTime)
            {
            case { } when dateTime >= new DateTime(thisYear, 3, 1) && dateTime <= new DateTime(thisYear, 5, 31):
                var springClient = new SpringSeason.SpringSeasonClient(channel);
                var springResponse = springClient.AddSpring(new AddSpringRequest()
                {
                    SpringDate = zodiac.Date
                });
                sign = springResponse.Sign;
                break;

            case { } when dateTime >= new DateTime(thisYear, 6, 1) && dateTime <= new DateTime(thisYear, 8, 31):
                var summerClient = new SummerSeason.SummerSeasonClient(channel);
                var summerResponse = summerClient.AddSummer(new AddSummerRequest()
                {
                    SummerDate = zodiac.Date
                });
                sign = summerResponse.Sign;
                break;

            case { } when dateTime >= new DateTime(thisYear, 9, 1) && dateTime <= new DateTime(thisYear, 11, 30):
                var autumnClient = new AutumnSeason.AutumnSeasonClient(channel);
                var autumnResponse = autumnClient.AddAutumn(new AddAutumnRequest()
                {
                    AutumnDate = zodiac.Date
                });
                sign = autumnResponse.Sign;
                break;

            default:
                var winterClient   = new WinterSeason.WinterSeasonClient(channel);
                var winterResponse = winterClient.AddWinter(new AddWinterRequest()
                {
                    WinterDate = zodiac.Date
                });
                sign = winterResponse.Sign;
                break;
            }

            Console.WriteLine($"\nSign: {sign}\n");

            return(Task.FromResult(new AddZodiacResponse()
            {
                Status = AddZodiacResponse.Types.Status.Success, Sign = sign
            }));
        }