public void UserResource_ValidModel_NoModelValidationError()
        {
            var userResourceViewModel = new UserResourceViewModel
            {
                ResourceId = Guid.NewGuid(),
            };

            Assert.IsTrue(!this.ValidateModel(userResourceViewModel).Any());
        }
        public void UserResource_EmptyResourceId_ModelValidationError()
        {
            var userResourceViewModel = new UserResourceViewModel
            {
                ResourceId = Guid.Empty,
            };
            var modelValidationResult = this.ValidateModel(userResourceViewModel);

            Assert.IsTrue(modelValidationResult.Any(
                              v => v.ErrorMessage.Contains("empty GUID")));
        }
        public UserResourceViewModel Get(string basePath, string path, string id)
        {
            var resources = new UserResourceViewModel
            {
                FileNames = new List <string> {
                    id
                },
                Directory = $@"/Content/Uploads/{path}/"
            };

            return(resources);
        }
        public UserResourceViewModel getAll(string basePath, string userId)
        {
            var path = Path.Combine(basePath, userId);

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            var fileNames = Directory.GetFiles(Path.Combine(basePath, userId)).ToList().Select(p => Path.GetFileName(p));
            var resources = new UserResourceViewModel
            {
                FileNames = fileNames,
                Directory = $@"/Content/Uploads/{userId}/"
            };

            return(resources);
        }
        public async Task <IActionResult> PostAsync(UserResourceViewModel userResourceDetail)
        {
            this.RecordEvent("User Resource- Http Post Call initiated.", RequestType.Initiated);
            this.logger.LogInformation($"User Resource- Http Post Call initiated.");

            try
            {
                if (userResourceDetail == null)
                {
                    this.logger.LogError($"Error while saving user resource details to storage for userId: {this.UserObjectId}");
                    this.RecordEvent("User Resource - Http Post call failed.", RequestType.Failed);
                    return(this.BadRequest("Error while saving user resource details in storage."));
                }

                var userResourceEntity = new UserResource
                {
                    UserId     = this.UserObjectId,
                    ResourceId = userResourceDetail.ResourceId,
                    CreatedOn  = DateTime.UtcNow,
                };
                var userResorces = await this.unitOfWork.UserResourceRepository.FindAsync(userResorce => userResorce.ResourceId == userResourceEntity.ResourceId && userResorce.UserId == userResourceEntity.UserId);

                if (userResorces.Any())
                {
                    this.logger.LogInformation($"User Resource - Http Post call succeeded.");
                    this.RecordEvent("User Resource - Http Post call succeeded.", RequestType.Succeeded);
                    return(this.Conflict(true));
                }

                this.unitOfWork.UserResourceRepository.Add(userResourceEntity);
                await this.unitOfWork.SaveChangesAsync();

                this.logger.LogInformation($"User Resource - Http Post call succeeded.");
                this.RecordEvent("User Resource - Http Post call succeeded.", RequestType.Succeeded);

                return(this.Ok(true));
            }
            catch (Exception ex)
            {
                this.RecordEvent("User Resource - Http Post call failed.", RequestType.Failed);
                this.logger.LogError(ex, $"User Resource - Http Post call failed for user id: {this.UserObjectId}.");
                throw;
            }
        }
예제 #6
0
        public async Task PostAsync_SaveUserResource_ReturnsOkResult()
        {
            // ARRANGE
            var userResource = new UserResourceViewModel
            {
                ResourceId = Guid.NewGuid(),
            };
            var userresourceEntityModel = new UserResource
            {
                ResourceId = userResource.ResourceId,
            };
            var userResourceList = new List <UserResource>();

            this.unitOfWork.Setup(uow => uow.UserResourceRepository.FindAsync(It.IsAny <Expression <Func <UserResource, bool> > >())).ReturnsAsync(userResourceList);

            // ACT
            var result = (ObjectResult)await this.userResourceController.PostAsync(userResource);

            var resultValue = result.Value;

            // ASSERT
            Assert.AreEqual(result.StatusCode, StatusCodes.Status200OK);
            Assert.AreEqual(result.Value, true);
        }
예제 #7
0
        public async Task PostAsync_RecordAlreadyExist_ReturnsConflictStatus()
        {
            // ARRANGE
            var userResource = new UserResourceViewModel
            {
                ResourceId = Guid.NewGuid(),
            };
            var userresourceEntityModel = new UserResource
            {
                ResourceId = userResource.ResourceId,
            };
            var userResourceList = new List <UserResource>
            {
                userresourceEntityModel,
            };

            this.unitOfWork.Setup(uow => uow.UserResourceRepository.FindAsync(It.IsAny <Expression <Func <UserResource, bool> > >())).ReturnsAsync(userResourceList);

            // ACT
            var result = (ObjectResult)await this.userResourceController.PostAsync(userResource);

            // ASSERT
            Assert.AreEqual(result.StatusCode, StatusCodes.Status409Conflict);
        }