Beispiel #1
0
        public IHttpActionResult PostWorkOrder([FromBody] WorkOrderCompletionRequest workOrderCompletionRequest)
        {
            if (workOrderCompletionRequest == null)
            {
                return(BadRequest(ModelState));
            }

            var workOrderDto = workOrderCompletionRequest.WorkOrder;

            //var toEmail = workOrderCompletionRequest.toEmail;

            if (!ModelState.IsValid || string.IsNullOrWhiteSpace(workOrderDto?.WorkOrderNumber))
            {
                return(BadRequest(ModelState));
            }

            var userCompany = GetCurrentUserCompany();

            if (userCompany != null)
            {
                workOrderDto.CreatedForCompanyId = userCompany.Id;
            }

            var workOrder = Mapper.Map <WorkOrder>(workOrderDto);
            //var workOrder = workOrderDto.ToEntity();


            var workOrderFromDb = workOrderRepo.TryGetMatchingWorkOrderFromDb(workOrder);


            if (workOrderFromDb != null && workOrderFromDb.Id > 0)  //If work order already exists
            {
                UpdateWorkOrder(workOrderFromDb, workOrderDto);
            }
            else
            {
                workOrderDto = AddNewWorkOrder(workOrder);
            }

            InventoryReportHelper.GenerateAndSendInventoryReportForWorkOrder(workOrderDto, userCompany.Email);
            //InventoryReportHelper.GenerateAndSendInventoryReportForWorkOrder(workOrderDto, toEmail);

            return(Json(workOrderDto));
            //return CreatedAtRoute("DefaultApi", new { id = workOrder.Id }, workOrder);
        }