public static image ReadAndSaveFromUrl(this string url, long subdomainid, long ownerid, long contextid, PhotoType type) { var req = WebRequest.Create(url); WebResponse resp = null; try { resp = req.GetResponse(); } catch (Exception ex) { Syslog.Write(ex); } if (resp == null) { return(null); } try { var image = new image(); using (var repository = new TradelrRepository()) { var sd = repository.GetSubDomain(subdomainid); var extension = url.ToImageFormat().ToStringExtension(); var filename = BuildFilename(ownerid, extension); var handler = new FileHandler(filename, UploadFileType.IMAGE, sd.uniqueid); image.imageType = type.ToString(); image.subdomain = subdomainid; image.contextID = contextid; image.url = handler.Save(resp.GetResponseStream()); repository.AddImage(image); switch (type) { case PhotoType.PROFILE: var usr = repository.GetUserById(ownerid); if (usr != null) { usr.profilePhoto = image.id; } repository.Save("ReadAndSaveFromUrl:Profile"); break; default: break; } } return(image); } catch (Exception ex) { Syslog.Write(ex); return(null); } }