Consuming pipl api in asp.net - asp.net

i am having trouble configuring this API
https://pipl.com/dev/
i have this code in page load event, but the problem is that it keep on loading the page once i click on "veiw page in browser".
protected void Page_Load(object sender, EventArgs e)
{
RunAsync().Wait();
}
static async Task RunAsync()
{
SearchAPIRequest req = new SearchAPIRequest(email: "clark.kent#example.com");
SearchAPIResponse resp = await req.SendAsync();
Console.Out.WriteLine(resp.Image.GetThumbnailUrl(200, 100, true, true));
Console.Out.WriteLine(resp.Name);
Console.Out.WriteLine(resp.Education);
Console.Out.WriteLine(resp.Username);
Console.Out.WriteLine(resp.Address);
var jobs = resp.Person.Jobs.Select(j => j.ToString());
Console.Out.WriteLine(String.Join(", ", jobs));
Console.Out.WriteLine();
var relationships = resp.Person.Relationships.Select(r => r.Names[0]);
Console.Out.WriteLine(String.Join(", ", relationships));
Console.Out.WriteLine();
}
Am i missing some code ? or any thing else.. please guide.
PS: I have already installed their package with "PM> Install-Package piplclient"

The ASPX page needs to have "Async=true" in order to use an async method. The following is an example backend C# file:
using Pipl.APIs.Search;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class _Default : Page
{
protected async void Page_Load(object sender, EventArgs e)
{
SearchAPIRequest request = new SearchAPIRequest(email: "clark.kent#example.com");
try
{
var response = await request.SendAsync();
Response.Write(response.Name.ToString());
}
catch (SearchAPIError ex)
{
Console.Out.WriteLine(e.ToString());
}
catch (IOException ex)
{
Console.Out.WriteLine(e.ToString());
}
}
}
}

Related

Search bar by using LinQ

I want to show the results only that match the user input, but this code will show the whole table, do you know what is the problem? For example, if the user enters "233442" id it will only show him the users that their id "233442". The user could search by id, name, or username.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
namespace SearchBarLinQ
{
public partial class SearchBarLinQ : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
DataClasses1DataContext db = new DataClasses1DataContext();
protected void btnsearch_Click(object sender, EventArgs e)
{
var st = (from s in db.SearchTable2s where s.ID == int.Parse(TxtID.Text) select s).First();
TxtName.Text = st.Name;
TxtUsername.Text = st.Username;
LoadData();
}
void LoadData()
{
var st = from s in db.SearchTable2s select s;
GridView1.DataSource = st;
GridView1.DataBind();
}
}
}
Function btnsearch_Click is processing the search, but the value you found is not displayed. You need to assign the value found to the data source of girdview.
Refer to the sample code(Customize the param object of the LoadData function to be compatible with the view):
protected void btnsearch_Click(object sender, EventArgs e)
{
var st = (from s in db.SearchTable2s where s.ID == int.Parse(TxtID.Text) select s).First();
TxtName.Text = st.Name;
TxtUsername.Text = st.Username;
LoadData(st);
}
void LoadData(object param)
{
GridView1.DataSource = param;
GridView1.DataBind();
}

ASP.NET Identity AllowOnlyAlphanumericUserNames

Can someone please help me how can i use special characters in ASP.Net identity?
The problem is that my users cannot register with special characters: č,ć,š,ž,đ.
When you try to enter this characters in registration, i get following error:
User name Krešo is invalid, can only contain letters or digits.
Where and how can i change this.
Here is the code:
using Microsoft.AspNet.Identity;
using Microsoft.Owin.Security;
using Microsoft.AspNet.Identity.EntityFramework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Pages_Account_Register : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnPrijava_Click(object sender, EventArgs e)
{
UserStore<IdentityUser> userStore = new UserStore<IdentityUser>();
userStore.Context.Database.Connection.ConnectionString =
System.Configuration.ConfigurationManager.ConnectionStrings["SeminariConnectionString3"].ConnectionString;
UserManager<IdentityUser> manager = new UserManager<IdentityUser>(userStore);
IdentityUser user = new IdentityUser();
user.UserName = txtKorisnickoIme.Text;
if(txtLozinka.Text == txtPotvrdaLozinke.Text)
{
try
{
IdentityResult result = manager.Create(user, txtLozinka.Text);
if(result.Succeeded)
{
var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
var userIdentity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
authenticationManager.SignIn(new AuthenticationProperties(), userIdentity);
Response.Redirect("Pocetna.aspx");
}
else
{
litStatus.Text = result.Errors.FirstOrDefault();
}
}
catch (Exception ex)
{
litStatus.Text = ex.ToString();
}
}
else
{
litStatus.Text = "Lozinke moraju biti identične.";
}
}
}
You should be able to change this behaviour as follows:
var manager = new UserManager<IdentityUser>(userStore); // existing code
var validator = manager.UserValidator as UserValidator<ApplicationUser>;
if (validator != null) validator.AllowOnlyAlphanumericUserNames = false;
Should validator turn out to be null, then debug a little to find the actual type used at runtime.

asp.net - object reference not set to an instance of an object for master page cs file

This is the code to my Master Page cs file. For some reason when I run my default page, I get an error that says "object reference not set to an instance of an object."
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Theming.MasterPages
{
public partial class Main : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string selectedTheme = Page.Theme;
HttpCookie preferredTheme = Request.Cookies.Get("PreferredTheme");
if (preferredTheme != null)
{
selectedTheme = preferredTheme.Value;
}
if (!string.IsNullOrEmpty(selectedTheme))
{
ListItem item = ThemeList.Items.FindByValue(selectedTheme);
if (item != null)
{
item.Selected = true;
}
}
}
switch (Page.Theme.ToLower())
{
case "darkgrey":
Menu1.Visible = false;
TreeView1.Visible = true;
break;
default:
Menu1.Visible = true;
TreeView1.Visible = false;
break;
}
}
protected void ThemeList_SelectedIndexChanged(object sender, EventArgs e)
{
HttpCookie preferredTheme = new HttpCookie("PreferredTheme");
preferredTheme.Expires = DateTime.Now.AddMonths(3);
preferredTheme.Value = ThemeList.SelectedValue;
Response.Cookies.Add(preferredTheme);
Response.Redirect(Request.Url.ToString());
}
}
}
The error appears to be at the switch statement but I can't figure out why. I've read on other posts that the value is assigning to the variable as null but I don't know why; I've got dark grey as an app theme. If anyone could please help me it would be very much appreciated.
I don't see Menu1 or TreeView1 defined anywhere in your markup. If those are in a content page, you can't access those in the MasterPage code-behind (there may be a way, but you can't directly access them the way you're trying to).

Error CS1729: 'Attachment' does not contain a constructor that takes 2 arguments

I am trying to send mail with attachment through smtp protocol, so I found this tutorial in http://csharpdotnetfreak.blogspot.com/2009/10/send-email-with-attachment-in-aspnet.html. And tried the following simple coding, the object got created correctly for attachment but it tell me the error that does not take 2 arguments.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.Mail;
public partial class composemail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void SendMail()
{
MailMessage mail = new MailMessage();
mail.To.Add(YourEmail.Text);
mail.From = new MailAddress(YourName.Text);
mail.Subject = YourSubject.Text;
mail.Body = Comments.Text;
mail.IsBodyHtml = true;
if (FileUpload1.HasFile)
{
mail.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName));
}
}
protected void Button1_Click(object sender, EventArgs e)
{
SendMail();
}
}
As M4N mentioned you cannot have code directly in the class. You need to encapsulate it in a method:
using System.IO;
using System.Net.Mail;
namespace AttachmentTest
{
class Program
{
static void Main(string[] args)
{
var mail = new MailMessage();
var fs = new FileStream("somepath", FileMode.Open);
var att = new Attachment(fs, "");
mail.Attachments.Add(att);
}
}
}

AjaxPro for .NET

I am new to Ajax .I have used AjaxPro In ASPX page for executing method .I have used below code for .NET 2.0
In ASPX:
$(function() {
$( "#sortable" ).sortable({
placeholder: "ui-state-highlight",
update: function(event, ui) {
var order = $('#sortable').sortable('serialize');
var retStr = SortTest.Save(order);
}
});
$( "#sortable" ).disableSelection();
});
</script>
In CS file:
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using Ajaxpro;
public partial class SortTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(SortTest));
}
[AjaxPro.AjaxMethod]
public string Save(string corder)
{
return "Test";
}
}
Its working fine,but when i using in .NET 1.1 (AjaxPro.JSON.dll),its not working and even though i didn't get how to register.Plz do help me ajaxpro for .NET1.1 .
as i see in your there is no namespace. try to use namespace first. then Call your Ajax method by using Namespace.ClassName. some thing like this.
[AjaxNamespace("SortNameSpace")]
public partial class SortTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(SortTest));
}
[AjaxPro.AjaxMethod]
public string Save(string corder)
{
return "Test";
}
}
while calling from javascript try like this
var retStr = SortNameSpace.SortTest.Save(order).value; //do something with returned value

Resources