public static Common.Models.Leads.Lead Create( Transaction t, Common.Models.Leads.Lead model, Common.Models.Account.Users creator) { return(Create(model, creator, t.Connection, false)); }
public static Common.Models.Leads.Lead Close( Transaction t, Common.Models.Leads.Lead model, Common.Models.Account.Users modifier) { return(Close(model, modifier, t.Connection, false)); }
public ActionResult Edit(long id) { List <ViewModels.Leads.LeadStatusViewModel> leadStatusList = new List <ViewModels.Leads.LeadStatusViewModel>(); List <ViewModels.Leads.LeadSourceViewModel> leadSourceList = new List <ViewModels.Leads.LeadSourceViewModel>(); ViewModels.Leads.LeadViewModel viewModel = new ViewModels.Leads.LeadViewModel(); using (IDbConnection conn = Data.Database.Instance.GetConnection()) { Common.Models.Leads.Lead model = Mapper.Map <Common.Models.Leads.Lead>(Data.Leads.Lead.Get(id, conn, false)); // Has this already been made an opportunity? If so, redirect Common.Models.Opportunities.Opportunity op = Data.Opportunities.Opportunity.GetForLead(model.Id.Value); if (op != null) { return(new RedirectResult("/Opportunities/Edit/" + op.Id.Value.ToString())); } model.Contact = Mapper.Map <Common.Models.Contacts.Contact>(Data.Contacts.Contact.Get(model.Contact.Id.Value)); if (model.Fee != null) { model.Fee = Mapper.Map <Common.Models.Leads.LeadFee>(Data.Leads.LeadFee.Get(model.Fee.Id.Value, conn, false)); if (model.Fee.To != null) { model.Fee.To = Mapper.Map <Common.Models.Contacts.Contact>(Data.Contacts.Contact.Get(model.Fee.To.Id.Value)); } } 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)); }); viewModel = Mapper.Map <ViewModels.Leads.LeadViewModel>(model); viewModel.Contact = Mapper.Map <ViewModels.Contacts.ContactViewModel>(model.Contact); viewModel.Fee = Mapper.Map <ViewModels.Leads.LeadFeeViewModel>(model.Fee); if (model.Fee != null) { viewModel.Fee.To = Mapper.Map <ViewModels.Contacts.ContactViewModel>(model.Fee.To); } else { viewModel.Fee = new ViewModels.Leads.LeadFeeViewModel(); viewModel.Fee.To = new ViewModels.Contacts.ContactViewModel(); } } ViewBag.LeadStatusList = leadStatusList; ViewBag.LeadSourceList = leadSourceList; return(View(viewModel)); }
public static Common.Models.Leads.Lead Edit( Common.Models.Leads.Lead model, Common.Models.Account.Users modifier, IDbConnection conn = null, bool closeConnection = true) { model.ModifiedBy = modifier; model.Modified = DateTime.UtcNow; DBOs.Leads.Lead dbo = Mapper.Map <DBOs.Leads.Lead>(model); conn = DataHelper.OpenIfNeeded(conn); conn.Execute("UPDATE \"lead\" SET " + "\"status_id\"=@StatusId, \"contact_id\"=@ContactId, \"source_id\"=@SourceId, \"fee_id\"=@FeeId, \"closed\"=@Closed, \"details\"=@Details, \"utc_modified\"=@UtcModified, \"modified_by_user_pid\"=@ModifiedByUserPId " + "WHERE \"id\"=@Id", dbo); DataHelper.Close(conn, closeConnection); return(model); }
public ActionResult Edit(long id, ViewModels.Leads.LeadViewModel 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); Common.Models.Leads.Lead oldLead = Data.Leads.Lead.Get(trans, id); model = Mapper.Map <Common.Models.Leads.Lead>(viewModel); //model.Source = Mapper.Map<Common.Models.Leads.LeadSource>(viewModel.Source); model.Fee = Mapper.Map <Common.Models.Leads.LeadFee>(viewModel.Fee); if (oldLead.Fee != null) { model.Fee = Data.Leads.LeadFee.Edit(trans, model.Fee, currentUser); } else { model.Fee = Data.Leads.LeadFee.Create(trans, model.Fee, currentUser); } //model.Source = Data.Leads.LeadSource.Edit(trans, model.Source, currentUser); model = Data.Leads.Lead.Edit(trans, model, currentUser); trans.Commit(); return(RedirectToAction("Details", new { Id = id })); } catch (Exception ex) { trans.Rollback(); return(Edit(id)); } } }
public static Common.Models.Leads.Lead Create( Common.Models.Leads.Lead model, Common.Models.Account.Users creator, IDbConnection conn = null, bool closeConnection = true) { model.CreatedBy = model.ModifiedBy = creator; model.Created = model.Modified = DateTime.UtcNow; DBOs.Leads.Lead dbo = Mapper.Map <DBOs.Leads.Lead>(model); conn = DataHelper.OpenIfNeeded(conn); if (conn.Execute("INSERT INTO \"lead\" (\"status_id\", \"contact_id\", \"source_id\", \"fee_id\", \"utc_created\", \"utc_modified\", \"created_by_user_pid\", \"modified_by_user_pid\") " + "VALUES (@StatusId, @ContactId, @SourceId, @FeeId, @UtcCreated, @UtcModified, @CreatedByUserPId, @ModifiedByUserPId)", dbo) > 0) { model.Id = conn.Query <DBOs.Leads.Lead>("SELECT currval(pg_get_serial_sequence('lead', 'id')) AS \"id\"").Single().Id; } DataHelper.Close(conn, closeConnection); return(model); }
public ActionResult Convert(long id, ViewModels.Opportunities.CreateOpportunityViewModel viewModel) { Common.Models.Account.Users currentUser; Common.Models.Opportunities.Opportunity opportunity; Common.Models.Matters.Matter matter; using (Data.Transaction trans = Data.Transaction.Create(true)) { try { Common.Models.Leads.Lead lead; currentUser = Data.Account.Users.Get(trans, User.Identity.Name); Common.Models.Leads.Lead oldLead = Data.Leads.Lead.Get(trans, viewModel.Opportunity.Lead.Id.Value); lead = Mapper.Map <Common.Models.Leads.Lead>(viewModel.Opportunity.Lead); lead.Fee = Mapper.Map <Common.Models.Leads.LeadFee>(viewModel.Opportunity.Lead.Fee); if (oldLead.Fee != null) { lead.Fee = Data.Leads.LeadFee.Edit(trans, lead.Fee, currentUser); } else { lead.Fee = Data.Leads.LeadFee.Create(trans, lead.Fee, currentUser); } lead = Data.Leads.Lead.Edit(trans, lead, currentUser); matter = Mapper.Map <Common.Models.Matters.Matter>(viewModel.Matter); matter = Data.Matters.Matter.Create(trans, matter, currentUser); viewModel.Opportunity.Id = id; viewModel.Opportunity.Matter = new ViewModels.Matters.MatterViewModel() { Id = matter.Id }; opportunity = Mapper.Map <Common.Models.Opportunities.Opportunity>(viewModel.Opportunity); // Check the probability, is it percent or decimal? if (opportunity.Probability.HasValue && opportunity.Probability.Value > 1) { opportunity.Probability = opportunity.Probability.Value / 100; } opportunity = Data.Opportunities.Opportunity.Edit(trans, opportunity, currentUser); // Assign Contacts if (viewModel.Contact1 != null && viewModel.Contact1.Contact != null && viewModel.Contact1.Contact.Id.HasValue) { Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact1); mc.Matter = matter; Data.Matters.MatterContact.Create(trans, mc, currentUser); } if (viewModel.Contact2 != null && viewModel.Contact2.Contact != null && viewModel.Contact2.Contact.Id.HasValue) { Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact2); mc.Matter = matter; Data.Matters.MatterContact.Create(trans, mc, currentUser); } if (viewModel.Contact3 != null && viewModel.Contact3.Contact != null && viewModel.Contact3.Contact.Id.HasValue) { Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact3); mc.Matter = matter; Data.Matters.MatterContact.Create(trans, mc, currentUser); } if (viewModel.Contact4 != null && viewModel.Contact4.Contact != null && viewModel.Contact4.Contact.Id.HasValue) { Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact4); mc.Matter = matter; Data.Matters.MatterContact.Create(trans, mc, currentUser); } if (viewModel.Contact5 != null && viewModel.Contact5.Contact != null && viewModel.Contact5.Contact.Id.HasValue) { Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact5); mc.Matter = matter; Data.Matters.MatterContact.Create(trans, mc, currentUser); } if (viewModel.Contact6 != null && viewModel.Contact6.Contact != null && viewModel.Contact6.Contact.Id.HasValue) { Common.Models.Matters.MatterContact mc = Mapper.Map <Common.Models.Matters.MatterContact>(viewModel.Contact6); mc.Matter = matter; Data.Matters.MatterContact.Create(trans, mc, currentUser); } trans.Commit(); return(RedirectToAction("Details", "Matters", new { Id = matter.Id })); } catch (Exception ex) { trans.Rollback(); return(Edit(id)); } } }
public ActionResult Edit(long id, ViewModels.Opportunities.OpportunityViewModel viewModel) { Common.Models.Account.Users currentUser; Common.Models.Opportunities.Opportunity model; using (Data.Transaction trans = Data.Transaction.Create(true)) { try { Common.Models.Leads.Lead lead; currentUser = Data.Account.Users.Get(trans, User.Identity.Name); Common.Models.Leads.Lead oldLead = Data.Leads.Lead.Get(trans, viewModel.Lead.Id.Value); lead = Mapper.Map <Common.Models.Leads.Lead>(viewModel.Lead); lead.Fee = Mapper.Map <Common.Models.Leads.LeadFee>(viewModel.Lead.Fee); if (oldLead.Fee != null) { lead.Fee = Data.Leads.LeadFee.Edit(trans, lead.Fee, currentUser); } else { lead.Fee = Data.Leads.LeadFee.Create(trans, lead.Fee, currentUser); } lead = Data.Leads.Lead.Edit(trans, lead, currentUser); model = Mapper.Map <Common.Models.Opportunities.Opportunity>(viewModel); // Check the probability, is it percent or decimal? if (model.Probability.HasValue && model.Probability.Value > 1) { model.Probability = model.Probability.Value / 100; } model = Data.Opportunities.Opportunity.Edit(trans, model, currentUser); // Add new contacts viewModel.Contacts.ForEach(x => { if (x.Id.HasValue) { Common.Models.Opportunities.OpportunityContact oc = new Common.Models.Opportunities.OpportunityContact() { Contact = Mapper.Map <Common.Models.Contacts.Contact>(x), Opportunity = model }; oc = Data.Opportunities.OpportunityContact.Create(trans, oc, currentUser); } }); // Handle deletions Data.Opportunities.OpportunityContact.ListForOpportunity(trans, model.Id.Value).ForEach(x => { if (!viewModel.Contacts.Any(vm => { if (vm.Id.HasValue) { return(vm.Id.Value == x.Contact.Id.Value); } return(false); })) { Data.Opportunities.OpportunityContact.Disable(trans, x, currentUser); } }); trans.Commit(); return(RedirectToAction("Details", new { Id = id })); } catch (Exception ex) { trans.Rollback(); return(Edit(id)); } } }
public ActionResult Convert(long id, ViewModels.Leads.LeadConvertViewModel viewModel) { Common.Models.Account.Users currentUser; Common.Models.Opportunities.Opportunity model; using (Data.Transaction trans = Data.Transaction.Create(true)) { try { currentUser = Data.Account.Users.Get(trans, User.Identity.Name); Common.Models.Leads.Lead oldLead = Data.Leads.Lead.Get(trans, id); model = Mapper.Map <Common.Models.Opportunities.Opportunity>(viewModel.Opportunity); model.Lead = Mapper.Map <Common.Models.Leads.Lead>(viewModel.Opportunity.Lead); //model.Lead.Source = Mapper.Map<Common.Models.Leads.LeadSource>(viewModel.Lead.Source); model.Lead.Fee = Mapper.Map <Common.Models.Leads.LeadFee>(viewModel.Opportunity.Lead.Fee); if (oldLead.Fee != null) { model.Lead.Fee = Data.Leads.LeadFee.Edit(trans, model.Lead.Fee, currentUser); } else { model.Lead.Fee = Data.Leads.LeadFee.Create(trans, model.Lead.Fee, currentUser); } //model.Lead.Source = Data.Leads.LeadSource.Edit(trans, model.Lead.Source, currentUser); model.Lead = Data.Leads.Lead.Edit(trans, model.Lead, currentUser); // Check the probability, is it percent or decimal? if (model.Probability.HasValue && model.Probability.Value > 1) { model.Probability = model.Probability.Value / 100; } model = Data.Opportunities.Opportunity.Create(trans, model, currentUser); // Contacts involved if (viewModel.Contact1 != null & viewModel.Contact1.Id.HasValue) { Common.Models.Opportunities.OpportunityContact oc = new Common.Models.Opportunities.OpportunityContact() { Opportunity = new Common.Models.Opportunities.Opportunity() { Id = model.Id.Value }, Contact = Mapper.Map <Common.Models.Contacts.Contact>(viewModel.Contact1) }; Data.Opportunities.OpportunityContact.Create(trans, oc, currentUser); } if (viewModel.Contact2 != null & viewModel.Contact2.Id.HasValue) { Common.Models.Opportunities.OpportunityContact oc = new Common.Models.Opportunities.OpportunityContact() { Opportunity = new Common.Models.Opportunities.Opportunity() { Id = model.Id.Value }, Contact = Mapper.Map <Common.Models.Contacts.Contact>(viewModel.Contact2) }; Data.Opportunities.OpportunityContact.Create(trans, oc, currentUser); } if (viewModel.Contact3 != null & viewModel.Contact3.Id.HasValue) { Common.Models.Opportunities.OpportunityContact oc = new Common.Models.Opportunities.OpportunityContact() { Opportunity = new Common.Models.Opportunities.Opportunity() { Id = model.Id.Value }, Contact = Mapper.Map <Common.Models.Contacts.Contact>(viewModel.Contact3) }; Data.Opportunities.OpportunityContact.Create(trans, oc, currentUser); } if (viewModel.Contact4 != null & viewModel.Contact4.Id.HasValue) { Common.Models.Opportunities.OpportunityContact oc = new Common.Models.Opportunities.OpportunityContact() { Opportunity = new Common.Models.Opportunities.Opportunity() { Id = model.Id.Value }, Contact = Mapper.Map <Common.Models.Contacts.Contact>(viewModel.Contact4) }; Data.Opportunities.OpportunityContact.Create(trans, oc, currentUser); } if (viewModel.Contact5 != null & viewModel.Contact5.Id.HasValue) { Common.Models.Opportunities.OpportunityContact oc = new Common.Models.Opportunities.OpportunityContact() { Opportunity = new Common.Models.Opportunities.Opportunity() { Id = model.Id.Value }, Contact = Mapper.Map <Common.Models.Contacts.Contact>(viewModel.Contact5) }; Data.Opportunities.OpportunityContact.Create(trans, oc, currentUser); } if (viewModel.Contact6 != null & viewModel.Contact6.Id.HasValue) { Common.Models.Opportunities.OpportunityContact oc = new Common.Models.Opportunities.OpportunityContact() { Opportunity = new Common.Models.Opportunities.Opportunity() { Id = model.Id.Value }, Contact = Mapper.Map <Common.Models.Contacts.Contact>(viewModel.Contact6) }; Data.Opportunities.OpportunityContact.Create(trans, oc, currentUser); } if (viewModel.Contact7 != null & viewModel.Contact7.Id.HasValue) { Common.Models.Opportunities.OpportunityContact oc = new Common.Models.Opportunities.OpportunityContact() { Opportunity = new Common.Models.Opportunities.Opportunity() { Id = model.Id.Value }, Contact = Mapper.Map <Common.Models.Contacts.Contact>(viewModel.Contact7) }; Data.Opportunities.OpportunityContact.Create(trans, oc, currentUser); } if (viewModel.Contact8 != null & viewModel.Contact8.Id.HasValue) { Common.Models.Opportunities.OpportunityContact oc = new Common.Models.Opportunities.OpportunityContact() { Opportunity = new Common.Models.Opportunities.Opportunity() { Id = model.Id.Value }, Contact = Mapper.Map <Common.Models.Contacts.Contact>(viewModel.Contact8) }; Data.Opportunities.OpportunityContact.Create(trans, oc, currentUser); } if (viewModel.Contact9 != null & viewModel.Contact9.Id.HasValue) { Common.Models.Opportunities.OpportunityContact oc = new Common.Models.Opportunities.OpportunityContact() { Opportunity = new Common.Models.Opportunities.Opportunity() { Id = model.Id.Value }, Contact = Mapper.Map <Common.Models.Contacts.Contact>(viewModel.Contact9) }; Data.Opportunities.OpportunityContact.Create(trans, oc, currentUser); } if (viewModel.Contact10 != null & viewModel.Contact10.Id.HasValue) { Common.Models.Opportunities.OpportunityContact oc = new Common.Models.Opportunities.OpportunityContact() { Opportunity = new Common.Models.Opportunities.Opportunity() { Id = model.Id.Value }, Contact = Mapper.Map <Common.Models.Contacts.Contact>(viewModel.Contact10) }; Data.Opportunities.OpportunityContact.Create(trans, oc, currentUser); } trans.Commit(); return(RedirectToAction("Details", "Opportunities", new { Id = model.Id })); } catch (Exception ex) { trans.Rollback(); return(Edit(id)); } } }