Esempio n. 1
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);

                // Address Enrollments Client Side Stream
                var userAddress = new AddAddressRequest
                {
                    StudentId   = Guid.NewGuid().ToString(), /* To Be replaced with Students's Id*/
                    Name        = NameGenerator.GenerateName(12),
                    FullAddress = AddressGenerator.GenerateAddress(),
                    Enrollment  = Konstants.AddressConstants.EnrollmentTypes[RandomNumberGenerator.GetRandomValue(1, 4)]
                };

                using (var stream = _addressClient.AddAddressEnrollments())
                {
                    foreach (string enrollmentType in Konstants.AddressConstants.EnrollmentTypes)
                    {
                        userAddress.Enrollment = enrollmentType;
                        await stream.RequestStream.WriteAsync(userAddress);
                    }

                    await stream.RequestStream.CompleteAsync();

                    await stream;
                    WriteLine($"Sent All");
                }

                // await Task.Delay(1000, stoppingToken);
                await Task.Delay(_config.GetValue <int>("RPCService:DelayInterval"), stoppingToken);
            }
        }
Esempio n. 2
0
        public override async Task <AddAddressResponse> AddAddress(AddAddressRequest request, ServerCallContext context)
        {
            _logger.Log(LogLevel.Debug, "Request Received for AddressBookService::AddAddress");

            var addAddressResponse = new AddAddressResponse
            {
                Message = "success"
            };

            var address = new Address
            {
                StudentId        = Guid.Parse(request.StudentId),
                Name             = request.Name,
                FullAddress      = request.FullAddress,
                Enrollment       = request.Enrollment,
                EnrollmentStatus = Constants.AddressConstants.EnrollmentStatus[RandomNumberGenerator.GetRandomValue(1, 4)]
            };

            var newAddress = await _addressBll.AddAddress(address);

            addAddressResponse.Id = newAddress.Id.ToString();

            _logger.Log(LogLevel.Debug, "Returning the results from AddressBookService::AddProfessor");

            return(addAddressResponse);
        }
        public async Task <CrabEditClientResult <CrabSubaddressId> > AddSubaddressToCrab(
            AddAddressRequest request,
            CancellationToken cancellationToken)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var addCrabSubaddressResponse = await _client.Add(
                new AddSubaddress
            {
                StreetNameId       = request.StreetNameId.AsIdentifier().Map(IdentifierMappings.StreetNameId),
                HouseNumber        = request.HouseNumber,
                BoxNumber          = request.BoxNumber,
                PostalCode         = request.PostalCode.AsIdentifier().Map(IdentifierMappings.PostalCode),
                Status             = request.Status.AsIdentifier().Map(IdentifierMappings.AddressStatus),
                OfficiallyAssigned = request.OfficiallyAssigned,
                Position           = MapPosition(request.Position)
            },
                cancellationToken);

            return(CrabEditClientResult <CrabSubaddressId>
                   .From(
                       addCrabSubaddressResponse,
                       identifier => new CrabSubaddressId(addCrabSubaddressResponse.AddressId)));
        }
Esempio n. 4
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);

                var userAddress = new AddAddressRequest
                {
                    StudentId   = Guid.NewGuid().ToString(), /* To Be replaced with Students's Id*/
                    Name        = NameGenerator.GenerateName(12),
                    FullAddress = AddressGenerator.GenerateAddress(),
                    Enrollment  = Constants.AddressConstants.EnrollmentTypes[RandomNumberGenerator.GetRandomValue(1, 4)]
                };

                try
                {
                    var newAddress = await _client.AddAddressAsync(userAddress);

                    Console.WriteLine($"Address Data with Id: {newAddress.Id}");
                }
                catch (RpcException rpcError)
                {
                    _logger.LogError($"Error received from Server. {rpcError.Message} {rpcError.Trailers}");
                }

                await Task.Delay(_config.GetValue <int>("RPCService:DelayInterval"), stoppingToken);
            }
        }
Esempio n. 5
0
        private async Task WhenIAddTheAddress()
        {
            _request = Fixture.Build <AddAddressRequest>()
                       .With(x => x.UserId, _userId)
                       .With(x => x.PostCode, Fixture.Create <string>().Substring(0, 10))
                       .With(x => x.Number, Math.Abs(Fixture.Create <int>()))
                       .Create();

            _replay = await Client.AddAddressAsync(_request);
        }
Esempio n. 6
0
 public static void CopyToEntity(ConsumerAddress address, AddAddressRequest request)
 {
     address.ConsID         = request.user_id;
     address.Address        = request.user_address;
     address.RegionName     = request.region_name;
     address.PostalCode     = request.postal_code;
     address.AdditionalInfo = request.more_info;
     address.IsDefault      = Convert.ToBoolean(request.is_default);
     address.Latitude       = request.user_latitude;
     address.Longitude      = request.user_longitude;
 }
Esempio n. 7
0
        private async Task WhenITryToAddAddress()
        {
            _request = Fixture.Build <AddAddressRequest>()
                       .With(x => x.UserId, _userId)
                       .With(x => x.Number, _number)
                       .With(x => x.Line, _line)
                       .With(x => x.PostCode, _postCode)
                       .Create();

            _replay = await Client.AddAddressAsync(_request);
        }
Esempio n. 8
0
 public async Task <HttpResponseMessage> Add(AddAddressRequest request)
 {
     try
     {
         var response = _serviceAddress.Add(request);
         return(await ResponseAsync(response, _serviceAddress));
     }
     catch (Exception ex)
     {
         return(await ResponseExceptionAsync(ex));
     }
 }
Esempio n. 9
0
        public async Task <bool> AddAddressAsync(AddAddressRequest request)
        {
            var tlProvider = await _tlProvider.GetFirstOrDefaultAsync(p => p.UkPrn == request.Ukprn && p.IsActive);

            if (tlProvider == null)
            {
                _logger.LogWarning(LogEvent.NoDataFound, $"Provider not found. ProviderUkprn = {request.Ukprn}. Method: AddAddressAsync({request})");
                return(false);
            }

            var providerAddress = _mapper.Map <TlProviderAddress>(request, opt => opt.Items["providerId"] = tlProvider.Id);

            return(await _tlProviderAddress.CreateAsync(providerAddress) > 0);
        }
        public ResponseDto AddAddress(AddAddressRequest request)
        {
            ResponseDto response = new ResponseDto();
            Consumer    consumer = null;

            response.has_resource = 0;
            try
            {
                using (UserDao dao = new UserDao())
                {
                    consumer = GetAuthUser(dao, request.user_id, request.auth_token, true);
                    if (consumer == null)
                    {
                        MakeNouserResponse(response);
                        return(response);
                    }
                    ConsumerAddress address = new ConsumerAddress();
                    address.ConsID = request.user_id;
                    UsersHelper.CopyToEntity(address, request);
                    address.CreatedDate = DateTime.Now;
                    address.UpdatedDate = address.CreatedDate;
                    address.StatusID    = 1;
                    if (consumer.ConsumerAddresses.Count == 0)
                    {
                        address.IsDefault = true;
                    }
                    else
                    {
                        address.IsDefault = Convert.ToBoolean(request.is_default);
                        if (Convert.ToBoolean(request.is_default))
                        {
                            foreach (var item in consumer.ConsumerAddresses)
                            {
                                item.IsDefault = false;
                            }
                            dao.Update(consumer);
                        }
                    }
                    dao.AddAddress(address);
                    response.code    = 0;
                    response.message = MessagesSource.GetMessage("addr.added");
                    return(response);
                }
            }
            catch (Exception ex)
            {
                response.MakeExceptionResponse(ex);
            }
            return(response);
        }
Esempio n. 11
0
        public async Task <IActionResult> AddAddress(
            [FromServices] ICommandHandlerResolver bus,
            [FromServices] AddressCrabEditClient editClient,
            [FromServices] Func <IAddresses> getAddresses,
            [FromBody] AddAddressRequest request,
            CancellationToken cancellationToken)
        {
            // TODO: Turn this into proper VBR API Validation
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var crabAddAddress = await AddToCrab(editClient, request, cancellationToken);

            var addressId = crabAddAddress.Result;

            // todo: add command implementation for BoxNumber
            var command = new RegisterAddress(
                addressId,
                StreetNameId.CreateForPersistentId(request.StreetNameId.AsIdentifier().Map(IdentifierMappings.StreetNameId)),
                PostalCode.CreateForPersistentId(request.PostalCode.AsIdentifier().Map(IdentifierMappings.PostalCode)),
                new HouseNumber(request.HouseNumber),
                new BoxNumber(request.BoxNumber));

            var position = await bus.Dispatch(
                Guid.NewGuid(),
                command,
                GetMetadata(),
                cancellationToken);

            // Because we don't use the addressId as an identifier, we are stuck with the mess of retrieving our aggregate
            // and getting the surrogate identifier from it.... PersistentLocalIdentifier
            var addresses = getAddresses();

            var address = await addresses.GetOptionalAsync(addressId, cancellationToken);

            if (!address.HasValue)
            {
                throw new ApiException("Er is een fout opgetreden.", StatusCodes.Status500InternalServerError);
            }

            return(CreatedWithPosition(
                       $"/v1/adressen/{address.Value.PersistentLocalId}",
                       position,
                       crabAddAddress.ExecutionTime));
        }
Esempio n. 12
0
        public async Task <IActionResult> AddAddresses([FromRoute] string id, [FromBody] AddAddressRequest address)
        {
            _logger.LogInformation("Getting user phone");

            try
            {
                var result = await _service.AddAddressAsync(id, address.Line, address.Number, address.PostCode)
                             .ConfigureAwait(false);

                return(StatusCode(result.StatusCode, result.Value));
            }
            catch (Exception e)
            {
                _logger.LogCritical(e, "Error to get user phone");
                return(StatusCode(HttpStatusCode.ServiceUnavailable, "UserService down"));
            }
        }
Esempio n. 13
0
        /// <summary>
        /// Adds a new member address.
        /// </summary>
        /// <param name="name">the name of the address</param>
        /// <param name="address">the address json</param>
        /// <returns>the created address record</returns>
        public Task <AddressRecord> AddAddress(string name, Address address)
        {
            var signer  = cryptoEngine.CreateSigner(Level.Low);
            var request = new AddAddressRequest
            {
                Name             = name,
                Address          = address,
                AddressSignature = new Signature
                {
                    MemberId   = MemberId,
                    KeyId      = signer.GetKeyId(),
                    Signature_ = signer.Sign(address)
                }
            };

            return(gateway(authenticationContext()).AddAddressAsync(request)
                   .ToTask(response => response.Address));
        }
        public async Task Then_Returns_Expected_Results(AddAddressRequest request, bool expectedResult)
        {
            await WhenAsync(request);

            var actualAddress = await DbContext.TlProviderAddress.Where(p => p.TlProvider.UkPrn == request.Ukprn && p.TlProvider.IsActive && p.IsActive).OrderByDescending(p => p.CreatedOn).FirstOrDefaultAsync();

            _actualResult.Should().Be(expectedResult);

            if (expectedResult)
            {
                actualAddress.DepartmentName.Should().Be(request.DepartmentName);
                actualAddress.OrganisationName.Should().Be(request.OrganisationName);
                actualAddress.AddressLine1.Should().Be(request.AddressLine1);
                actualAddress.AddressLine2.Should().Be(request.AddressLine2);
                actualAddress.Town.Should().Be(request.Town);
                actualAddress.Postcode.Should().Be(request.Postcode);
            }
        }
Esempio n. 15
0
        public override async Task <AddAddressResponse> AddAddress(AddAddressRequest request, ServerCallContext context)
        {
            _logger.Log(LogLevel.Debug, "Request Received for AddressBookService::AddAddress");

            var addAddressResponse = new AddAddressResponse
            {
                Message = "success"
            };

            var address = _mapper.Map <Address>(request);

            var newAddress = await _addressBll.AddAddress(address);

            addAddressResponse.Id = newAddress.Id.ToString();

            _logger.Log(LogLevel.Debug, "Returning the results from AddressBookService::AddProfessor");

            return(addAddressResponse);
        }
Esempio n. 16
0
        public async Task <IActionResult> Add([FromBody] AddAddressRequest addAddressRequest)
        {
            try
            {
                //request validation should be here
                // ...

                var command = new AddAddressCommand(addAddressRequest.Name, addAddressRequest.City, addAddressRequest.Street);
                var result  = await _mediator.Send(command);

                return(CreatedAtAction(nameof(this.GetById), new { id = result.Id }));
            }
            catch (Exception e)
            {
                return(BadRequest(new ErrorResponse()
                {
                    ShortInfo = e.Message, AdditionalInfo = e.StackTrace
                }));
            }
        }
Esempio n. 17
0
        public override async Task <AddAddressReplay> AddAddress(AddAddressRequest request, ServerCallContext context)
        {
            var operation = _provider.GetRequiredService <AddressAddOperation>();
            var mapper    = _provider.GetRequiredService <IMapper <Result, AddAddressReplay> >();

            if (Guid.TryParse(request.UserId, out var userId))
            {
                var result = await operation.ExecuteAsync(new AddressAdd
                {
                    UserId   = userId,
                    Number   = request.Number,
                    Line     = request.Line,
                    PostCode = request.PostCode
                });

                return(mapper.Map(result));
            }

            return(mapper.Map(DomainError.UserError.InvalidUserId));
        }
Esempio n. 18
0
        private static async Task <CrabEditClientResult <AddressId> > AddToCrab(
            AddressCrabEditClient editClient,
            AddAddressRequest request,
            CancellationToken cancellationToken)
        {
            if (request.BoxNumber.IsNullOrWhiteSpace())
            {
                var addHouseNumberResult = await editClient.AddHouseNumberToCrab(request, cancellationToken);

                return(new CrabEditClientResult <AddressId>(
                           AddressId.CreateFor(addHouseNumberResult.Result),
                           addHouseNumberResult.ExecutionTime));
            }

            var addSubaddressResult = await editClient.AddSubaddressToCrab(request, cancellationToken);

            return(new CrabEditClientResult <AddressId>(
                       AddressId.CreateFor(addSubaddressResult.Result),
                       addSubaddressResult.ExecutionTime));
        }
        public override async Task <AddAddressResponse> AddAddress(AddAddressRequest request, ServerCallContext context)
        {
            _logger.Log(LogLevel.Debug, "Request Received for AddressBookService::AddAddress");

            var addAddressResponse = new AddAddressResponse
            {
                Message = "success"
            };

            if (request.Enrollment == "Library Usage")
            {
                var trailers = new Metadata()
                {
                    { "Field", "Enrollment" },
                    { "Message", "Bank enrollment is stopped temporarily" }
                };

                throw new RpcException(new Status(StatusCode.PermissionDenied, "Library Usage enrollment is stopped temporarily"), trailers);
            }

            // TODO: Technical Debt
            var address = new Address
            {
                StudentId        = Guid.Parse(request.StudentId),
                Name             = request.Name,
                FullAddress      = request.FullAddress,
                Enrollment       = request.Enrollment,
                EnrollmentStatus = Constants.AddressConstants.EnrollmentStatus[RandomNumberGenerator.GetRandomValue(1, 4)]
            };

            var newAddress = await _addressBll.AddAddress(address);

            addAddressResponse.Id = newAddress.Id.ToString();

            _logger.Log(LogLevel.Debug, "Returning the results from AddressBookService::AddProfessor");

            return(addAddressResponse);
        }
        public AddAddressResponse Add(AddAddressRequest request)
        {
            if (request == null)
            {
                AddNotification("SearchAddressRequest", "request inválido");
                return(null);
            }

            var address = new Address(request.ZipCode, request.PublicPlace, request.Neighborhood,
                                      request.State,
                                      request.Locality,
                                      request.Gia,
                                      request.Ibge,
                                      request.Complement
                                      );

            if (this.IsValid())
            {
                return(null);
            }

            return((AddAddressResponse)_repositoryAddress.Adicionar(address));
        }
Esempio n. 21
0
        public override void Setup()
        {
            _tokenServiceClient = Substitute.For <ITokenServiceClient>();

            _configuration = new ResultsAndCertificationConfiguration
            {
                ResultsAndCertificationInternalApiSettings = new ResultsAndCertificationInternalApiSettings {
                    Uri = "http://tlevel.api.com"
                }
            };

            _mockHttpResult = true;

            _model = new AddAddressRequest
            {
                Ukprn          = 987456123,
                DepartmentName = "Test dept",
                AddressLine1   = "Line1",
                AddressLine2   = "Line2",
                Town           = "town",
                Postcode       = "xx1 1yy",
                PerformedBy    = "Test User"
            };
        }
 public async Task <bool> AddAddressAsync(AddAddressRequest request)
 {
     return(await _providerAddressService.AddAddressAsync(request));
 }
Esempio n. 23
0
        static async Task Main(string[] args)
        {
            string response = "Y";

            _config = new ConfigurationBuilder()
                      .SetBasePath(Directory.GetCurrentDirectory())
                      .AddJsonFile("appsettings.json").Build();

            // gRPC Clients
            CollegeServiceClient    CollegeClient = CollegeServiceClientHelper.GetCollegeServiceClient(_config["RPCService:ServiceUrl"]);
            AddressBookServerClient AddressClient = AddressServiceClientHelper.GetAddressBookServerClient(_config["RPCService:ServiceUrl"]);

            // Address Enrollments Client Side Stream
            var userAddress = new AddAddressRequest
            {
                StudentId   = Guid.NewGuid().ToString(), /* To Be replaced with Students's Id*/
                Name        = NameGenerator.GenerateName(12),
                FullAddress = AddressGenerator.GenerateAddress(),
                Enrollment  = Konstants.AddressConstants.EnrollmentTypes[RandomNumberGenerator.GetRandomValue(1, 4)]
            };

            using (var stream = AddressClient.AddAddressEnrollments())
            {
                foreach (string enrollmentType in Konstants.AddressConstants.EnrollmentTypes)
                {
                    userAddress.Enrollment = enrollmentType;
                    await stream.RequestStream.WriteAsync(userAddress);
                }

                await stream.RequestStream.CompleteAsync();

                await stream;
                WriteLine($"Sent All");
            }


            /*
             * WriteLine("\n\nCreating New Professor ...");
             * while (response == "Y")
             * {
             *  // Add New Professor
             *  AddProfessorRequest professorNew = GenerateNewProfessor();
             *
             *  var newlyAddedProfessor = await Client.AddProfessorAsync(professorNew);
             *  WriteLine($"\n\nNew Professor Added with Professor Id: {newlyAddedProfessor.ProfessorId}");
             *
             *  WriteLine("\n\nDo you want to create New Professor: {Y/N}");
             *  response = ReadKey().KeyChar.ToString().ToUpper();
             * }
             */


            response = "Y";
            while (response == "Y")
            {
                WriteLine("\n\nPlease enter a Professor Id: ");
                var professorId = ReadLine();

                // Retrieve Single Row
                var professorRequest = new GetProfessorRequest {
                    ProfessorId = professorId
                };

                var professor = await CollegeClient.GetProfessorByIdAsync(professorRequest);

                DisplayProfessorDetails(professor);

                WriteLine("\n\nDo you want to Lookup a Professor: {Y/N}");
                response = ReadKey().KeyChar.ToString().ToUpper();
            }

            // Address Service gRPC
            var userAddress1 = new AddAddressRequest
            {
                StudentId   = Guid.NewGuid().ToString(), /* To Be replaced with Students's Id*/
                Name        = NameGenerator.GenerateName(12),
                FullAddress = AddressGenerator.GenerateAddress(),
                Enrollment  = Konstants.AddressConstants.EnrollmentTypes[RandomNumberGenerator.GetRandomValue(1, 4)]
            };


            var newAddress = await AddressClient.AddAddressAsync(userAddress1);

            WriteLine($"Address Data with Id: {newAddress.Id}");

            /*
             * response = "Y";
             * while (response == "Y")
             * {
             *  // Retrieve Multiple Rows
             *  var professors = await Client.GetAllProfessorsAsync(new Empty());
             *
             *  foreach (var prof in professors.Professors)
             *  {
             *      DisplayProfessorDetails(prof);
             *  }
             *
             *  WriteLine("\n\nDo you want to retrieve all professors: {Y/N}");
             *  response = ReadKey().KeyChar.ToString().ToUpper();
             * }
             */

            WriteLine("\n\nThank You for using the application. \n\nPress any key ...");
            ReadKey();
        }
Esempio n. 24
0
        public NegotiatedContentResult <ResponseDto> PostAddAddress([FromBody] AddAddressRequest request)
        {
            ResponseDto resp = _userServices.AddAddress(request);

            return(Content(HttpStatusCode.OK, resp));
        }
Esempio n. 25
0
        static async Task Main(string[] args)
        {
            _config = new ConfigurationBuilder()
                      .SetBasePath(Directory.GetCurrentDirectory())
                      .AddJsonFile("appsettings.json").Build();

            var _collegeClient = CollegeServiceClientHelper.GetCollegeServiceClient(_config["RPCService:ServiceUrl"]);

            var _addressClient = AddressServiceClientHelper.GetAddressBookServerClient(_config["RPCService:ServiceUrl"]);

            //**************** ADDRESS BOOK ****************//
            var userAddress = new AddAddressRequest
            {
                StudentId   = Guid.NewGuid().ToString(), /* To Be replaced with Students's Id*/
                Name        = NameGenerator.GenerateName(12),
                FullAddress = AddressGenerator.GenerateAddress(),
                Enrollment  = AddressConstants.EnrollmentTypes[RandomNumberGenerator.GetRandomValue(1, 4)]
            };

            using (var stream = _addressClient.AddAddressEnrollments())
            {
                foreach (string enrollmentType in AddressConstants.EnrollmentTypes)
                {
                    userAddress.Enrollment = enrollmentType;
                    await stream.RequestStream.WriteAsync(userAddress).ConfigureAwait(false);
                }

                await stream.RequestStream.CompleteAsync().ConfigureAwait(false);

                await stream;
                WriteLine($"Sent All");
            }
            //**************** ADDRESS BOOK ****************//

            /*
             * DisplayHeader("Creating New Professor ...");
             * NewProfessorRequest professorNew = GenerateNewProfessor();
             * var newlyAddedProfessor = await _collegeClient.AddProfessorAsync(professorNew);
             * WriteLine($"\n\nNew Professor Added with Professor Id: {newlyAddedProfessor.ProfessorId}");
             * DisplayFooter();
             */

            //DisplayHeader("Retrieve Single Row ...");
            //WriteLine("\n\nPlease enter a Professor Id: ");
            //var professorId = ReadLine();

            //var professorRequest = new GetProfessorRequest { ProfessorId = professorId };
            //var professor = await _collegeClient.GetProfessorByIdAsync(professorRequest);

            //DisplayProfessorDetails(professor);
            //DisplayFooter();

            DisplayHeader("Retrieve All Rows ...");
            var professors = await _collegeClient.GetAllProfessorsAsync(new Empty());

            foreach (var prof in professors.Professors)
            {
                DisplayProfessorDetails(prof);
            }

            WriteLine("\n\nThank You for using the application. \n\nPress any key ...");
            ReadKey();
        }
Esempio n. 26
0
        static async Task Main(string[] args)
        {
            string response = "Y";

            _config = new ConfigurationBuilder()
                      .SetBasePath(Directory.GetCurrentDirectory())
                      .AddJsonFile("appsettings.json").Build();

            // gRPC Clients
            CollegeServiceClient    CollegeClient = CollegeServiceClientHelper.GetCollegeServiceClient(_config["RPCService:ServiceUrl"]);
            AddressBookServerClient AddressClient = AddressServiceClientHelper.GetAddressBookServerClient(_config["RPCService:ServiceUrl"]);

            /*
             * var cts = new CancellationTokenSource(TimeSpan.FromSeconds(50));
             *
             * using var replies = AddressClient.GetWeatherStream(new Empty(), cancellationToken: cts.Token);
             *
             * try
             * {
             *  await foreach (var weatherData in replies.ResponseStream.ReadAllAsync(cancellationToken: cts.Token))
             *  {
             *      Console.WriteLine($"{weatherData.DateTimeStamp.ToDateTime():s} | {weatherData.Summary} | {weatherData.TemperatureC} C");
             *  }
             * }
             * catch (RpcException ex) when (ex.StatusCode == StatusCode.Cancelled)
             * {
             *  Console.WriteLine("Stream cancelled.");
             * }
             */

            // Address Enrollments Client Request for Server Streaming.
            var studentEnrollmentsRequest = new AddressEnrollmentRequest {
                StudentId = "3698FAED-83A1-4700-89EE-CAFE7716833E"
            };

            using var studentEnrollments = AddressClient.RetrieveAddressEnrollments(studentEnrollmentsRequest);

            try
            {
                await foreach (var studentEnrollment in studentEnrollments.ResponseStream.ReadAllAsync())
                {
                    Console.WriteLine($"{studentEnrollment.StudentId} {studentEnrollment.Name} {studentEnrollment.Enrollment} {studentEnrollment.EnrollmentStatus}");
                }
            }
            catch (RpcException ex) when(ex.StatusCode == StatusCode.Cancelled)
            {
                Console.WriteLine("Stream cancelled.");
            }

            // Address Enrollments Client Side Stream
            var userAddress = new AddAddressRequest
            {
                StudentId   = Guid.NewGuid().ToString(), /* To Be replaced with Students's Id*/
                Name        = NameGenerator.GenerateName(12),
                FullAddress = AddressGenerator.GenerateAddress(),
                Enrollment  = Konstants.AddressConstants.EnrollmentTypes[RandomNumberGenerator.GetRandomValue(1, 4)]
            };

            using (var stream = AddressClient.AddAddressEnrollments())
            {
                foreach (string enrollmentType in Konstants.AddressConstants.EnrollmentTypes)
                {
                    userAddress.Enrollment = enrollmentType;
                    await stream.RequestStream.WriteAsync(userAddress);
                }

                await stream.RequestStream.CompleteAsync();

                await stream;
                WriteLine($"Sent All");
            }


            /*
             * WriteLine("\n\nCreating New Professor ...");
             * while (response == "Y")
             * {
             *  // Add New Professor
             *  AddProfessorRequest professorNew = GenerateNewProfessor();
             *
             *  var newlyAddedProfessor = await Client.AddProfessorAsync(professorNew);
             *  WriteLine($"\n\nNew Professor Added with Professor Id: {newlyAddedProfessor.ProfessorId}");
             *
             *  WriteLine("\n\nDo you want to create New Professor: {Y/N}");
             *  response = ReadKey().KeyChar.ToString().ToUpper();
             * }
             */


            response = "Y";
            while (response == "Y")
            {
                WriteLine("\n\nPlease enter a Professor Id: ");
                var professorId = ReadLine();

                // Retrieve Single Row
                var professorRequest = new GetProfessorRequest {
                    ProfessorId = professorId
                };

                var professor = await CollegeClient.GetProfessorByIdAsync(professorRequest);

                DisplayProfessorDetails(professor);

                WriteLine("\n\nDo you want to Lookup a Professor: {Y/N}");
                response = ReadKey().KeyChar.ToString().ToUpper();
            }

            // Address Service gRPC
            var userAddress1 = new AddAddressRequest
            {
                StudentId   = Guid.NewGuid().ToString(), /* To Be replaced with Students's Id*/
                Name        = NameGenerator.GenerateName(12),
                FullAddress = AddressGenerator.GenerateAddress(),
                Enrollment  = Konstants.AddressConstants.EnrollmentTypes[RandomNumberGenerator.GetRandomValue(1, 4)]
            };


            var newAddress = await AddressClient.AddAddressAsync(userAddress1);

            WriteLine($"Address Data with Id: {newAddress.Id}");

            /*
             * response = "Y";
             * while (response == "Y")
             * {
             *  // Retrieve Multiple Rows
             *  var professors = await Client.GetAllProfessorsAsync(new Empty());
             *
             *  foreach (var prof in professors.Professors)
             *  {
             *      DisplayProfessorDetails(prof);
             *  }
             *
             *  WriteLine("\n\nDo you want to retrieve all professors: {Y/N}");
             *  response = ReadKey().KeyChar.ToString().ToUpper();
             * }
             */

            WriteLine("\n\nThank You for using the application. \n\nPress any key ...");
            ReadKey();
        }
 public async Task WhenAsync(AddAddressRequest request)
 {
     _actualResult = await ProviderAddressService.AddAddressAsync(request);
 }
 // Provider Address endpoints
 public async Task <bool> AddAddressAsync(AddAddressRequest request)
 {
     return(await PostAsync <AddAddressRequest, bool>(ApiConstants.AddAddressUri, request));
 }
Esempio n. 29
0
        static async Task Main(string[] args)
        {
            _config = new ConfigurationBuilder()
                      .SetBasePath(Directory.GetCurrentDirectory())
                      .AddJsonFile("appsettings.json").Build();

            var _collegeClient = CollegeServiceClientHelper.GetCollegeServiceClient(_config["RPCService:ServiceUrl"]);

            var _addressClient = AddressServiceClientHelper.GetAddressBookServerClient(_config["RPCService:ServiceUrl"]);

            var jwtToken = new JwtAccessToken();

            if (jwtToken.Expiration < DateTime.Now)
            {
                jwtToken = GetTokenFromAuth0();
            }

            var headers = new Metadata
            {
                { "Authorization", $"Bearer {jwtToken.Access_Token}" }
            };

            DisplayHeader("Retrieve Single Row ...");
            WriteLine("\n\nPlease enter a Professor Id: ");
            var professorId = ReadLine();

            var professorRequest = new GetProfessorRequest {
                ProfessorId = professorId
            };
            var professor = await _collegeClient.GetProfessorByIdAsync(professorRequest, headers : headers);

            DisplayProfessorDetails(professor);
            DisplayFooter();

            //**************** ADDRESS BOOK CLIENT SIDE STREAMING ****************//
            var userAddress = new AddAddressRequest
            {
                StudentId   = Guid.NewGuid().ToString(), /* To Be replaced with Students's Id*/
                Name        = NameGenerator.GenerateName(12),
                FullAddress = AddressGenerator.GenerateAddress(),
                Enrollment  = AddressConstants.EnrollmentTypes[RandomNumberGenerator.GetRandomValue(1, 4)]
            };

            using (var stream = _addressClient.AddAddressEnrollments())
            {
                foreach (string enrollmentType in AddressConstants.EnrollmentTypes)
                {
                    userAddress.Enrollment = enrollmentType;
                    await stream.RequestStream.WriteAsync(userAddress).ConfigureAwait(false);
                }

                await stream.RequestStream.CompleteAsync().ConfigureAwait(false);

                await stream;
                WriteLine($"Sent All");
            }
            //**************** ADDRESS BOOK CLIENT SIDE STREAMING ****************//

            //**************** ADDRESS BOOK SERVER SIDE STREAMING ****************//
            var studentEnrollmentsRequest = new AddressEnrollmentRequest
            {
                StudentId = "62b76fc7-46d9-4d1c-a246-7f4083a87634"
            };

            using var studentEnrollments = _addressClient
                                           .RetrieveAddressEnrollments(studentEnrollmentsRequest);
            try
            {
                await foreach (var studentEnrollment in studentEnrollments.ResponseStream.ReadAllAsync())
                {
                    WriteLine($"{studentEnrollment.StudentId} | {studentEnrollment.Name} | {studentEnrollment.Enrollment} | {studentEnrollment.EnrollmentStatus}");
                }
            }
            catch (RpcException ex) when(ex.StatusCode == StatusCode.Cancelled)
            {
                Console.WriteLine("Stream cancelled.");
            }
            //**************** ADDRESS BOOK SERVER SIDE STREAMING ****************//

            /*
             * DisplayHeader("Creating New Professor ...");
             * NewProfessorRequest professorNew = GenerateNewProfessor();
             * var newlyAddedProfessor = await _collegeClient.AddProfessorAsync(professorNew);
             * WriteLine($"\n\nNew Professor Added with Professor Id: {newlyAddedProfessor.ProfessorId}");
             * DisplayFooter();
             */

            //DisplayHeader("Retrieve Single Row ...");
            //WriteLine("\n\nPlease enter a Professor Id: ");
            //var professorId = ReadLine();

            //var professorRequest = new GetProfessorRequest { ProfessorId = professorId };
            //var professor = await _collegeClient.GetProfessorByIdAsync(professorRequest);

            //DisplayProfessorDetails(professor);
            //DisplayFooter();

            DisplayHeader("Retrieve All Rows ...");
            var professors = await _collegeClient.GetAllProfessorsAsync(new Empty());

            foreach (var prof in professors.Professors)
            {
                DisplayProfessorDetails(prof);
            }

            WriteLine("\n\nThank You for using the application. \n\nPress any key ...");
            ReadKey();
        }