public ActionResult Create(LeadViewModel leadViewModel)
        {
            var lead = new Lead();

            lead.Company = leadViewModel.Company;
            lead.ExpectedValue = leadViewModel.ExpectedValue;
            lead.ProbabilityOfSale = leadViewModel.ProbabilityOfSale;
            lead.Status = new Tuple<int, string>(leadViewModel.Status, "");
            lead.NextFollowUp = leadViewModel.NextFollowUp;
            lead.StreetAddress = leadViewModel.StreetAddress;
            lead.City = leadViewModel.City;
            lead.State = leadViewModel.State;
            lead.Zip = leadViewModel.Zip;
            lead.Country = leadViewModel.Country;

            if (leadViewModel.LeadContacts != null && leadViewModel.LeadContacts.Any())
                lead.Contacts = leadViewModel.LeadContacts.ToDictionary(k => k.Value, v => v.Value.ToString());

            if (leadViewModel.LeadOwners != null && leadViewModel.LeadOwners.Any())
                lead.LeadOwners = leadViewModel.LeadOwners.ToDictionary(k => k.Value, v => v.Value.ToString());

            int itemId = lead.CreateLead(lead);

            return RedirectToAction("Index");
        }
        public ActionResult Create()
        {
            var lead = new Lead();

            var spaceContacts = lead.GetSpaceContacts();
            var spaceUsers = lead.GetUsers();
            var statuses = lead.GetAllStatuses();
            var leadContactsItems = spaceContacts.Select(x => new SelectListItem { Text = x.Name, Value = x.ProfileId.ToString() });
            var leadOwnerItems = spaceUsers.Select(x => new SelectListItem { Text = x.Name, Value = x.ProfileId.ToString() });
            var statusOptions = statuses.Select(x => new SelectListItem { Text = x.Value.ToString(), Value = x.Key.ToString() });

            var model = new LeadViewModel();
            model.LeadContactsOptions = leadContactsItems;
            model.LeadOwnersOptions = leadOwnerItems;
            model.StatusOptions = statusOptions;

            return View(model);
        }
        public ActionResult Create(LeadViewModel leadViewModel)
        {
            Lead lead = LeadViewModelToLead(leadViewModel);

            try
            {
                int itemId = lead.CreateLead(lead);

                if(itemId != default(int))
                    TempData["message"] = "New lead added succesfully";
            }
            catch (PodioException ex)
            {
                ViewBag.error = ex.Error.ErrorDescription;
            }

            return RedirectToAction("Index");
        }
        public ActionResult Create()
        {
            var lead = new Lead();
            var model = new LeadViewModel();

            try
            {
                List<Contact> spaceContacts = lead.GetSpaceContacts();
                List<Contact> spaceUsers = lead.GetUsers();
                Dictionary<int, string> statuses = lead.GetAllStatuses();

                model.LeadContactsOptions = new SelectList(spaceContacts, "ProfileId", "Name");
                model.LeadOwnersOptions = new SelectList(spaceUsers, "ProfileId", "Name");
                model.StatusOptions = new SelectList(statuses, "Key", "Value");
            }
            catch (PodioException ex)
            {
                ViewBag.error = ex.Error.ErrorDescription;
            }

            return View(model);
        }
Example #5
0
        /// <summary>
        /// Convert LeadViewModel to Lead object
        /// </summary>
        /// <param name="leadViewModel"></param>
        /// <returns></returns>
        public static Lead LeadViewModelToLead(LeadViewModel leadViewModel)
        {
            var lead = new Lead();

            lead.PodioItemID = leadViewModel.PodioItemID;
            lead.Company = leadViewModel.Company;
            lead.ExpectedValue = leadViewModel.ExpectedValue;
            lead.ProbabilityOfSale = leadViewModel.ProbabilityOfSale;
            lead.Status = new Tuple<int, string>(leadViewModel.Status, "");
            lead.NextFollowUp = leadViewModel.NextFollowUp;
            lead.StreetAddress = leadViewModel.StreetAddress;
            lead.City = leadViewModel.City;
            lead.State = leadViewModel.State;
            lead.Zip = leadViewModel.Zip;
            lead.Country = leadViewModel.Country;

            if (leadViewModel.LeadContacts != null && leadViewModel.LeadContacts.Any())
                lead.Contacts = leadViewModel.LeadContacts.ToDictionary(k => k.Value, v => v.Value.ToString());

            if (leadViewModel.LeadOwners != null && leadViewModel.LeadOwners.Any())
                lead.LeadOwners = leadViewModel.LeadOwners.ToDictionary(k => k.Value, v => v.Value.ToString());

            return lead;
        }
Example #6
0
        public async Task<ActionResult> Edit(LeadViewModel leadViewModel, string command)
        {
            if(command == "Update")
            {
                Lead lead = Lead.LeadViewModelToLead(leadViewModel);
                try
                {
                    await lead.UpdateLead(lead);
                    TempData["message"] = "Lead updated successfully";
                }
                catch (PodioException ex)
                {
                    ViewBag.error = ex.Error.ErrorDescription;
                }

                return RedirectToAction("Edit", new { id = lead.PodioItemID });
            }
            else
            {
                return RedirectToAction("Index");
            }
        }
Example #7
0
        public async Task<ActionResult> Edit(int id)
        {
            ViewBag.message = TempData["message"];
            ViewBag.error = TempData["error"];

            var lead = new Lead();
            var model = new LeadViewModel();

            try
            {
                var getLeadToEditTask = lead.GetLead(id);

                var getSpaceContactsTask = lead.GetSpaceContacts();
                var getSpaceUsersTask = lead.GetUsers();
                var getStatusesTask = lead.GetAllStatuses();

                await System.Threading.Tasks.Task.WhenAll(getSpaceContactsTask, getSpaceUsersTask, getStatusesTask, getLeadToEditTask);

                var leadToEdit = getLeadToEditTask.Result;

                IEnumerable<int> selectedLeadContacts = leadToEdit.Contacts != null ? leadToEdit.Contacts.Select(x => x.Key) : null;
                IEnumerable<int> selectedLeadOwners = leadToEdit.LeadOwners != null ? leadToEdit.LeadOwners.Select(x => x.Key) : null;
                int selectedStatus = leadToEdit.Status.Item1;

                model.PodioItemID = leadToEdit.PodioItemID;
                model.Company = leadToEdit.Company;
                model.ExpectedValue = leadToEdit.ExpectedValue;
                model.ProbabilityOfSale = leadToEdit.ProbabilityOfSale;
                model.NextFollowUp = leadToEdit.NextFollowUp;
                model.StreetAddress = leadToEdit.StreetAddress;
                model.City = leadToEdit.City;
                model.Zip = leadToEdit.Zip;
                model.State = leadToEdit.State;
                model.Country = leadToEdit.Country;

                model.LeadContactsOptions = new SelectList(getSpaceContactsTask.Result, "ProfileId", "Name");
                model.LeadOwnersOptions = new SelectList(getSpaceUsersTask.Result, "ProfileId", "Name");
                model.StatusOptions = new SelectList(getStatusesTask.Result, "Key", "Value");

            }
            catch (PodioException ex)
            {
                ViewBag.error = ex.Error.ErrorDescription;
            }
            
            return View(model);
        }
Example #8
0
        public async Task<ActionResult> Create()
        {
            var lead = new Lead();
            var model = new LeadViewModel();

            try
            {

                var getSpaceContactsTask = lead.GetSpaceContacts();
                var getSpaceUsersTask = lead.GetUsers();
                var getStatusesTask = lead.GetAllStatuses();

                await System.Threading.Tasks.Task.WhenAll(getSpaceContactsTask, getSpaceUsersTask, getStatusesTask);

                model.LeadContactsOptions = new SelectList(getSpaceContactsTask.Result, "ProfileId", "Name");
                model.LeadOwnersOptions = new SelectList(getSpaceUsersTask.Result, "ProfileId", "Name");
                model.StatusOptions = new SelectList(getStatusesTask.Result, "Key", "Value");
            }
            catch (PodioException ex)
            {
                ViewBag.error = ex.Error.ErrorDescription;
            }

            return View(model);
        }
        public ActionResult Edit(int id)
        {
            ViewBag.message = TempData["message"];
            ViewBag.error = TempData["error"];

            var lead = new Lead();
            var model = new LeadViewModel();

            try
            {
                Lead leadToEdit = lead.GetLead(id);

                List<Contact> spaceContacts = lead.GetSpaceContacts();
                List<Contact> spaceUsers = lead.GetUsers();
                Dictionary<int,string> statuses = lead.GetAllStatuses();

                IEnumerable<int> selectedLeadContacts = leadToEdit.Contacts != null ? leadToEdit.Contacts.Select(x => x.Key) : null;
                IEnumerable<int> selectedLeadOwners = leadToEdit.LeadOwners != null ? leadToEdit.LeadOwners.Select(x => x.Key) : null;
                int selectedStatus = leadToEdit.Status.Item1;

                model.PodioItemID = leadToEdit.PodioItemID;
                model.Company = leadToEdit.Company;
                model.ExpectedValue = leadToEdit.ExpectedValue;
                model.ProbabilityOfSale = leadToEdit.ProbabilityOfSale;
                model.NextFollowUp = leadToEdit.NextFollowUp;
                model.StreetAddress = leadToEdit.StreetAddress;
                model.City = leadToEdit.City;
                model.Zip = leadToEdit.Zip;
                model.State = leadToEdit.State;
                model.Country = leadToEdit.Country;

                model.LeadContactsOptions = new MultiSelectList(spaceContacts, "ProfileId", "Name", selectedLeadContacts);
                model.LeadOwnersOptions = new MultiSelectList(spaceUsers, "ProfileId", "Name", selectedLeadOwners);
                model.StatusOptions = new SelectList(statuses, "Key", "Value", selectedStatus);

            }
            catch (PodioException ex)
            {
                ViewBag.error = ex.Error.ErrorDescription;
            }

            return View(model);
        }