Esempio n. 1
0
        public static ValidacionEncargoModelDTO ObtenerValidaciones(EncargoModelDTO encargo)
        {
            ValidationContext context = new ValidationContext(encargo, null, null);
            ICollection <ValidationResult> results = new List <ValidationResult>();
            bool isValid = Validator.TryValidateObject(encargo, context, results, true);

            ValidacionEncargoModelDTO encargoValidado = new ValidacionEncargoModelDTO()
            {
                Encargo          = encargo,
                ValidationErrors = new List <ErrorEncargoModelDTO>()
            };

            if (!isValid)
            {
                foreach (ValidationResult result in results)
                {
                    encargoValidado.ValidationErrors.Add(new ErrorEncargoModelDTO()
                    {
                        ErrorDescription = result.ErrorMessage,
                        PropertyName     = result.MemberNames.First()
                    });
                }
            }

            return(encargoValidado);
        }
        public IHttpActionResult CheckEntity(EncargoModelDTO encargoDTO)
        {
            // Ésto se hace así y no con el ModelState ya que de ésta forma
            // facilita la personalización del Json de respuesta en caso de error.
            ValidacionEncargoModelDTO validacion = ValidationHelper.ObtenerValidaciones(encargoDTO);

            return(Ok(validacion));
        }
        public async Task <IHttpActionResult> GetEncargoById(int id)
        {
            EncargoModel encargoContext = await DbContext.Encargos.FindAsync(id);

            if (encargoContext == null)
            {
                return(BadRequest("El id especificado no existe."));
            }

            EncargoModelDTO encargoDTO = Mapper.Map <EncargoModelDTO>(encargoContext);

            return(Ok(encargoDTO));
        }
        public async Task <IHttpActionResult> DeleteEncargo(int id)
        {
            EncargoModel encargoContext = await DbContext.Encargos.FindAsync(id);

            if (encargoContext == null)
            {
                return(BadRequest("El id especificado no existe."));
            }

            DbContext.Encargos.Remove(encargoContext);
            await DbContext.SaveChangesAsync();

            EncargoModelDTO encargoDTO = Mapper.Map <EncargoModelDTO>(encargoContext);

            return(Ok(encargoDTO));
        }
        public async Task <IHttpActionResult> UpdateEncargo(EncargoModelDTO encargoDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            EncargoModel encargoContext = Mapper.Map <EncargoModel>(encargoDTO);

            DbContext.Entry(encargoContext).State = EntityState.Modified;
            await DbContext.SaveChangesAsync();

            encargoDTO = Mapper.Map <EncargoModelDTO>(encargoContext);

            return(Ok(encargoDTO));
        }
        public async Task <IHttpActionResult> CreateEncargo(EncargoModelDTO encargoDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            EncargoModel encargoContext = Mapper.Map <EncargoModel>(encargoDTO);

            DbContext.Encargos.Add(encargoContext);
            await DbContext.SaveChangesAsync();

            encargoDTO = Mapper.Map <EncargoModelDTO>(encargoContext);

            return(Created("api/Encargos/" + encargoDTO.EncargoId, encargoDTO));
        }