public async Task <Mo> ProcessMo(string id, bool isSpecialProject, string[] chassisNumbers) { // TODO validation of chassis model and body type if there is an existing entry in the takt time table if (chassisNumbers.Length == 0) { throw new AppBusinessException("InvalidChassis", "Unable to process MO without chassis numbers specified"); } var mo = await _moResource.GetMo(id); mo.Status = MoStatus.InProgress; mo.IsSpecialProject = isSpecialProject; await _moResource.UpdateMo(mo); foreach (var c in chassisNumbers) { var chassis = await _moResource.GetChassisDetails(c); chassis.IsPrinted = true; chassis.PrintDateTime = DateTime.UtcNow; await _moResource.UpdateChassis(chassis); } return(mo); // TODO signalR printing }