Ejemplo n.º 1
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));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> Filter(LeadListingViewModel leadListingModel)
        {
            var lead  = new Lead();
            var model = new LeadListingViewModel();

            try
            {
                DateTime?nextFollowUpFromDate = leadListingModel.NextFollowUpFrom;
                DateTime?nextFollowUpToDate   = leadListingModel.NextFollowUpTo;
                decimal? expectedValueFrom    = leadListingModel.ExpectedValueFrom;
                decimal? expectedValueTo      = leadListingModel.ExpectedValueTo;
                int?     status    = leadListingModel.Status;
                int?     leadOwner = leadListingModel.LeadOwner;

                IEnumerable <Contact> spaceUsers = await lead.GetUsers();

                Dictionary <int, string> statuses = await lead.GetAllStatuses();

                IEnumerable <Lead> leads = await lead.GetAllLeads(nextFollowUpFromDate, nextFollowUpToDate, expectedValueFrom, expectedValueTo, status, leadOwner);

                model.LeadOwnersOptions = new SelectList(spaceUsers, "ProfileId", "Name", leadOwner);
                model.StatusOptions     = new SelectList(statuses, "Key", "Value", status);

                if (leads.Any())
                {
                    model.Leads = leads.Select(x =>
                                               new LeadView
                    {
                        Company       = x.Company,
                        LeadOwners    = x.LeadOwners,
                        ExpectedValue = x.ExpectedValue,
                        Status        = x.Status,
                        NextFollowUp  = x.NextFollowUp,
                        PodioItemID   = x.PodioItemID
                    });
                }
            }
            catch (PodioException ex)
            {
                ViewBag.error = ex.Error.ErrorDescription;
            }

            return(View("Index", model));
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> Index()
        {
            ViewBag.message = TempData["message"];
            ViewBag.error   = TempData["error"];

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

            try
            {
                var getSpaceUsersTask = lead.GetUsers();
                var getStatusesTask   = lead.GetAllStatuses();
                var getLeadsTask      = lead.GetAllLeads();

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

                model.LeadOwnersOptions = new SelectList(getSpaceUsersTask.Result, "ProfileId", "Name");
                model.StatusOptions     = new SelectList(getStatusesTask.Result, "Key", "Value");
                var leads = getLeadsTask.Result;

                if (leads.Any())
                {
                    model.Leads = leads.Select(x =>
                                               new LeadView
                    {
                        Company       = x.Company,
                        LeadOwners    = x.LeadOwners,
                        ExpectedValue = x.ExpectedValue,
                        Status        = x.Status,
                        NextFollowUp  = x.NextFollowUp,
                        PodioItemID   = x.PodioItemID
                    }).ToList();
                }
            }
            catch (PodioException ex)
            {
                ViewBag.error = ex.Error.ErrorDescription;
            }

            return(View(model));
        }
Ejemplo n.º 4
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));
        }