WYSIWYG

http://kufli.blogspot.com
http://github.com/karthik20522

Thursday, November 29, 2012

Code Snippets - Nov 2012 Edition

Proxy service for downloading and serving image: (.NET 4.0)
1
2
3
4
5
6
7
8
9
[HttpGet]
public async Task<FileResult> GetImage(string url)
{
 var _client = new HttpClient();           
  
 var imageData = await _client.GetStreamAsync(url);
 
 return new FileStreamResult(imageData, "image/jpeg");
}
Async Http Post (.NET 4.0)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public Task<string> PostData(string uri, string postData)
{
 byte[] postBytes = Encoding.ASCII.GetBytes(postData);
 
 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
 request.ContentType = "application/json";
 request.Method = WebRequestMethods.Http.Post;
 request.ContentLength = postBytes.Length;
 request.Timeout = 20000;
 request.KeepAlive = false;
  
 var requestStream = request.GetRequestStream();
 requestStream.Write(postBytes, 0, postBytes.Length);
 requestStream.Close();
 
 Task<WebResponse> task = Task.Factory.FromAsync(
  request.BeginGetResponse,
  asyncResult => request.EndGetResponse(asyncResult),
  (object)null);
 
 return task.ContinueWith(t => ReadStreamFromResponse(t.Result));
}
 
private static string ReadStreamFromResponse(WebResponse response)
{
 using (var responseStream = response.GetResponseStream())
 {
  using (var sr = new StreamReader(responseStream))
  {
   return sr.ReadToEnd();
  }
 }
}
Group and Count in LINQ
1
2
3
4
5
6
7
8
9
10
11
public class Asset
{
 public string KnownColorName { get; set; }       
}
 
var assets = GetListOfAssetsFromDatasource();
 
var colorGroup = assets.
                GroupBy(n => n.KnownColorName)
                .Select(n => new { Count = n.Count(), Color = n.Key })
                .OrderBy(n => n.Color);

Labels: ,