예제 #1
0
        public async Task <ActionResult> DeleteConfirmed(WebhookModel webhookModel)
        {
            var salesforceService = new SalesforceService((ClaimsPrincipal)User, SignInManager);
            await salesforceService.DeleteWebhookAsync(webhookModel);

            return(RedirectToAction("Index"));
        }
예제 #2
0
        public async Task <ActionResult> Edit(string id)
        {
            IEnumerable <Product2> selectedProduct2s = Enumerable.Empty <Product2>();

            try
            {
                selectedProduct2s = await SalesforceService.MakeAuthenticatedClientRequestAsync(
                    async (client) =>
                {
                    QueryResult <Product2> Product2s =
                        await client.QueryAsync <Product2>("SELECT Id, Name, ProductCode, Description, CreatedDate, Family From Product2 Where Id= '" + id + "'");
                    return(Product2s.Records);
                }
                    );
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "Edit Salesforce Product2s";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            return(View(selectedProduct2s.FirstOrDefault()));
        }
예제 #3
0
        // GET: Contacts
        public async Task <ActionResult> Index()
        {
            IEnumerable <Contact> selectedContacts = Enumerable.Empty <Contact>();

            try
            {
                selectedContacts = await SalesforceService.MakeAuthenticatedClientRequestAsync(
                    async (client) =>
                {
                    QueryResult <Contact> contacts =
                        await client.QueryAsync <Contact>("SELECT Id, Salutation, FirstName, LastName, MailingCity, MailingState, MailingCountry From Contact");
                    return(contacts.Records);
                }
                    );
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "query Salesforce Contacts";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            return(View(selectedContacts));
        }
예제 #4
0
        public async Task <ActionResult> Edit(string id)
        {
            IEnumerable <LeadViewModel> selectedLeads = Enumerable.Empty <LeadViewModel>();

            try
            {
                selectedLeads = await SalesforceService.MakeAuthenticatedClientRequestAsync(
                    async (client) =>
                {
                    QueryResult <LeadViewModel> leads =
                        await client.QueryAsync <LeadViewModel>("SELECT Id, Salutation, FirstName, LastName, Company, Street, City, State, PostalCode, Phone, MobilePhone, Fax, Email, Status, Description From Lead Where Id = '" + id + "'");
                    return(leads.Records);
                }
                    );
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "Edit Salesforce Leads";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            return(View(selectedLeads.FirstOrDefault()));
        }
예제 #5
0
        public async Task <ActionResult> LeadEdit(Lead lead)
        {
            // TODO: Resolve Edit failures with ID
            // Ensure the user is authenticated
            if (!SalesforceService.IsUserLoggedIn())
            {
                // Should include a state argument to the URI so that when the dance is done, we can redirect to the page that we were requesting
                string myUri = SalesforceOAuthRedirectHandler.AuthorizationUri.ToString() + "&state=" + this.Url.RequestContext.HttpContext.Request.RawUrl;
                return(this.Redirect(myUri));
            }
            // Initialize the Force client
            SalesforceService service = new SalesforceService();
            ForceClient       client  = service.GetForceClient();

            var success = await client.UpdateAsync("Lead", lead.Id, lead);

            if (success.errors == null)
            {
                return(RedirectToAction("LeadList"));
            }
            else
            {
                return(View(lead));
            }
        }
        // GET: Contacts
        public async Task <ActionResult> Index()
        {
            var salesforceService = new SalesforceService((ClaimsPrincipal)User, SignInManager);
            var contacts          = await salesforceService.GetContactsAsync();

            return(View(contacts));
        }
        public IActionResult Reset(ResetViewModel vm, string userid, string email, string token)
        {
            ViewData["status"] = "";

            ValidateReset(vm, userid, email, token);

            if (ModelState.IsValid)
            {
                try
                {
                    Auth0.ManagementApi.Models.User userResult   = null;
                    SalesforceService.Response      hashResponse = SalesforceService.CheckHash(_sfdcTokenManager.instance_url, _sfdcTokenManager.access_token, System.Net.WebUtility.HtmlDecode(email), token).Result;
                    _logger.LogInformation("Hash Code Response: {0}", hashResponse.code);
                    _logger.LogInformation("User Id: {0}", userid);

                    //Hash matches
                    if (hashResponse.code == "10014")
                    {
                        string accessToken = GetClientToken().Result;
                        userResult         = UpdateUserPassword(accessToken, System.Net.WebUtility.HtmlDecode(userid), vm.NewPassword1).Result;
                        ViewData["status"] = userResult.UpdatedAt;
                    }
                    else
                    {
                        ModelState.AddModelError("", "Token has expired");
                    }
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("", e.Message);
                }
            }

            return(View(vm));
        }
예제 #8
0
        public async Task <ActionResult> DeleteConfirmed(string id)
        {
            bool success = false;

            try
            {
                success = await SalesforceService.MakeAuthenticatedClientRequestAsync(
                    async (client) =>
                {
                    success = await client.DeleteAsync("Contact", id);
                    return(success);
                }
                    );
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "Delete Salesforce Contacts";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            if (success)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                return(View());
            }
        }
예제 #9
0
        public async Task <ActionResult> Index()
        {
            var salesforceService = new SalesforceService((ClaimsPrincipal)User, SignInManager);
            var webhookModels     = await salesforceService.GetWebhooksAsync();

            return(View(webhookModels));
        }
예제 #10
0
        public async Task <ActionResult> Edit(string id)
        {
            IEnumerable <Contact> selectedContacts = Enumerable.Empty <Contact>();

            try
            {
                selectedContacts = await SalesforceService.MakeAuthenticatedClientRequestAsync(
                    async (client) =>
                {
                    QueryResult <Contact> contacts =
                        await client.QueryAsync <Contact>("SELECT Id, FirstName, LastName, MailingStreet, MailingCity, MailingState, MailingPostalCode, MailingCountry, Phone, Email From Contact Where Id= '" + id + "'");
                    return(contacts.Records);
                }
                    );
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "Edit Salesforce Contacts";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            return(View(selectedContacts.FirstOrDefault()));
        }
예제 #11
0
        public async Task <ActionResult> Create([Bind(Include = _ContactsPostBinding)] Contact contact)
        {
            String id = String.Empty;

            try
            {
                id = (await SalesforceService.MakeAuthenticatedClientRequestAsync(
                          async(client) =>
                {
                    return(await client.CreateAsync("Contact", contact));
                }
                          )).ToString();
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "Create Salesforce Contact";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            if (this.ViewBag.ErrorMessage == null)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                return(View(contact));
            }
        }
예제 #12
0
        public async Task <ActionResult> Edit(string id)
        {
            IEnumerable <Event> selectedEvents = Enumerable.Empty <Event>();

            try
            {
                selectedEvents = await SalesforceService
                                 .MakeAuthenticatedClientRequestAsync(
                    async (client) =>
                {
                    QueryResult <Event> Events =
                        await client
                        .QueryAsync <Event>(
                            _SelectAll + $" Where Id= '{id}'");
                    return(Events.Records);
                }
                    );
            }
            catch (Exception e)
            {
                ViewBag.OperationName    = "Edit Salesforce Events";
                ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler
                                           .GetAuthorizationUrl(Request.Url.ToString());
                ViewBag.ErrorMessage = e.Message;
            }
            if (ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(ViewBag.AuthorizationUrl));
            }
            return(View(selectedEvents.FirstOrDefault()));
        }
예제 #13
0
        public async Task <ActionResult> Create([Bind(Include = _EventsPostBinding)] Event Event)
        {
            SuccessResponse success = new SuccessResponse();
            String          id      = String.Empty;

            try
            {
                success = await SalesforceService.MakeAuthenticatedClientRequestAsync(
                    async (client) =>
                {
                    return(await client.CreateAsync("Event", Event));
                }
                    );

                id = success.Id;
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "Create Salesforce Event";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            if (this.ViewBag.ErrorMessage == null)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                return(View(Event));
            }
        }
예제 #14
0
        // GET: Events
        public async Task <ActionResult> Index()
        {
            IEnumerable <Event> selectedEvents = Enumerable.Empty <Event>();

            try
            {
                selectedEvents = await SalesforceService
                                 .MakeAuthenticatedClientRequestAsync(
                    async (client) =>
                {
                    QueryResult <Event> events = await client
                                                 .QueryAsync <Event>(_SelectAll);
                    return(events.Records);
                }
                    );
            }
            catch (Exception e)
            {
                ViewBag.OperationName    = "query Salesforce Events";
                ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler
                                           .GetAuthorizationUrl(Request.Url.ToString());
                ViewBag.ErrorMessage = e.Message;
            }
            if (ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(ViewBag.AuthorizationUrl));
            }
            IEnumerable <EventIndexViewModel> viewEvents = EventHelper.GetEventIndexViewModel(selectedEvents);

            return(View(viewEvents));
        }
예제 #15
0
        public async Task <ActionResult> Edit([Bind(Include = _ContactsPostBinding)] Contact contact)
        {
            SuccessResponse success = new SuccessResponse();

            try
            {
                success = await SalesforceService.MakeAuthenticatedClientRequestAsync(
                    async (client) =>
                {
                    success = await client.UpdateAsync("Contact", contact.Id, contact);
                    return(success);
                }
                    );
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "Edit Salesforce Contact";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            if (success.Success == true)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                return(View(contact));
            }
        }
        // GET: Assistance
        // GET: Contacts
        // Note: the SOQL Field list, and Binding Property list have subtle differences as custom properties may be mapped with the JsonProperty attribute to remove __c
        //const string _ContactsPostBinding = "Id,Salutation,FirstName,LastName,MailingStreet,MailingCity,MailingState,MailingPostalCode,MailingCountry,Phone,Email";
        // GET: Contacts
        public async Task <ActionResult> Index()
        {
            IEnumerable <Assistance__c> selectedContacts = Enumerable.Empty <Assistance__c>();

            try
            {
                selectedContacts = await SalesforceService.MakeAuthenticatedClientRequestAsync(
                    async (client) =>
                {
                    QueryResult <Assistance__c> contacts =
                        await client.QueryAsync <Assistance__c>("SELECT Owner ID, Assistance Name, Contact, Date, Description, Provider, Status From Assistance__c");
                    return(contacts.Records);
                }
                    );
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "query Salesforce Contacts";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            return(View(selectedContacts));
        }
 protected override void Initialize(HttpControllerContext controllerContext)
 {
     base.Initialize(controllerContext);
     _context               = new MobileServiceContext();
     _salesforceService     = new SalesforceService();
     _domainEmployeeManager = new EntityDomainManager <Employee>(_context, Request, Services);
     DomainManager          = new EntityDomainManager <Ride>(_context, Request, Services);
 }
예제 #18
0
        // GET: Leads
        public async Task <ActionResult> Index()
        {
            ApplicationUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            IEnumerable <LeadViewModel> selectedLeads = Enumerable.Empty <LeadViewModel>();

            if (User.Identity.IsAuthenticated)
            {
                if (User.IsInRole("admin"))
                {
                    try
                    {
                        selectedLeads = await SalesforceService.MakeAuthenticatedClientRequestAsync(
                            async (client) =>
                        {
                            QueryResult <LeadViewModel> leads =
                                await
                                client.QueryAsync <LeadViewModel>(
                                    "SELECT Id, LastName, Salutation, FirstName, Phone, MobilePhone, Email, UserEmail__c From Lead");
                            return(leads.Records);
                        }
                            );
                    }
                    catch (Exception e)
                    {
                        this.ViewBag.OperationName    = "query Salesforce Leads";
                        this.ViewBag.AuthorizationUrl =
                            SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                        this.ViewBag.ErrorMessage = e.Message;
                    }
                }
                else
                {
                    try
                    {
                        selectedLeads = await SalesforceService.MakeAuthenticatedClientRequestAsync(
                            async (client) =>
                        {
                            QueryResult <LeadViewModel> leads =
                                await client.QueryAsync <LeadViewModel>("SELECT Id, LastName, Salutation, FirstName, Phone, MobilePhone, Email, UserEmail__c From Lead Where UserEmail__c = '" + user.UserName + "'");
                            return(leads.Records);
                        }
                            );
                    }
                    catch (Exception e)
                    {
                        this.ViewBag.OperationName    = "query Salesforce Leads";
                        this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                        this.ViewBag.ErrorMessage     = e.Message;
                    }
                }
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            return(View(selectedLeads));
        }
    public async Task <List <Models.Contact> > Get()
    {
        var client = await SalesforceService.GetUserNamePasswordForceClientAsync();

        var contacts = await client.QueryAsync <Models.Contact>("SELECT id, FirstName, LastName, Email FROM Contact");

        var sfContact = contacts.Records;

        return(sfContacts);
    }
예제 #20
0
        public async Task <ActionResult> Create(LeadViewModel lead)
        {
            ApplicationUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            var Lead = new LeadViewModel
            {
                Id           = lead.Id,
                Salutation   = lead.Salutation,
                FirstName    = lead.FirstName,
                LastName     = lead.LastName,
                Company      = lead.Company,
                Street       = lead.Street,
                City         = lead.City,
                State        = lead.State,
                PostalCode   = lead.PostalCode,
                Phone        = lead.Phone,
                MobilePhone  = lead.MobilePhone,
                Fax          = lead.Fax,
                Email        = lead.Email,
                Status       = lead.Status,
                CreatedDate  = lead.CreatedDate,
                Description  = lead.Description,
                UserEmail__c = user.Email
            };

            String id = String.Empty;

            try
            {
                id = (await SalesforceService.MakeAuthenticatedClientRequestAsync(
                          async(client) =>
                {
                    return(await client.CreateAsync("Lead", Lead));
                }
                          )).ToString();
            }
            catch (Exception e)
            {
                this.ViewBag.OperationName    = "Create Salesforce Lead";
                this.ViewBag.AuthorizationUrl = SalesforceOAuthRedirectHandler.GetAuthorizationUrl(this.Request.Url.ToString());
                this.ViewBag.ErrorMessage     = e.Message;
            }
            if (this.ViewBag.ErrorMessage == "AuthorizationRequired")
            {
                return(Redirect(this.ViewBag.AuthorizationUrl));
            }
            if (this.ViewBag.ErrorMessage == null)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                return(View(lead));
            }
        }
        public async Task <ActionResult> Edit(SalesforceContact contact)
        {
            if (ModelState.IsValid)
            {
                var salesforceService = new SalesforceService((ClaimsPrincipal)User, SignInManager);
                await salesforceService.UpdateContactAsync(contact);

                return(RedirectToAction("Index"));
            }

            return(View(contact));
        }
예제 #22
0
        public async Task <ActionResult> Create(WebhookModel webhookModel)
        {
            if (ModelState.IsValid)
            {
                var salesforceService = new SalesforceService((ClaimsPrincipal)User, SignInManager);
                await salesforceService.CreateSalesforceObjectsAsync(webhookModel);

                return(RedirectToAction("Index"));
            }

            return(View(webhookModel));
        }
예제 #23
0
        protected override void Initialize(HttpControllerContext controllerContext)
        {
            base.Initialize(controllerContext);
            string connectstr = System.Configuration.ConfigurationManager.AppSettings["MS_TableConnectionString"];

            _context = new MobileServiceContext();
            test     = connectstr;
            string t = test;

            _salesforceService     = new SalesforceService();
            _domainEmployeeManager = new EntityDomainManager <Employee>(_context, Request, Services);
            DomainManager          = new EntityDomainManager <Ride>(_context, Request, Services);
        }
예제 #24
0
        public Task <List <T> > SalesforceRequest <T>(string soqlQuery)
        {
            var requestTask = SalesforceService
                              .MakeAuthenticatedClientRequestAsync(
                async(client) =>
            {
                QueryResult <T> entities = await client
                                           .QueryAsync <T>(soqlQuery);
                return(entities.Records);
            }
                );

            return(requestTask);
        }
예제 #25
0
        private static string GetAbsoluteRedirectUri()
        {
            Uri redirectUri;

            Uri.TryCreate(SalesforceService.GetAppSetting("Salesforce:RedirectUri"), UriKind.RelativeOrAbsolute, out redirectUri);
            if (redirectUri.IsAbsoluteUri)
            {
                return(redirectUri.ToString());
            }
            else
            {
                string uriAuthority = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority);
                return(new Uri(new Uri(uriAuthority), redirectUri).ToString());
            }
        }
        public async Task TestDeleteObject()
        {
            IConnector connector = new Connector(consumerKey, consumerSecret, userName,
                                                 passwordAndToken, false, log, jsonHttpClient, xmlHttpClient);
            ISalesforceService salesforceService = new SalesforceService(connector, log);
            dynamic            lead = new ExpandoObject();

            using (salesforceService)
            {
                lead = await salesforceService.GetObjectByExternalIdentifier("Lead", "Email", "*****@*****.**");

                bool isDeleted = await salesforceService.DeleteObject(lead.Id, "Lead");

                Assert.IsTrue(isDeleted);
            }
        }
        public async Task TestGetObjectByQuery()
        {
            IConnector connector = new Connector(consumerKey, consumerSecret, userName,
                                                 passwordAndToken, false, log, jsonHttpClient, xmlHttpClient);
            ISalesforceService salesforceService = new SalesforceService(connector, log);
            string             query             = "SELECT Id, Name FROM Lead WHERE Company = 'Fake News Corp.'";

            using (salesforceService)
            {
                dynamic lead = salesforceService.GetObjectByQuery(query).GetAwaiter().GetResult();
                Assert.AreEqual(lead.Name, "Jim Robot");
                lead = await salesforceService.GetObjectByIdentifier("Lead", lead.Id);

                Assert.AreEqual(lead.FirstName, "Jim");
            }
        }
    public async Task <IHttpActionResult> Get()
    {
        var client = await SalesforceService.GetUserNamePasswordForceClientAsync();

        var contacts = await client.QueryAsync <Models.Contact>("SELECT id, FirstName, LastName, Email FROM Contact");

        var sfContact = contacts.Records
                        .Select(c => new {
            c.id,
            c.FirstName,
            c.LastName,
            c.Email
        });

        return(Ok(sfContacts));
    }
예제 #29
0
        public async Task <ActionResult> LeadEdit(string id)
        {
            // Ensure the user is authenticated
            if (!SalesforceService.IsUserLoggedIn())
            {
                // Should include a state argument to the URI so that when the dance is done, we can redirect to the page that we were requesting
                string myUri = SalesforceOAuthRedirectHandler.AuthorizationUri.ToString() + "&state=" + this.Url.RequestContext.HttpContext.Request.RawUrl;
                return(this.Redirect(myUri));
            }

            // Initalize the Force client
            SalesforceService service = new SalesforceService();
            ForceClient       client  = service.GetForceClient();

            Lead lead = await client.QueryByIdAsync <Lead>("Lead", id);

            return(View(lead));
        }
        public async Task TestInsertObject()
        {
            IConnector connector = new Connector(consumerKey, consumerSecret, userName,
                                                 passwordAndToken, false, log, jsonHttpClient, xmlHttpClient);
            ISalesforceService salesforceService = new SalesforceService(connector, log);
            dynamic            lead = new ExpandoObject();

            lead.FirstName = "Jim";
            lead.LastName  = "Robot";
            lead.Email     = "*****@*****.**";
            lead.Company   = "Fake News Inc.";
            using (salesforceService)
            {
                bool isCreated = await salesforceService.InsertUpdateObject(lead, "Lead", "");

                Assert.IsTrue(isCreated);
            }
        }