public ActionResult Post([FromBody] ViewModel.Api.WorkOrder viewmodel)
        {
            MapperHelpers.ClientTimeZoneInfo = _clientTimeZoneInfo;

            var workOrder = map.Map <ViewModel.Api.WorkOrder, Domain.WorkOrder>(viewmodel);

            workOrder.Employer     = Employer;
            workOrder.EmployerID   = Employer.ID;
            workOrder.onlineSource = true;
            Domain.WorkOrder newOrder;
            try {
                newOrder = serv.Create(workOrder, Employer.email ?? Employer.name);
            }
            catch (MacheteValidationException e)
            {
                var res = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content      = new StringContent(e.ErrorMessage),
                    ReasonPhrase = "Validation failed on workOrder"
                };
                return(BadRequest(res));
            } catch (InvalidOperationException e)
            {
                var res = new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content      = new StringContent(e.Message),
                    ReasonPhrase = "Invalid operation "
                };
                return(BadRequest(res));
            }
            ViewModel.Api.WorkOrder result = map.Map <Domain.WorkOrder, ViewModel.Api.WorkOrder>(newOrder);
            return(new JsonResult(new { data = result }));
        }
Exemple #2
0
        public IHttpActionResult Post([FromBody] ViewModel.WorkOrder order)
        {
            var domain = map.Map <ViewModel.WorkOrder, Domain.WorkOrder>(order);

            domain.EmployerID   = employer.ID;
            domain.onlineSource = true;
            Domain.WorkOrder newOrder = null;
            try {
                newOrder = serv.Create(domain, employer.email ?? employer.name);
            }
            catch (MacheteValidationException e)
            {
                var res = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content      = new StringContent(e.ErrorMessage),
                    ReasonPhrase = "Validation failed on workorder"
                };
                throw new HttpResponseException(res);
            } catch (InvalidOperationException e)
            {
                var res = new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content      = new StringContent(e.Message),
                    ReasonPhrase = "Invalid operation "
                };
                throw new HttpResponseException(res);
            }
            var result = map.Map <Domain.WorkOrder, ViewModel.WorkOrder>(newOrder);

            return(Json(new { data = result }));
        }
        public new ActionResult <WorkOrderVM> Post([FromBody] WorkOrderVM viewmodel)
        {
            MapperHelpers.ClientTimeZoneInfo = _clientTimeZoneInfo;
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var workOrder = map.Map <WorkOrderVM, WorkOrder>(viewmodel);

            workOrder.Employer     = Employer;
            workOrder.EmployerID   = Employer.ID;
            workOrder.onlineSource = true;
            WorkOrder newOrder;

            try {
                newOrder = serv.Create(workOrder, Employer.email ?? Employer.name);
            }
            catch (MacheteValidationException e)
            {
                var res = new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    Content      = new StringContent(e.ErrorMessage),
                    ReasonPhrase = "Validation failed on workOrder"
                };
                return(BadRequest(res));
            } catch (InvalidOperationException e)
            {
                var res = new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    Content      = new StringContent(e.Message),
                    ReasonPhrase = "Invalid operation "
                };
                return(BadRequest(res));
            }
            WorkOrderVM result = map.Map <WorkOrder, WorkOrderVM>(newOrder);

            return(CreatedAtAction(nameof(Get), new { result.id }, new { data = result }));
        }