Ejemplo n.º 1
0
        public async Task Post_Should_Add_User_Client()
        {
            var createUserClientDto = new CreateUserClientDto()
            {
                ClientPublicId = _jimmyClient.PublicId,
                IsActif        = true
            };

            var httpResponseMessage = await _client.PostAsJsonAsync("usersClients", createUserClientDto);

            Assert.AreEqual(HttpStatusCode.Created, httpResponseMessage.StatusCode);
            Assert.IsTrue(httpResponseMessage.Headers.Contains("location"));

            var location = httpResponseMessage.Headers.GetValues("location").Single();

            Assert.IsTrue(location.Length > 0);

            var userClientId = Int32.Parse(location.Split('/', StringSplitOptions.RemoveEmptyEntries).Last());

            using (var context = new DaOAuthContext(_dbContextOptions))
            {
                var myCreatedUserClient = context.UsersClients.SingleOrDefault(uc => uc.Id.Equals(userClientId));
                Assert.IsNotNull(myCreatedUserClient);
                Assert.AreEqual(myCreatedUserClient.ClientId, _jimmyClient.Id);
            }
        }
Ejemplo n.º 2
0
        public IActionResult Post(CreateUserClientDto toCreate)
        {
            toCreate.UserName = User.Identity.Name;
            var createdId  = _service.CreateUserClient(toCreate);
            var currentUrl = Request.GetDisplayUrl();

            return(Created($"{currentUrl}/{createdId}", null));
        }
Ejemplo n.º 3
0
        public int CreateUserClient(CreateUserClientDto toCreate)
        {
            Validate(toCreate);

            var id = 0;

            var local = GetErrorStringLocalizer();

            using (var context = RepositoriesFactory.CreateContext())
            {
                var userClientRepo = RepositoriesFactory.GetUserClientRepository(context);
                var clientRepo     = RepositoriesFactory.GetClientRepository(context);
                var userRepo       = RepositoriesFactory.GetUserRepository(context);

                var user = userRepo.GetByUserName(toCreate.UserName);
                if (user == null || !user.IsValid)
                {
                    throw new DaOAuthServiceException(local["CreateUserClientInvalidUserName"]);
                }

                var client = clientRepo.GetByPublicId(toCreate.ClientPublicId);
                if (client == null || !client.IsValid)
                {
                    throw new DaOAuthServiceException(local["CreateUserClientInvalidClientPublicId"]);
                }

                var uc = userClientRepo.GetUserClientByClientPublicIdAndUserName(toCreate.ClientPublicId, toCreate.UserName);
                if (uc != null)
                {
                    throw new DaOAuthServiceException(local["CreateUserClientClientAlreadyRegister"]);
                }

                id = userClientRepo.Add(new UserClient()
                {
                    ClientId     = client.Id,
                    CreationDate = DateTime.Now,
                    IsActif      = toCreate.IsActif,
                    UserId       = user.Id
                });

                context.Commit();
            }

            return(id);
        }