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)); }