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 ActionResult Close(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); model = Mapper.Map <Common.Models.Leads.Lead>(viewModel); Data.Leads.Lead.Close(trans, model, currentUser); trans.Commit(); return(RedirectToAction("Index")); } catch (Exception ex) { trans.Rollback(); return(Edit(id)); } } }
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 ActionResult Index() { int colorKeeper = -1; string contactFilter, sourceFilter; int? sourceTypeFilter = null, statusTypeFilter = null; bool? closedFilter = null; ViewModels.Leads.DashboardViewModel viewModel = new ViewModels.Leads.DashboardViewModel(); System.Drawing.Color[] availableColors = new System.Drawing.Color[] { System.Drawing.Color.FromArgb(228, 26, 28), System.Drawing.Color.FromArgb(55, 126, 184), System.Drawing.Color.FromArgb(77, 175, 74), System.Drawing.Color.FromArgb(152, 78, 163), System.Drawing.Color.FromArgb(255, 127, 0), System.Drawing.Color.FromArgb(166, 86, 40), System.Drawing.Color.FromArgb(247, 129, 191), }; ViewModels.ChartJSViewModel chartLeadSourceVM, chartLeadConversionVM; contactFilter = Request["contactFilter"]; sourceFilter = Request["sourceFilter"]; if (!string.IsNullOrEmpty(Request["sourceTypeFilter"])) { int i; if (int.TryParse(Request["sourceTypeFilter"], out i)) { sourceTypeFilter = i; } } if (!string.IsNullOrEmpty(Request["statusTypeFilter"])) { int i; if (int.TryParse(Request["statusTypeFilter"], out i)) { statusTypeFilter = i; } } if (!string.IsNullOrEmpty(Request["closedFilter"])) { if (Request["closedFilter"] != "Both") { bool i; if (bool.TryParse(Request["closedFilter"], out i)) { closedFilter = i; } } } else { closedFilter = false; } chartLeadSourceVM = new ViewModels.ChartJSViewModel() { type = "pie" }; chartLeadSourceVM.data.datasets.Add(new ViewModels.ChartJSViewModel.Dataset()); chartLeadConversionVM = new ViewModels.ChartJSViewModel() { type = "bar" }; using (IDbConnection conn = Data.Database.Instance.GetConnection()) { viewModel.Leads = new List <ViewModels.Leads.LeadViewModel>(); viewModel.StatusTypes = new List <ViewModels.Leads.LeadStatusViewModel>(); viewModel.SourceTypes = new List <ViewModels.Leads.LeadSourceTypeViewModel>(); Data.Leads.LeadSourceType.List(conn, false).ForEach(x => { viewModel.SourceTypes.Add(Mapper.Map <ViewModels.Leads.LeadSourceTypeViewModel>(x)); }); Data.Leads.LeadStatus.List(conn, false).ForEach(x => { viewModel.StatusTypes.Add(Mapper.Map <ViewModels.Leads.LeadStatusViewModel>(x)); }); Data.Leads.Lead.List(contactFilter, sourceFilter, sourceTypeFilter, statusTypeFilter, closedFilter, conn, false).ForEach(x => { ViewModels.Leads.LeadViewModel lvm = Mapper.Map <ViewModels.Leads.LeadViewModel>(x); lvm.Contact = Mapper.Map <ViewModels.Contacts.ContactViewModel>(Data.Contacts.Contact.Get(x.Contact.Id.Value)); lvm.Status = Mapper.Map <ViewModels.Leads.LeadStatusViewModel>(Data.Leads.LeadStatus.Get(x.Status.Id.Value)); lvm.Source = Mapper.Map <ViewModels.Leads.LeadSourceViewModel>(Data.Leads.LeadSource.Get(x.Source.Id.Value)); viewModel.Leads.Add(lvm); }); Data.Leads.Lead.LeadsBySource(DateTime.UtcNow.AddDays(-30), conn, false).ForEach(x => { colorKeeper++; if (colorKeeper >= availableColors.Length) { colorKeeper = 0; } chartLeadSourceVM.data.labels.Add(x.Title); chartLeadSourceVM.data.datasets[0].backgroundColor.Add("rgba(" + availableColors[colorKeeper].R + ", " + availableColors[colorKeeper].G + ", " + availableColors[colorKeeper].B + ", 1)"); chartLeadSourceVM.data.datasets[0].data.Add(x.Count.Value); //chartVM.data.datasets[0].borderWidth = "1"; }); colorKeeper = -1; ViewModels.ChartJSViewModel.Dataset ds = new ViewModels.ChartJSViewModel.Dataset(); Data.Opportunities.Opportunity.ListSinceGroupingByMonth(DateTime.UtcNow.AddYears(-1), conn, false).ForEach(x => { colorKeeper++; if (colorKeeper >= availableColors.Length) { colorKeeper = 0; } chartLeadConversionVM.data.labels.Add(x.Month.Value.ToString("MMM")); ds.backgroundColor.Add("rgba(" + availableColors[colorKeeper].R + ", " + availableColors[colorKeeper].G + ", " + availableColors[colorKeeper].B + ", 1)"); //ds.label = x.Month.Value.ToString("MMM"); ds.data.Add(x.Count.Value); }); chartLeadConversionVM.data.datasets.Add(ds); chartLeadConversionVM.options.scales = new ViewModels.ChartJSViewModel.Options.Scales(); chartLeadConversionVM.options.scales.yAxes = new List <ViewModels.ChartJSViewModel.Options.Scales.Axes>(); chartLeadConversionVM.options.scales.yAxes.Add(new ViewModels.ChartJSViewModel.Options.Scales.Axes() { ticks = new ViewModels.ChartJSViewModel.Options.Scales.Axes.Ticks() { beginAtZero = true } }); } ViewBag.LeadSourceGraphData = Newtonsoft.Json.JsonConvert.SerializeObject(chartLeadSourceVM, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings() { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore }); ViewBag.LeadConversionGraphData = Newtonsoft.Json.JsonConvert.SerializeObject(chartLeadConversionVM, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings() { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore }); return(View(viewModel)); }