예제 #1
0
        public IActionResult CreateUserCustomerRelationship(
            [FromBody] CreateUserCustomerRelationshipEvent userCustomerRelationship)
        {
            try
            {
                userCustomerRelationship.ReceivedUTC = DateTime.UtcNow;
                if (customerService.GetCustomer(userCustomerRelationship.CustomerUID) == null)
                {
                    logger.LogInformation(Messages.CustomerDoesntExist);
                    return(BadRequest(Messages.CustomerDoesntExist));
                }

                if (userCustomerService.GetCustomerUser(userCustomerRelationship.CustomerUID,
                                                        userCustomerRelationship.UserUID) != null)
                {
                    logger.LogInformation(Messages.CustomerUserAlreadyExists);
                    return(BadRequest(Messages.CustomerUserAlreadyExists));
                }

                if (customerService.CreateUserCustomerRelationship(userCustomerRelationship))
                {
                    return(Ok());
                }

                logger.LogWarning(Messages.UnableToSaveToDb);
                return(BadRequest(Messages.UnableToSaveToDb));
            }
            catch (Exception ex)
            {
                logger.LogError(string.Format(Messages.ExceptionOccured, ex.Message, ex.StackTrace));
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
            }
        }
예제 #2
0
        public void GetCustomerUser_ValidCustomerUser_ReturnsResult()
        {
            //Arrange
            var customerUser = new DbUserCustomer
            {
                fk_CustomerID  = 88,
                fk_CustomerUID = Guid.NewGuid(),
                fk_UserUID     = Guid.NewGuid(),
                LastUserUTC    = DateTime.UtcNow,
                UserCustomerID = 123
            };
            var config = new ComparisonConfig
            {
                IgnoreObjectTypes             = true,
                MaxMillisecondsDateDifference = 500,
                MaxDifferences = 0
            };
            var assetCustomerCompareLogic = new CompareLogic(config);

            transaction.Get <DbUserCustomer>(Arg.Any <string>()).Returns(new List <DbUserCustomer> {
                customerUser
            });

            //Act
            var resultData = userCustomerService.GetCustomerUser(customerUser.fk_CustomerUID, customerUser.fk_UserUID);

            //Arrange
            Assert.NotNull(resultData);
            ComparisonResult compareResult = assetCustomerCompareLogic.Compare(customerUser, resultData);

            Assert.True(compareResult.Differences.Count == 0);
        }