Пример #1
0
        public async Task <IActionResult> Post([FromBody] Pizza pizza)
        {
            if (string.IsNullOrWhiteSpace(pizza.Name))
            {
                return(BadRequest());
            }

            await _pizzaService.Add(pizza);

            return(Ok(pizza));
        }
Пример #2
0
        public CreatePizzaResponse Create(CreatePizzaRequest request)
        {
            var pizza = request.ProjectedAs <Pizza>();

            var response = _service.Add(pizza);

            if (response.IsSuccess)
            {
                _uow.Commit();
            }

            return(response.ProjectedAs <CreatePizzaResponse>());
        }
Пример #3
0
        public IHttpActionResult Add([FromBody, CustomizeValidator(RuleSet = "PreValidator")] PizzaDto pizza)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = _pizzaService.Add(pizza);

            return(result.IsSuccess ?
                   Created($"api/pizzas/{result.Value.Id}", result.Value) :
                   (IHttpActionResult)BadRequest(result.Error));
        }
Пример #4
0
        public IHttpActionResult Add([CustomizeValidator(RuleSet = "PreValidation")] PizzaDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var result = _pizzaService.Add(model);
            var url    = Url.Link("GetPizzaById", new { id = result.Value.Id });

            var ctx = GlobalHost.ConnectionManager.GetHubContext <PizzaShop.Web.Hubs.PizzaHub>();

            ctx.Clients.All.PizzaAdded(model);

            return(result.IsSuccess ? Created(url, result.Value) : (IHttpActionResult)BadRequest(result.Error));
        }
Пример #5
0
        public IActionResult Post([FromBody] Pizza pizza)
        {
            if (string.IsNullOrEmpty(pizza.Name))
            {
                return(new ObjectResult(new { Status = 400, Value = "Pizza name can't be empty" }));
            }

            try
            {
                pizzaService.Add(pizza);
                return(new ObjectResult(new { Status = 200, Value = string.Format("Pizza {0} created", pizza.Name) }));
            }
            catch (Exception exception)
            {
                return(new ObjectResult(new { Status = 500, Value = exception.Message }));
            }
        }
Пример #6
0
        public async Task <HttpResponseMessage> PostAdd()
        {
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
                //TODO: Redirigir a la vista principal.
            }

            var provider = new MultipartMemoryStreamProvider();

            try
            {
                // Read the form data.
                await Request.Content.ReadAsMultipartAsync(provider);

                var formItems = new List <FormItem>();

                // Scan the Multiple Parts
                foreach (HttpContent contentPart in provider.Contents)
                {
                    var formItem           = new FormItem();
                    var contentDisposition = contentPart.Headers.ContentDisposition;
                    formItem.name = contentDisposition.Name.Trim('"');
                    formItem.data = await contentPart.ReadAsByteArrayAsync();

                    formItem.fileName  = String.IsNullOrEmpty(contentDisposition.FileName) ? "" : contentDisposition.FileName.Trim('"');
                    formItem.mediaType = contentPart.Headers.ContentType == null ? "" : String.IsNullOrEmpty(contentPart.Headers.ContentType.MediaType) ? "" : contentPart.Headers.ContentType.MediaType;
                    formItems.Add(formItem);
                }

                var dto = new DtoPizza();
                foreach (var formItem in formItems)
                {
                    switch (formItem.name)
                    {
                    case "Name":
                        dto.Name = Encoding.UTF8.GetString(formItem.data);
                        break;

                    case "Picture":
                        if (!formItem.IsValid())
                        {
                            throw new CustomException(formItem.Errors);
                        }
                        dto.Picture   = formItem.data;
                        dto.FormItems = formItem;
                        break;

                    case "Ingredients":
                        var format = Encoding.UTF8.GetString(formItem.data);
                        dto.Ingredients = format.Split(',').Select(Int32.Parse).ToList();
                        break;
                    }
                }

                var pizza = _pizzaService.Add(dto);
                var obj   = new { Id    = pizza.Id, Name = pizza.Name,
                                  Image = String.Format("/api/pizza/{0}/image", pizza.Id) };

                var response = Request.CreateResponse(HttpStatusCode.Created, obj);
                return(response);
            }
            catch (System.Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }