public DomainObjects.Portfolio.Portfolio Create(string email, int advisorId, decimal price, string name, string description, double projectionValue, double?optimisticProjection, double?pessimisticProjection, Dictionary <int, double> distribution) { var advisor = AdvisorBusiness.GetWithOwner(advisorId, email); if (advisor == null) { throw new ArgumentException("Invalid advisor."); } var risk = GetRisk(projectionValue, distribution); var advisorDetail = AdvisorDetailBusiness.GetForAutoEnabled(advisorId); var portfolio = new DomainObjects.Portfolio.Portfolio(); portfolio.AdvisorId = advisorId; portfolio.CreationDate = DateTime.UtcNow; using (var transaction = new TransactionalDapperCommand()) { transaction.Insert(portfolio); var detail = PortfolioDetailBusiness.SetNew(portfolio.Id, price, name, description, true); transaction.Insert(detail); var projection = ProjectionBusiness.SetNew(portfolio.Id, projectionValue, risk, optimisticProjection, pessimisticProjection); transaction.Insert(projection); var distributions = DistributionBusiness.SetNew(projection.Id, distribution); foreach (Distribution dist in distributions) { transaction.Insert(dist); } portfolio.ProjectionId = projection.Id; transaction.Update(portfolio); if (advisorDetail != null) { advisorDetail = AdvisorDetailBusiness.SetNew(advisorId, advisorDetail.Name, advisorDetail.Description, true); transaction.Insert(advisorDetail); } projection.Distribution = distributions; portfolio.Projection = projection; portfolio.Detail = detail; transaction.Commit(); } return(portfolio); }
public AdvisorDetail DisableAdvisor(string email, int advisorId) { return(AdvisorDetailBusiness.Disable(email, advisorId)); }
public AdvisorDetail UpdateAdvisor(string email, int advisorId, string name, string description) { return(AdvisorDetailBusiness.Create(email, advisorId, name, description)); }