public async Task <IActionResult> RegistrarPaper([FromBody] PaperResource resource)
        {
            var           paper  = _mapper.Map <PaperResource, Paper>(resource);
            PaperResponse result = await _paperUseCase.RegistrarPaper(paper);

            if (!result.Success)
            {
                return(BadRequest(new ErrorResource(result.Message)));
            }

            var paperResource = _mapper.Map <Paper, PaperResource>(result.Resource);

            return(Ok(new { mensaje = "Guardado satisfactoriamente", paperResource }));
        }
Пример #2
0
        public async Task <IActionResult> RegistrarProyecto([FromBody] Data data)
        {
            if (data.Proyecto != null && data.Paper != null)
            {
                MappingData(data);

                PaperResponse resultPaper = await _paperUseCase.RegistrarPaper(_paper);

                if (!resultPaper.Success)
                {
                    return(BadRequest(new ErrorResource(resultPaper.Message)));
                }
                else
                {
                    _proyecto.IdPaper = resultPaper.Resource.IdPaper;
                    ProyectoResponse resultProyecto = await _proyectoUseCase.RegistrarProyecto(_proyecto);

                    if (!resultProyecto.Success)
                    {
                        return(BadRequest(new ErrorResource(resultProyecto.Message)));
                    }
                    else
                    {
                        GuardarDocumento(data.Proyecto, data.Doc);
                        if (data.Keywords != null)
                        {
                            foreach (var keyword in _keywords)
                            {
                                var result = await _palabrasClavesUseCase.RegistrarKeyword(keyword);

                                if (!result.Success)
                                {
                                    return(BadRequest(new ErrorResource(result.Message)));
                                }

                                _proyectoKeywords.Add(new ProyectoKeyword {
                                    IdKeyword = result.Resource.IdKeyword
                                });
                            }
                        }

                        foreach (var proyectoKeyword in _proyectoKeywords)
                        {
                            proyectoKeyword.IdProyecto = resultProyecto.Resource.IdProyecto;
                            var result = await _proyectoKeywordUseCase.RegistrarProyectoKeyword(proyectoKeyword);

                            if (!result.Success)
                            {
                                return(BadRequest(new ErrorResource(result.Message)));
                            }
                        }

                        if (data.Autores.Count != 0)
                        {
                            foreach (var autor in _autores)
                            {
                                var result = await _autorUseCase.RegistrarAutor(autor);

                                if (!result.Success)
                                {
                                    return(BadRequest(new ErrorResource(result.Message)));
                                }
                                _proyectoAutores.Add(new ProyectoAutor {
                                    IdAutor = result.Resource.IdAutor
                                });
                            }
                        }

                        foreach (var proyectoAutor in _proyectoAutores)
                        {
                            proyectoAutor.IdProyecto = resultProyecto.Resource.IdProyecto;
                            var result = await _proyectoAutorUseCase.RegistrarProyectoAutor(proyectoAutor);

                            if (!result.Success)
                            {
                                return(BadRequest(new ErrorResource(result.Message)));
                            }
                        }

                        return(Ok(new { mensaje = "Guardado." }));
                    }
                }
            }
            else
            {
                BadRequest(new ErrorResource("Faltan datos."));
            }

            return(Ok());
        }