Exemple #1
0
        public async Task <FragmentCreateUpdateResponse> CreateFragment(ClaimsPrincipal claim, FragmentCreateRequest request)
        {
            var response = new FragmentCreateUpdateResponse();

            var user = await _userService.GetCurrentUser(claim);

            var userId = user == null ? string.Empty : user.Id;

            if (string.IsNullOrEmpty(userId))
            {
                response.ErrorMessages.Add("You are not authorised to perform this action.");
                return(response);
            }

            if (string.IsNullOrEmpty(request.Name))
            {
                response.ErrorMessages.Add("Name is required.");
                return(response);
            }

            var realm = await _fragmentDataService.GetAsync <Realm>(request.RealmId);

            if (realm == null)
            {
                response.ErrorMessages.Add("The Realm you are attempting to create a page for was not found.");
                return(response);
            }

            var fragment = _mapper.Map <Fragment>(request);

            fragment.Code = await ValidateAndSetFragmentCode(fragment, realm);

            await ProcessAndPersistNewTags(realm, fragment, request.TagList);

            _fragmentDataService.SetToPersist(fragment);
            await _fragmentDataService.SaveAsync();

            response.Data = _mapper.Map <FragmentItemViewModel>(fragment);
            return(response);
        }
Exemple #2
0
 public async Task<FragmentCreateUpdateResponse> Create(FragmentCreateRequest request)
 {
     return await _fragmentService.CreateFragment(User, request);
 }