public IHttpActionResult PostPickUpCost(PickUpCostWEB pickupCost) { // Получим все заголовки запроса: ShowAllHeaders(); // отправка статусного кода 400 if (pickupCost == null) { return(BadRequest()); } //---------- обработка частных случаев валидации ----------------->> // if (pickupCost.TownId.HasValue && pickupCost.TownId.Value <= 0) { ModelState.AddModelError("TownId", "Указанного города нет в списке."); } // Все ошибки валидаци сохраняются в объекте ModelState, который передается в метод BadRequest и, // таким образом, отправляется клиенту вместе с ошибкой 400. // if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // costService.PostPickUpCost() // try { Mapper.Initialize(cfg => cfg.CreateMap <PickUpCostWEB, PickUpCostDTO>()); var pickUpCostDTO = Mapper.Map <PickUpCostWEB, PickUpCostDTO>(pickupCost); pickupCost.Cost = CostService.PostPickUpCost(pickUpCostDTO); } catch (ValidationException x) { ModelState.AddModelError(x.Property, x.Message); return(BadRequest(ModelState)); } catch (Exception x) { ModelState.AddModelError("common", x.Message); return(BadRequest(ModelState)); } // //---------- обработка частных случаев валидации -----------------// //++ Add output data to Headers collection string s_output = string.Format("x-costService.PostAddServiceCost({0},{1},{2},{3},{4},{5},{6},{7})", pickupCost.TownId ?? pickupCost.TownId.Value, pickupCost.NotExistedTown, pickupCost.Oversized, pickupCost.Warmly, pickupCost.AfterHours, pickupCost.FixedTime, pickupCost.Idling, pickupCost.Discharge); System.Web.HttpContext.Current.Response.Headers.Add(s_output, pickupCost.Cost.ToString()); Trace.WriteLine(s_output + " = " + pickupCost.Cost); return(Ok(pickupCost.Cost)); }