Ejemplo n.º 1
0
        public async Task <IActionResult> Register([FromForm] CustomerInfoRequest customerRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var result = await _accountService.RegisterAsync(customerRequest);

            if (result == null)
            {
                ViewData["RegisterNotification"] = "User Register failed!!!";
                return(View());
            }
            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.Name, result.Customer.FirstName),
                new Claim(ClaimTypes.Email, result.Customer.Email),
                new Claim("UserId", result.Customer.Id.ToString()),
                new Claim("FirstName", result.Customer.FirstName),
                new Claim("LastName", result.Customer.LastName),
                new Claim("AccessToken", result.AccessToken),
                new Claim("RefreshToken", result.RefreshToken),
            };
            var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
            await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity));

            return(RedirectToAction(nameof(HomeController.Index), "Home"));
        }
Ejemplo n.º 2
0
        public void WhenGetCustomerInfoRequestFromInvalidXMLString_ThenReturnNullObject()
        {
            string xmlString        = "<test></test>";
            CustomerInfoRequest obj = Serializer.GetCustomerInfoRequest(xmlString);

            Assert.IsNull(obj);
        }
        public static async Task RunOrchestrator(
            [OrchestrationTrigger] DurableOrchestrationContext ctx)
        {
            var data = ctx.GetInput <EnrollmentHttpRequest>();
            var notificationRequest = new RequestNotification(ctx.InstanceId, data.MobileNumber, data.Email, data.FirstName, data.LastName);
            var customerInfoRequest = new CustomerInfoRequest(data.MobileNumber, ctx.InstanceId, data.Id);

            await ctx.CallActivityAsync(Activities.StoreCustomerInformation, customerInfoRequest);

            if (data.Channel == ChannelType.Email)
            {
                await ctx.CallActivityAsync(Activities.Email.EnrollmentRequestNotification, notificationRequest);
            }
            else
            {
                await ctx.CallActivityAsync(Activities.Sms.EnrollmentRequestNotification, notificationRequest);
            }

            using (var timeoutCts = new CancellationTokenSource())
            {
                Task <EnrollmentStatusEnum> approvalEvent = ctx.WaitForExternalEvent <EnrollmentStatusEnum>(Events.ApprovalEvent);

                DateTime reminderDueTime = ctx.CurrentUtcDateTime.AddMinutes(3);
                Task     reminderTimeout = ctx.CreateTimer(reminderDueTime, timeoutCts.Token);

                if (approvalEvent == await Task.WhenAny(approvalEvent, reminderTimeout))
                {
                    var dataStatus = new UpdateStatus(data.Id, data.MobileNumber, approvalEvent.Result, data.Email);

                    await ctx.CallActivityAsync(Activities.UpdateEnrollmentStatus, dataStatus);

                    if (data.Channel == ChannelType.Email)
                    {
                        await ctx.CallActivityAsync(Activities.Email.SendEnrollmentFinishedNotification, dataStatus);
                    }
                    else
                    {
                        await ctx.CallActivityAsync(Activities.Sms.SendEnrollmentFinishedNotification, dataStatus);
                    }

                    timeoutCts.Cancel();
                }
                else
                {
                    if (data.Channel == ChannelType.Email)
                    {
                        await ctx.CallActivityAsync(Activities.Email.SendReminderEnrollmentNotification, data.Email);
                    }
                    else
                    {
                        await ctx.CallActivityAsync(Activities.Sms.SendReminderEnrollmentNotification, data.MobileNumber);
                    }
                }

                await ctx.CallActivityAsync(Activities.CleanCustomerInfoTable, data.MobileNumber);
            }
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> UpdateCustomer(int id, [FromBody] CustomerInfoRequest customerRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            Customer updatedCustomer = _mapper.Map <Customer>(customerRequest);
            var      result          = await _customer.UpdateCustomerAsync(id, updatedCustomer);

            return(Ok(result));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> AddCustomer([FromBody] CustomerInfoRequest customerRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            Customer newCustomer = _mapper.Map <Customer>(customerRequest);
            var      result      = await _customer.AddCustomerAsync(newCustomer);

            return(CreatedAtAction(nameof(GetCustomer), new { id = result.Id }, result));
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> Update(int id, [FromBody] CustomerInfoRequest customerInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var(statusCode, result) = await _accountService.UpdateAsync(id, customerInfo);

            if (result == null)
            {
                ViewData["UpdateNotification"] = "Update Error!!!";
            }
            return(StatusCode((int)statusCode, result));
        }
Ejemplo n.º 7
0
        public async Task <CustomerLoginResponse> RegisterAsync(CustomerInfoRequest customerRequest)
        {
            var uri      = API.Authenticate.Register();
            var content  = new StringContent(JsonSerializer.Serialize(customerRequest), Encoding.UTF8, "application/json");
            var response = await _httpClient.PostAsync(uri, content);

            if (!response.IsSuccessStatusCode)
            {
                return(null);
            }
            using var responseStream = await response.Content.ReadAsStreamAsync();

            var customerAuthResult = await JsonSerializer.DeserializeAsync <CustomerLoginResponse>(responseStream);

            return(customerAuthResult);
        }
        public static CustomerInfo RunStoreCustomerInformation(
            [ActivityTrigger] CustomerInfoRequest customerInfoRequest,
            ILogger log
            )
        {
            log.LogInformation($"Storing customer information for user with Phone Number: {customerInfoRequest.Phonenumber}.");

            var result = new CustomerInfo()
            {
                InstanceId   = customerInfoRequest.InstanceId,
                Phonenumber  = customerInfoRequest.Phonenumber,
                RowKey       = customerInfoRequest.Phonenumber,
                PartitionKey = TableStorage.CustomerPK
            };

            return(result);
        }
Ejemplo n.º 9
0
        public void WhenGetCustomerInfoRequestFromXMLString_ThenReturnCustomerInfoRequestObjectAndImages()
        {
            var path = Path.Combine(Directory.GetCurrentDirectory(), "Test");

            string[] files = InputOutput.ReadFilesFromFolder(path);

            Assert.AreEqual(1, files.Length);

            var file      = files[0];
            var xmlString = InputOutput.ReadFileContent(file);

            Assert.IsNotNull(xmlString);

            CustomerInfoRequest obj = Serializer.GetCustomerInfoRequest(xmlString);

            Assert.IsNotNull(obj);
            Assert.IsNotNull(obj.MatchedImage);
            Assert.IsNotNull(obj.capturedImage);
        }
Ejemplo n.º 10
0
        public async Task <IActionResult> Register([FromBody] CustomerInfoRequest customerRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var newCustomer = _mapper.Map <Customer>(customerRequest);
            var result      = await _accountService.RegisterAsync(newCustomer);

            if (result == null)
            {
                return(BadRequest());
            }
            logHandler.LogCustomerRegister(result.Customer.Id, result.Customer.Email, "VN", "Web");
            return(Ok(new CustomerLoginResponse
            {
                Customer = result.Customer,
                AccessToken = result.JwtResult.AccessToken,
                RefreshToken = result.JwtResult.RefreshToken.TokenString,
            }));
        }
Ejemplo n.º 11
0
        public async Task <(HttpStatusCode, CustomerViewModel)> UpdateAsync(int customerId, CustomerInfoRequest customerRequest)
        {
            var uri      = API.Customer.UpdateCustomer(customerId);
            var content  = new StringContent(JsonSerializer.Serialize(customerRequest), Encoding.UTF8, "application/json");
            var response = await _httpClient.PutAsync(uri, content);

            var statusCode = response.StatusCode;

            if (!response.IsSuccessStatusCode)
            {
                return(statusCode, null);
            }
            using var responseStream = await response.Content.ReadAsStreamAsync();

            var result = await JsonSerializer.DeserializeAsync <CustomerViewModel>(responseStream);

            return(statusCode, result);
        }