public ActionResult Create() { ViewModels.Leads.CreateLeadViewModel viewModel = new ViewModels.Leads.CreateLeadViewModel(); List <ViewModels.Leads.LeadStatusViewModel> leadStatusList = new List <ViewModels.Leads.LeadStatusViewModel>(); List <ViewModels.Leads.LeadSourceViewModel> leadSourceList = new List <ViewModels.Leads.LeadSourceViewModel>(); List <ViewModels.Leads.LeadSourceTypeViewModel> leadSourceTypeList = new List <ViewModels.Leads.LeadSourceTypeViewModel>(); using (IDbConnection conn = Data.Database.Instance.GetConnection()) { // Leads are external to organization viewModel.Contact = new ViewModels.Contacts.ContactViewModel() { IsOurEmployee = false }; Data.Leads.LeadStatus.List(conn, false).ForEach(x => { leadStatusList.Add(Mapper.Map <ViewModels.Leads.LeadStatusViewModel>(x)); }); Data.Leads.LeadSource.List(conn, false).ForEach(x => { leadSourceList.Add(Mapper.Map <ViewModels.Leads.LeadSourceViewModel>(x)); }); Data.Leads.LeadSourceType.List(conn, false).ForEach(x => { leadSourceTypeList.Add(Mapper.Map <ViewModels.Leads.LeadSourceTypeViewModel>(x)); }); } ViewBag.LeadStatusList = leadStatusList; ViewBag.LeadSourceList = leadSourceList; ViewBag.LeadSourceTypeList = leadSourceTypeList; return(View()); }
public ActionResult Create(ViewModels.Leads.CreateLeadViewModel viewModel) { Common.Models.Account.Users currentUser; Common.Models.Leads.Lead model; using (Data.Transaction trans = Data.Transaction.Create(true)) { try { currentUser = Data.Account.Users.Get(trans, User.Identity.Name); // Existing v. New checks if (viewModel.ExistingContactId.HasValue) { viewModel.Contact.Id = viewModel.ExistingContactId; } if (viewModel.ExistingSourceId.HasValue) { viewModel.Source.Id = viewModel.ExistingSourceId; } if (viewModel.ExistingSourceContactId.HasValue) { viewModel.Source.Contact.Id = viewModel.ExistingSourceContactId; } if (viewModel.ExistingFeeToId.HasValue) { viewModel.Fee.To.Id = viewModel.ExistingFeeToId; } model = Mapper.Map <Common.Models.Leads.Lead>((ViewModels.Leads.LeadViewModel)viewModel); if (!viewModel.ExistingContactId.HasValue) { model.Contact = Mapper.Map <Common.Models.Contacts.Contact>(viewModel.Contact); model.Contact = Data.Contacts.Contact.Create(trans, model.Contact, currentUser); } if (!viewModel.ExistingSourceId.HasValue) { model.Source = Mapper.Map <Common.Models.Leads.LeadSource>(viewModel.Source); model.Source = Data.Leads.LeadSource.Create(trans, model.Source, currentUser); } if (!viewModel.ExistingFeeToId.HasValue) { model.Fee = Mapper.Map <Common.Models.Leads.LeadFee>(viewModel.Fee); model.Fee = Data.Leads.LeadFee.Create(trans, model.Fee, currentUser); } model = Data.Leads.Lead.Create(trans, model, currentUser); trans.Commit(); return(RedirectToAction("Details", new { Id = model.Id.Value })); } catch (Exception ex) { trans.Rollback(); return(RedirectToAction("Create")); } } }