Ejemplo n.º 1
0
        /// <summary>
        /// Guarda un post
        /// </summary>
        /// <param name="blogDto"></param>
        /// <param name="formFile"></param>
        /// <returns></returns>
        public ApiCallResult GuardarPost(BlogDetalleDto blogDto)
        {
            try
            {
                Blogs slug = this.blogRepository.ObtenerSlug(blogDto.Slug);
                if (slug != null)
                {
                    throw new NegocioExecption($"Ya existe ha sido creado previamente un post con este SLUG {blogDto.Slug}", 202);
                }
                BusquedaDto titulo = this.BuscarPost(blogDto.Titulo).FirstOrDefault();
                if (!string.IsNullOrEmpty(titulo.Slug))
                {
                    throw new NegocioExecption($"Ya existe ha sido creado previamente un post con este Titulo {blogDto.Titulo}", 202);
                }
                UsuarioDto usuario = this.usuarioService.VerificarUsuario(blogDto.Creador);
                if (usuario is null)
                {
                    throw new NegocioExecption($"Error de logeo con {blogDto.Creador}", 401);
                }

                using (TransactionScope scope = new TransactionScope())
                {
                    #region Guardar imagenes
                    this.GuardarImagenPost(blogDto.ImagenPost);
                    #endregion
                    #region Guardar post
                    blogDto.Idcreador     = usuario.Idusuario;
                    blogDto.Idimagen      = this.BuscarImagenPorRuta(blogDto.ImagenPost);
                    blogDto.FechaCreacion = DateTime.Now;
                    blogDto.Tipo          = "PO";
                    blogDto.Estado        = true;
                    Blogs blog = mapper.Map <Blogs>(blogDto);
                    this.blogRepository.GuardarPost(blog);
                    #endregion

                    #region Guardar keywords
                    Blogs blogCreado = this.blogRepository.ObtenerSlug(blogDto.Slug);
                    this.GuardarKeyWords(blogDto.KeyWords, blogCreado.Idblog);
                    #endregion
                    scope.Complete();
                }

                return(new ApiCallResult
                {
                    Estado = true,
                    Mensaje = "Post guardado"
                });
            }
            catch (NegocioExecption)
            {
                throw;
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Guarda las entradas con videos de youtube
        /// </summary>
        /// <param name="youtubeDto"></param>
        /// <returns></returns>
        public ApiCallResult GuardarEntradaYoutube(EntradaYoutubeDto youtubeDto)
        {
            try
            {
                #region Validaciones
                Blogs slug = this.repository.ObtenerSlug(youtubeDto.Slug);
                if (slug != null)
                {
                    throw new NegocioExecption($"Ya existe ha sido creado previamente un post con este SLUG {youtubeDto.Slug}", 202);
                }
                BusquedaDto titulo = this.blogService.BuscarPost(youtubeDto.Titulo).FirstOrDefault();
                if (!string.IsNullOrEmpty(titulo.Slug))
                {
                    throw new NegocioExecption($"Ya existe ha sido creado previamente un post con este Titulo {youtubeDto.Titulo}", 202);
                }
                UsuarioDto usuario = this.usuarioService.VerificarUsuario(youtubeDto.Creador);
                if (usuario is null)
                {
                    throw new NegocioExecption($"Error de logeo con {youtubeDto.Creador}", 401);
                }
                #endregion
                using (TransactionScope scope = new TransactionScope())
                {
                    #region Guardar Entrada
                    youtubeDto.IdVideo       = this.GuardarRutaYoutube(youtubeDto.Rutavideo);
                    youtubeDto.Tipo          = "YO";
                    youtubeDto.Estado        = true;
                    youtubeDto.Fechacreacion = DateTime.Now;
                    youtubeDto.Idcreador     = usuario.Idusuario;
                    Blogs blog = mapper.Map <Blogs>(youtubeDto);
                    this.repository.GuardarPost(blog);
                    #endregion

                    #region Guardar Keywords
                    Blogs blogCreado = this.repository.ObtenerSlug(youtubeDto.Slug);
                    this.blogService.GuardarKeyWords(youtubeDto.KeyWords, blogCreado.Idblog);
                    #endregion
                    scope.Complete();
                }
                return(new ApiCallResult
                {
                    Estado = true,
                    Mensaje = "Video guardado correctamente"
                });
            }
            catch (NegocioExecption)
            {
                throw;
            }
            catch (Exception)
            {
                throw;
            }
        }