示例#1
0
        /// <summary>
        /// Obter registro pelo id
        /// </summary>
        /// <param name="id">Id do registro</param>
        public CategoriaDto ObterPorId(Guid id)
        {
            Categoria result = _dmn.ObterPorId(id);

            if (result == null)
            {
                return(null);
            }
            return(ConverterEntidadeEmDto(result));
        }
示例#2
0
        /// <summary>
        /// Inserir registro na base
        /// </summary>
        /// <param name="dto">Objeto de transporte de dados de item</param>
        /// <param name="statusCode">Variável de saída de StatusCode</param>
        /// <param name="mensagem">Objeto de saída de dados (mensagem)</param>
        public void Inserir(ItemDto dto, out int statusCode, out string mensagem)
        {
            StringBuilder criticas = new StringBuilder();

            // Verificando TipoItem
            TipoItem tipoItem = _tipoItemDomain.ObterPorDescricao(dto.TipoItem.Descricao);

            if (tipoItem == null)
            {
                criticas.Append("Tipo de Item inválido|");
            }

            // Verificando Categoria
            Categoria categoria = _categoriaDomain.ObterPorId(dto.Categoria.Id);

            if (categoria == null)
            {
                criticas.Append("Categoria inválida|");
            }

            // Verificando faixa de valor
            if (dto.ValorFaixa != null)
            {
                ValorFaixa faixa = _faixaDomain.ObterPorId(dto.ValorFaixa.Id);
                if (faixa == null)
                {
                    criticas.Append("Faixa de valor inválida|");
                }
            }

            // Verificando Campanha
            if (dto.Campanha != null)
            {
                Campanha campanha = _campanhaDomain.ObterPorId(dto.Campanha.Id);
                if (campanha == null)
                {
                    criticas.Append("Campanha inválida|");
                }
                else
                if (campanha.DataFinal < DateTime.Now)
                {
                    criticas.Append("Campanha expirada|");
                }
            }

            if (criticas.Length > 0)
            {
                mensagem   = criticas.ToString().Substring(0, (criticas.Length - 1)).Replace("|", "\r\n");
                statusCode = StatusCodes.Status400BadRequest;
            }
            else
            {
                Item entidade = new Item()
                {
                    Titulo      = dto.Titulo,
                    Descricao   = dto.Descricao,
                    TipoItemId  = tipoItem.Id,
                    CategoriaId = categoria.Id,
                    UsuarioId   = _usuario.Id,
                    Anonimo     = dto.Anonimo
                };

                if (dto.ValorFaixa != null)
                {
                    entidade.ValorFaixaId = dto.ValorFaixa.Id;
                }

                if (dto.Campanha != null)
                {
                    entidade.CampanhaId = dto.Campanha.Id;
                }

                if (!entidade.EstaValido())
                {
                    mensagem   = entidade.ValidationResult.ToString();
                    statusCode = StatusCodes.Status400BadRequest;
                }
                else
                {
                    _dmn.Adicionar(entidade);
                    _uow.Efetivar();

                    mensagem   = entidade.Id.ToString();
                    dto.Id     = entidade.Id;
                    statusCode = StatusCodes.Status200OK;
                }
            }
        }