private ZodiacReply FindSignForDate(BirthDateRequest birthDate) { var day = birthDate.Day; var month = birthDate.Mo; var year = birthDate.Year; var season = Seasons.Spring; var sign = ZodiacSign.Aquarius; var signRanges = ReadSignFile(); int signIndex = -1; foreach (var signRange in signRanges) { if ((month == signRange.StartMonth && day >= signRange.StartDay) || (month == signRange.EndMonth && day <= signRange.EndDay)) { signIndex = signRange.SignIndex; break; } } if (signIndex > -1) { if (month == 1 || month == 2 || month == 12) { season = Seasons.Winter; } else if (month == 3 || month == 4 || month == 5) { season = Seasons.Spring; } else if (month == 6 || month == 7 || month == 8) { season = Seasons.Summer; } else if (month == 9 || month == 10 || month == 11) { season = Seasons.Fall; } return(new ZodiacReply() { Season = season, Sign = (ZodiacSign)signIndex }); } else { Console.WriteLine("Could not find sign"); return(null); } }
public override Task <ZodiacReply> findZodie(BirthDateRequest request, ServerCallContext context) { Console.WriteLine("Request: " + request.Day + "/" + request.Mo + "/" + request.Year); Task <ZodiacReply> reply = null; try { reply = Task.FromResult(FindSignForDate(request)); } catch (Exception e) { Console.WriteLine(e.ToString()); } return(reply); }
private static BirthDateRequest PromptBirthday() { Console.Write("Date of birth: "); var dateOfBirthStr = Console.ReadLine(); if (dateOfBirthStr == null || !IsDateValid(dateOfBirthStr)) { Console.WriteLine("Invalid date!"); System.Environment.Exit(1); } var fields = dateOfBirthStr.Split('/'); var bdr = new BirthDateRequest(); bdr.Day = Int32.Parse(fields[0]); bdr.Mo = Int32.Parse(fields[1]); bdr.Year = Int32.Parse(fields[2]); return(bdr); }