Esempio n. 1
0
        public async Task <IActionResult> AddConcept([FromBody] AddConceptRequest concept)
        {
            var loggedUser = User.GetUserIdFromToken();
            var result     = await _conceptService.AddConceptAsync(loggedUser, concept);

            var mapped = _mapper.Map <ConceptResponse>(result);

            return(Created("", new ApiOkResponse(mapped)));
        }
Esempio n. 2
0
        public async Task <Concept> AddConceptAsync(int loggedUser, AddConceptRequest concept)
        {
            // validate admin user
            var user = await _uow.UserRepository.FindByAsync(u => u.Id == loggedUser && u.Role == RoleEnum.ADMIN);

            if (user.Count == 0)
            {
                throw new NotAllowedException(ExceptionConstants.NOT_ALLOWED);
            }
            // validate concept title
            var existConceptName = await _uow.ConceptRepository.FindByAsync(p => p.Title.ToLower() == concept.Title.ToLower());

            if (existConceptName.Count > 0)
            {
                throw new InvalidDataException(ExceptionConstants.INVALID_DATA, "Concept name");
            }

            var conceptDb = new Concept();

            conceptDb.Title       = concept.Title;
            conceptDb.Description = concept.Description;
            conceptDb.CreatedAt   = DateTime.UtcNow;
            conceptDb.ModifiedAt  = DateTime.UtcNow;

            if (concept.Image != null)
            {
                string guid = Guid.NewGuid().ToString();
                await _fileService.UploadFileAsync(concept.Image, guid);

                conceptDb.Image = guid;
            }
            await _uow.ConceptRepository.AddAsync(conceptDb);

            await _uow.CommitAsync();

            return(conceptDb);
        }