[CompanyAuthorizationFilter]
[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]
public class TermSheetController : System.Web.Mvc.Controller
{
public ActionResult Notes(Guid? id, string notesText)
{
if (isModelValid(id))
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", notesText);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult SummaryInformation(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getSpecificViewPath(model) + "SummaryInformation.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult ProductLegs(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getSpecificViewPath(model) + "ProductLegs.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult AmortizationOptions(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getSpecificViewPath(model) + "AmortizationOptions.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult Values(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getSpecificViewPath(model) + "Values.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult Rates(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getSpecificViewPath(model) + "Rates.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult RatesSpecific(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getSpecificViewPath(model) + "RatesSpecific.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult AmortizationSchedule(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getSpecificViewPath(model) + "AmortizationSchedule.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult SponsorInfo(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getBaseViewPath() + "SponsorInfo.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult BorrowerInfo(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getBaseViewPath() + "BorrowerInfo.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult SponsorContacts(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getBaseViewPath() + "SponsorContacts.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult CashFlows(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getSpecificViewPath(model) + "CashFlows.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult PrePayment(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
if (string.IsNullOrEmpty(model.PrepaymentExport))
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Prepayment has not been calculated yet.");
}
else
{
return Json(model.PrepaymentExport);
}
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult FutureExposure(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
if (string.IsNullOrEmpty(model.ExposureExport))
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Potential Future Exposure has not been calculated yet.");
}
else
{
return Json(model.ExposureExport);
}
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult FutureExposureSpecific(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
if (string.IsNullOrEmpty(model.ExposureExport))
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Potential Future Exposure has not been calculated yet.");
}
else
{
return Json(model.ExposureExport);
}
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult History(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getBaseViewPath() + "History.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
public ActionResult ValuationHistoryGrid(Guid? id)
{
if (isModelValid(id))
{
ModelBase model = getModel(id.Value);
return View(getSpecificViewPath(model) + "ValuationHistoryGrid.aspx", model);
}
else
{
return View(@"~\Views\Indications\ShowAStringPartial.aspx", "", "Structure is not in a valid state. Could not render Term Sheet View.");
}
}
private bool isModelValid(Guid? id)
{
try
{
if (id.HasValue)
{
IndicationBase indication = CachedTransactionManager<IndicationBase>.GetCachedTransactions(id.Value);
if (indication.Model == null)
{
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}
catch (Exception e)
{
return false;
}
}
private ModelBase getModel(Guid id)
{
IndicationBase indication = CachedTransactionManager<IndicationBase>.GetCachedTransactions(id);
return indication.Model;
}
private string getSpecificViewPath(ModelBase model)
{
var viewPath = "";
if (model.GetType() == typeof(Chatham.Web.Models.Indications.SwapModel))
{
viewPath = @"~\Views\Indications\TermSheetViews\Swap\";
}
if (model.GetType() == typeof(Chatham.Web.Models.Indications.OptionModel))
{
viewPath = @"~\Views\Indications\TermSheetViews\Option\";
}
if (model.GetType() == typeof(Chatham.Web.Models.Indications.CollarModel))
{
viewPath = @"~\Views\Indications\TermSheetViews\Collar\";
}
if (model.GetType() == typeof(Chatham.Web.Models.Indications.CompoundSwapModel))
{
viewPath = @"~\Views\Indications\TermSheetViews\CompoundSwap\";
}
return viewPath;
}
private string getBaseViewPath()
{
return @"~\Views\Indications\TermSheetViews\";
}
}
Donc, juste en regardant le code, vous pouvez probablement dire ce qu'il fait. Chaque action du contrôleur fait référence à un résultat souhaité différent, et je passe (pour la plupart), un Guid? id
, et nous utilisons ce id
pour appeler dans les méthodes auxiliaires private
, obtenir le model
, et retourner un view
basé sur ce model
.Testez mon contrôleur MVC2
Je ne sais même pas par où commencer pour tester cette classe. Puis-je obtenir de l'aide ici? Merci!
Serais-je capable de se moquer CachedTransactionManager de retourner un modèle spécifique à moi à chaque fois au lieu d'utiliser l'injection de dépendance? – slandau
Correct. Avec une bibliothèque d'aide comme Moq, vous pouvez injecter l'objet mocké pour retourner un résultat spécifique à chaque fois. – Tejs