public JsonResult Detail(SelectedRemovalId criteria) { RemovalInfo model = new RemovalInfo(); try { model.RemovalNote = _tubeSampleService.GetRemovalInfo(criteria.RemovalId); } catch (BusinessException exception) { _logger.DebugFormat("BusinessException: {0}-{1}", exception.ErrorCode, exception.Message); model.ErrorCode = exception.ErrorCode; model.ErrorDescription = exception.Message; } catch (Exception exception) { _logger.Error(string.Format("Iternal error {0}", exception)); model.ErrorCode = ErrorCode.InternalErrorException; model.ErrorDescription = CommonUtils.GetEnumDescription(ErrorCode.InternalErrorException); } return(Json(model)); }
public RemovalInfo(int subRemoveCounts) { m_IfRemoved = new RemovalInfo[subRemoveCounts]; }
public void SetIfRemoved(int i, RemovalInfo info) { m_IfRemoved[i] = info; if (info.m_bCanRemove) m_bCanRemove = true; info.m_Parent = this; }
protected RemovalInfo RecursiveRemoveableChecks(Matrix m, bool bThoroughComparison) { if (m.Rank == m.Columns - 1) { Fraction[] vals = m.getVariableValues(); bool AllPositive = true; for (int j = 0; j < vals.Length; j++) if (vals[j] < 0 && !m.m_CanGoNegative[j]) { AllPositive = false; break; } if (AllPositive) return new RemovalInfo(true); else return new RemovalInfo(false); } else if (m.Rank < m.Columns - 1) { bool[] removeables = m.ColumnsRemoveable(); RemovalInfo ret = new RemovalInfo(m.Columns - 1); for (int i = 0; i < removeables.Length; i++) { bool found = false; if (!removeables[i] || (!bThoroughComparison && found)) ret.m_IfRemoved[i] = new RemovalInfo(false); else { Matrix OneColRemoved = m.RemoveColumn(i); ret.SetIfRemoved(i, RecursiveRemoveableChecks(OneColRemoved, bThoroughComparison)); } } return ret; } else return new RemovalInfo(false); //If we call this on a matrix with too high Rank, it's not solveable (And so nothing is removeable) }