public override Task <ResponseZodiac> GetZodiac(RequestZodiac request, ServerCallContext context)
        {
            DateTime       birthday = DateTime.Parse(request.UserData.Birthday);
            ResponseZodiac responseZodiac;

            foreach (ZodiacData zodiac in ZodiacList)
            {
                DateTime zodiacStartDate = new DateTime(birthday.Year, zodiac.StartMonth, zodiac.StartDay);;
                DateTime zodiacEndDate   = new DateTime(birthday.Year, zodiac.EndMonth, zodiac.EndDay);
                if (zodiac.StartMonth == 12 && zodiac.EndMonth == 1)
                {
                    if (birthday < zodiacStartDate)
                    {
                        zodiacStartDate = new DateTime(birthday.Year - 1, zodiac.StartMonth, zodiac.StartDay);
                    }
                    else
                    {
                        zodiacEndDate = new DateTime(birthday.Year + 1, zodiac.EndMonth, zodiac.EndDay);
                    }
                }
                if (birthday >= zodiacStartDate && birthday <= zodiacEndDate)
                {
                    responseZodiac = new ResponseZodiac()
                    {
                        Zodiac = new Zodiac()
                        {
                            ZodiacName = zodiac.Name
                        }
                    };
                    return(Task.FromResult <ResponseZodiac>(responseZodiac));
                }
            }
            responseZodiac = new ResponseZodiac()
            {
                Zodiac = new Zodiac()
                {
                    ZodiacName = "Could not find zodiac"
                }
            };
            return(Task.FromResult <ResponseZodiac>(responseZodiac));
        }
        public override Task <ResponseZodiac> GetZodiac(RequestZodiac request, ServerCallContext context)
        {
            ResponseZodiac responseZodiac;
            DateTime       birthday = DateTime.Parse(request.UserData.Birthday);

            if (birthday.Month >= 12 || birthday.Month <= 2)
            {
                WinterService winterService = new WinterService();
                Tema2.Protos.Winter.RequestZodiac winterRequest = new Tema2.Protos.Winter.RequestZodiac()
                {
                    UserData = new Tema2.Protos.Winter.UserData()
                    {
                        Birthday = request.UserData.Birthday
                    }
                };
                responseZodiac = new ResponseZodiac()
                {
                    Zodiac = new Zodiac()
                    {
                        ZodiacName = winterService.GetZodiac(winterRequest, context).Result.Zodiac.ZodiacName
                    }
                };
            }
            else if (birthday.Month >= 3 && birthday.Month <= 5)
            {
                SpringService springService = new SpringService();
                Tema2.Protos.Spring.RequestZodiac springRequest = new Tema2.Protos.Spring.RequestZodiac()
                {
                    UserData = new Tema2.Protos.Spring.UserData()
                    {
                        Birthday = request.UserData.Birthday
                    }
                };
                responseZodiac = new ResponseZodiac()
                {
                    Zodiac = new Zodiac()
                    {
                        ZodiacName = springService.GetZodiac(springRequest, context).Result.Zodiac.ZodiacName
                    }
                };
            }
            else if (birthday.Month >= 6 && birthday.Month <= 8)
            {
                SummerService summerService = new SummerService();
                Tema2.Protos.Summer.RequestZodiac summerRequest = new Tema2.Protos.Summer.RequestZodiac()
                {
                    UserData = new Tema2.Protos.Summer.UserData()
                    {
                        Birthday = request.UserData.Birthday
                    }
                };
                responseZodiac = new ResponseZodiac()
                {
                    Zodiac = new Zodiac()
                    {
                        ZodiacName = summerService.GetZodiac(summerRequest, context).Result.Zodiac.ZodiacName
                    }
                };
            }
            else
            {
                AutumnService autumnService = new AutumnService();
                Tema2.Protos.Autumn.RequestZodiac autumnRequest = new Tema2.Protos.Autumn.RequestZodiac()
                {
                    UserData = new Tema2.Protos.Autumn.UserData()
                    {
                        Birthday = request.UserData.Birthday
                    }
                };
                responseZodiac = new ResponseZodiac()
                {
                    Zodiac = new Zodiac()
                    {
                        ZodiacName = autumnService.GetZodiac(autumnRequest, context).Result.Zodiac.ZodiacName
                    }
                };
            }

            return(Task.FromResult <ResponseZodiac>(responseZodiac));
        }