Esempio n. 1
0
        public async Task <IHttpActionResult> PutUser(int id, Models.Users.User user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != user.IdUser)
            {
                return(BadRequest());
            }

            db.Entry(user).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UserExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Esempio n. 2
0
        public string SaveUser(Models.Users.User user)
        {
            user.Validate();
            var result = context.SaveUser(user);

            return(result);
        }
        public async Task <Models.Users.User> FindByEmailAsync(string normalizedEmail)
        {
            var createResponse = await CosmosClient.CreateDatabaseIfNotExistsAsync(_DatabaseName, _DatabaseThroughput);

            var database = createResponse.Database;

            var containerProperties = new ContainerProperties(_UserContainerName, _UserContainerPartitionKeyPath);

            var containerResponse = await database.CreateContainerIfNotExistsAsync(
                containerProperties,
                _UserContainerThroughput);

            var container = containerResponse.Container;

            var query = new QueryDefinition($"SELECT * FROM {_UserContainerName} c WHERE UPPER(c.NormalizedEmail) = @NormalizedEmail")
                        .WithParameter("@NormalizedEmail", normalizedEmail);

            var queryIterator = container.GetItemQueryIterator <Models.Users.User>(query, requestOptions: new QueryRequestOptions()
            {
                MaxConcurrency = 1
            });

            Models.Users.User user = null;

            while (queryIterator.HasMoreResults)
            {
                var response = await queryIterator.ReadNextAsync();

                user = response.FirstOrDefault();
            }

            return(user);
        }
        public async Task <bool> HasPasswordAsync(Models.Users.User user)
        {
            var createResponse = await CosmosClient.CreateDatabaseIfNotExistsAsync(_DatabaseName, _DatabaseThroughput);

            var database = createResponse.Database;

            var containerProperties = new ContainerProperties(_UserContainerName, _UserContainerPartitionKeyPath);

            var containerResponse = await database.CreateContainerIfNotExistsAsync(
                containerProperties,
                _UserContainerThroughput);

            var container = containerResponse.Container;

            var query = new QueryDefinition($"SELECT * FROM {_UserContainerName} c WHERE c.UserId = @UserId")
                        .WithParameter("@UserId", user.UserId);

            var queryIterator = container.GetItemQueryIterator <Models.Users.User>(query, requestOptions: new QueryRequestOptions()
            {
                MaxConcurrency = 1
            });

            Models.Users.User userDb = null;

            while (queryIterator.HasMoreResults)
            {
                var response = await queryIterator.ReadNextAsync();

                userDb = response.FirstOrDefault();
            }

            return(!string.IsNullOrEmpty(userDb.PasswordHash));
        }
Esempio n. 5
0
        public CostumerCart Edit(Models.Users.User user, CostumerCart model, CancellationToken cancellationToken = default)
        {
            var toEdit = Cache.Get <CostumerCart>(user.UserId);

            Cache.Set(user.UserId, Map(toEdit, model));

            return(model);
        }
Esempio n. 6
0
 private static Persistence.EntityFramework.Entities.User Map(Models.Users.User model)
 {
     return(new Persistence.EntityFramework.Entities.User()
     {
         UserId = model.UserId,
         Username = model.Username,
         Email = model.Email,
         Registered = model.Registered,
     });
 }
Esempio n. 7
0
        public async Task Delete(Models.Users.User model, CancellationToken cancellationToken = default)
        {
            var userDb = await DbContext.Users
                         .Where(x => x.UserId == model.UserId)
                         .FirstOrDefaultAsync(cancellationToken);

            DbContext.Users.Remove(userDb);

            await DbContext.SaveChangesAsync(cancellationToken);
        }
Esempio n. 8
0
        public async Task <IHttpActionResult> GetUser(int id)
        {
            Models.Users.User user = await db.Users.FindAsync(id);

            if (user == null)
            {
                return(NotFound());
            }

            return(Ok(user));
        }
Esempio n. 9
0
        public async Task <Models.Users.User> Edit(Models.Users.User model, CancellationToken cancellationToken = default)
        {
            var userDb = await DbContext.Users
                         .FirstOrDefaultAsync(x => x.UserId == model.UserId, cancellationToken);

            userDb = DbContext.Users.Update(Map(userDb, model)).Entity;

            await DbContext.SaveChangesAsync(cancellationToken);

            return(Map(userDb));
        }
Esempio n. 10
0
        public async Task <IHttpActionResult> PostUser(Models.Users.User user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Users.Add(user);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = user.IdUser }, user));
        }
Esempio n. 11
0
        public async Task <IHttpActionResult> DeleteUser(int id)
        {
            Models.Users.User user = await db.Users.FindAsync(id);

            if (user == null)
            {
                return(NotFound());
            }

            db.Users.Remove(user);
            await db.SaveChangesAsync();

            return(Ok(user));
        }
Esempio n. 12
0
        public void User_ShouldBeSetAndGottenCorrectly()
        {
            //Arrange
            var user = new Models.Users.User();

            //Act
            var regularUser = new Models.Users.RegularUser()
            {
                User = user
            };

            //Assert
            Assert.AreSame(user, regularUser.User);
            Assert.AreEqual(user.Id, regularUser.User.Id);
        }
Esempio n. 13
0
        public void User_ShouldBeSetAndGottenCorrectly()
        {
            //Arrange
            var user = new Models.Users.User();

            //Act
            var admin = new Models.Users.Admin()
            {
                User = user
            };

            //Assert
            Assert.AreSame(user, admin.User);
            Assert.AreEqual(user.Id, admin.User.Id);
        }
        public async Task <bool> UpdateUserAsync(Models.Users.User user)
        {
            var createResponse = await CosmosClient.CreateDatabaseIfNotExistsAsync(_DatabaseName, _DatabaseThroughput);

            var database = createResponse.Database;

            var containerProperties = new ContainerProperties(_UserContainerName, _UserContainerPartitionKeyPath);

            var containerResponse = await database.CreateContainerIfNotExistsAsync(
                containerProperties,
                _UserContainerThroughput);

            var container = containerResponse.Container;

            var query = new QueryDefinition($"SELECT * FROM {_UserContainerName} c WHERE c.UserId = @UserId")
                        .WithParameter("@UserId", user.UserId);

            var queryIterator = container.GetItemQueryIterator <Models.Users.User>(query, requestOptions: new QueryRequestOptions()
            {
                MaxConcurrency = 1
            });

            Models.Users.User userDb = null;

            while (queryIterator.HasMoreResults)
            {
                var response = await queryIterator.ReadNextAsync();

                user = response.FirstOrDefault();
            }

            if (userDb == null)
            {
                return(false);
            }
            else
            {
                userDb = user;

                var upsertItemResponse = await container.UpsertItemAsync(userDb, new PartitionKey(user.UserId));

                if (upsertItemResponse.StatusCode == HttpStatusCode.Created || upsertItemResponse.StatusCode == HttpStatusCode.OK)
                {
                    return(true);
                }
                return(false);
            }
        }
        public async Task CreateUserAsync(string realm)
        {
            var user = new Models.Users.User()
            {
                UserName      = "******",
                Enabled       = true,
                EmailVerified = true,
                FirstName     = "testfirstname1",
                LastName      = "testlastname1",
                Email         = "*****@*****.**"
            };

            var result = await _client.CreateUserAsync(realm, user);

            Assert.False(string.IsNullOrWhiteSpace(result), "Created user ID not returned");
        }
Esempio n. 16
0
        public string SaveUser(Models.Users.User user)
        {
            logger.LogInformation($"User - userId - {user.Id}");
            logger.LogTrace($"User - userId - {user.Id}", user.Id);

            if (string.IsNullOrEmpty(user.Id))
            {
                user.Id = Guid.NewGuid().ToString();
                //context.Users.Add(user);
            }
            else
            {
                //context.Users.Update(user);
            }
            //context.SaveChanges();
            return(user.Id);
        }
        public async Task SetNormalizedUserNameAsync(Models.Users.User user, string normalizedName)
        {
            var createResponse = await CosmosClient.CreateDatabaseIfNotExistsAsync(_DatabaseName, _DatabaseThroughput);

            var database = createResponse.Database;

            var containerProperties = new ContainerProperties(_UserContainerName, _UserContainerPartitionKeyPath);

            var containerResponse = await database.CreateContainerIfNotExistsAsync(
                containerProperties,
                _UserContainerThroughput);

            var container = containerResponse.Container;

            var query = new QueryDefinition($"SELECT * FROM {_UserContainerName} c WHERE c.UserId = @UserId")
                        .WithParameter("@UserId", user.UserId);

            var queryIterator = container.GetItemQueryIterator <Models.Users.User>(query, requestOptions: new QueryRequestOptions()
            {
                MaxConcurrency = 1
            });

            Models.Users.User userDb = null;

            while (queryIterator.HasMoreResults)
            {
                var response = await queryIterator.ReadNextAsync();

                user = response.FirstOrDefault();
            }

            if (userDb == null)
            {
                return;
            }
            else
            {
                user.NormalizedUserName = normalizedName;

                await container.UpsertItemAsync(user, new PartitionKey(user.UserId));
            }
        }
Esempio n. 18
0
        public CostumerCart EditProductQuantity(Models.Users.User user, Models.Products.Product product, int quantity, CancellationToken cancellationToken = default)
        {
            var toEdit = Cache.Get <CostumerCart>(user.UserId);

            var foundProduct = toEdit.CartProducts.FirstOrDefault(x => x.Product.ProductId == product.ProductId);

            if (foundProduct != null)
            {
                if (quantity > 0)
                {
                    foundProduct.Quantity = quantity;
                }
                else
                {
                    toEdit.CartProducts.Remove(foundProduct);
                }
            }

            Cache.Set(user.UserId, toEdit);

            return(toEdit);
        }
Esempio n. 19
0
        public CostumerCart AddProduct(Models.Users.User user, Models.Products.Product product, CancellationToken cancellationToken = default)
        {
            var toEdit = Cache.Get <CostumerCart>(user.UserId);

            var foundProduct = toEdit.CartProducts.FirstOrDefault(x => x.Product.ProductId == product.ProductId);

            if (foundProduct != null)
            {
                ++foundProduct.Quantity;
            }
            else
            {
                toEdit.CartProducts.Add(new OrderProduct()
                {
                    Product = product, Quantity = 1
                });
            }

            Cache.Set(user.UserId, toEdit);

            return(toEdit);
        }
        public async Task <bool> CreateUserAsync(Models.Users.User user)
        {
            var createResponse = await CosmosClient.CreateDatabaseIfNotExistsAsync(_DatabaseName, _DatabaseThroughput);

            var database = createResponse.Database;

            var containerProperties = new ContainerProperties(_UserContainerName, _UserContainerPartitionKeyPath);

            var containerResponse = await database.CreateContainerIfNotExistsAsync(
                containerProperties,
                _UserContainerThroughput);

            var container = containerResponse.Container;

            var createItemResponse = await container.CreateItemAsync(user, new PartitionKey(user.UserId));

            if (createItemResponse.StatusCode == HttpStatusCode.Created || createItemResponse.StatusCode == HttpStatusCode.OK)
            {
                return(true);
            }

            return(false);
        }
        public ActionResult <string> Post([FromBody] Models.Users.User user)
        {
            var result = context.SaveUser(user);

            return(Ok(result));
        }
Esempio n. 22
0
 public bool Exists(Models.Users.User user, CancellationToken cancellationToken = default)
 {
     return(Cache.TryGetValue <CostumerCart>(user.UserId, out _));
 }
Esempio n. 23
0
        public void Delete(Models.Users.User user, CancellationToken cancellationToken = default)
        {
            var toEdit = Cache.Get <CostumerCart>(user.UserId);

            Cache.Remove(toEdit);
        }
 public Task InsertAsync(Models.Users.User user)
 {
     return(GetUserCollection().InsertOneAsync(user));
 }
 public Task UpdateAsync(string id, Models.Users.User user)
 {
     return(GetUserCollection().FindOneAndReplaceAsync(i => string.Equals(i.Id, id), user));
 }
Esempio n. 26
0
 public async Task <Models.Users.User> Update(Models.Users.User user)
 {
     return(await _userRepository.Update(user));
 }
Esempio n. 27
0
 public string SaveUser(Models.Users.User user)
 {
     return(MockData.Users.UserData.FirstUser.Id);
 }
Esempio n. 28
0
 public Permissions(Models.Users.User user)
 {
 }
Esempio n. 29
0
        private static Persistence.EntityFramework.Entities.User Map(Persistence.EntityFramework.Entities.User userDb, Models.Users.User model)
        {
            userDb.Username   = model.Username;
            userDb.Email      = model.Email;
            userDb.Registered = userDb.Registered;

            return(userDb);
        }
Esempio n. 30
0
        public async Task <Models.Users.User> Create(Models.Users.User model, CancellationToken cancellationToken = default)
        {
            var userEntry = await DbContext.Users.AddAsync(Map(model), cancellationToken);

            return(Map(userEntry.Entity));
        }