public async Task <ActionResult> GetRepairOrders(string shipmentOrderId)
        {
            var manager = new RepairOrderManager(User);
            var result  = await manager.GetRepairOrders(shipmentOrderId);

            var repairOrders = result.Select(r =>
            {
                return(Mapper.Map <RepairOrder, RepairOrderViewModel>(r));
            });

            return(Json(true, string.Empty, repairOrders));
        }
        public async Task <ActionResult> Delete(string id)
        {
            var manager     = new RepairOrderManager(User);
            var repairOrder = await manager.GetRepairOrder(id);

            var shipmentOrderId = repairOrder.ShipmentOrderId;
            var difference      = -repairOrder.TotalAmount;
            var result          = await manager.DeleteAsync(repairOrder);

            if (result.Succeeded)
            {
                await UpdateShipmentOrderTotalAmount(shipmentOrderId, difference);
            }
            return(Json(result));
        }
        public async Task <JsonResult> Create(RepairOrderViewModel request)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false, data: ErrorToDictionary()));
            }

            var repairOrder = Mapper.Map <RepairOrderViewModel, RepairOrder>(request);

            var manager = new RepairOrderManager(User);
            var result  = await manager.CreateRepairOrder(repairOrder);

            if (result.Succeeded)
            {
                await UpdateShipmentOrderTotalAmount(request.ShipmentOrderId, repairOrder.TotalAmount);
            }
            return(Json(result));
        }