예제 #1
0
        public async Task <Result <ActivityTypeModel, Error> > Add(CreateActivityTypeModel model)
        {
            var activityTypeExists = (await _activityTypesRepository.GetByName(model.Name)) != null;

            if (activityTypeExists)
            {
                return(Result.Failure <ActivityTypeModel, Error>(ErrorsList.ActivityTypeExists));
            }

            var userId = Guid.Parse(_accessor.HttpContext.User.Claims.First(c => c.Type == "userId").Value);
            var user   = await _userRepository.GetById(userId);

            var userType = await _userTypeRepository.GetByName("Admin");

            if (user.UserTypeId != userType.Id)
            {
                return(Result.Failure <ActivityTypeModel, Error>(ErrorsList.UnauthorizedUser));
            }

            var activityType = _mapper.Map <ActivityType>(model);

            await _activityTypesRepository.Add(activityType);

            await _activityTypesRepository.SaveChanges();

            return(_mapper.Map <ActivityTypeModel>(activityType));
        }
        public async Task <IActionResult> Add([FromBody] CreateActivityTypeModel model)
        {
            var(_, isFailure, value, error) = await _activityTypesService.Add(model);

            if (isFailure)
            {
                return(BadRequest(error));
            }

            return(Created(value.Id.ToString(), value));
        }
        public async Task PostInvalidActivityTypeTest()
        {
            var activityTypeModel = new CreateActivityTypeModel()
            {
                Name = "activitate test"
            };

            var response = await HttpClient.PostAsJsonAsync($"api/v1/activities/types", activityTypeModel);

            var secondResponse = await HttpClient.PostAsJsonAsync($"api/v1/activities/types", activityTypeModel);

            response.IsSuccessStatusCode.Should().BeTrue();
            secondResponse.IsSuccessStatusCode.Should().BeFalse();
        }
        public async Task PostActivityTypeTest()
        {
            var activityTypeModel = new CreateActivityTypeModel()
            {
                Name = "activitate test"
            };

            var response = await HttpClient.PostAsJsonAsync($"api/v1/activities/types", activityTypeModel);

            response.IsSuccessStatusCode.Should().BeTrue();
            var          activityTypeId     = new Guid(response.Headers.Location.OriginalString);
            ActivityType activityTypeEntity = null;

            await ExecuteDatabaseAction(async (doFestContext) =>
            {
                activityTypeEntity = await doFestContext
                                     .ActivityTypes
                                     .FirstOrDefaultAsync(entity => entity.Id == activityTypeId);
                await doFestContext.SaveChangesAsync();
            });

            activityTypeEntity.Should().NotBeNull();
        }