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