Пример #1
0
        public IHttpActionResult PostValuesToBill(int billId, List <SpecificFieldValueDTO> values)
        {
            try
            {
                if (validator.validate((Request.Headers.GetValues("Authorization").FirstOrDefault()), UserRole.Administrator) ||
                    validator.validate((Request.Headers.GetValues("Authorization").FirstOrDefault()), UserRole.Cashier))
                {
                    if (!ModelState.IsValid)
                    {
                        return(BadRequest(ModelState));
                    }

                    try
                    {
                        if (!billService.AddValuesToBill(billId, values))
                        {
                            return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No existe la factura especificada")));
                        }


                        return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.OK, "Se ingresaron correctamente ")));
                    }
                    catch (NotFoundException ex)
                    {
                        return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.NotFound, ex.Message)));
                    }
                    catch (PaymentAlreadyRegisteredException ex)
                    {
                        return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message)));
                    }
                    catch (WrongDataTypeException ex)
                    {
                        return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message)));
                    }
                }
                else
                {
                    return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "No posee los permisos necesarios")));
                }
            }
            catch (InvalidOperationException)
            {
                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Debe ingresar el header Authorization")));
            }
        }