/// <summary> /// Creates a resource with a specified name. /// </summary> /// <param name="name">Name of the new resource.</param> /// <returns>Newly created resource.</returns> public IResource CreateResource(string name) { WebDavResource resource = new WebDavResource(); try { resource.SetHref(new Uri(this.Href.AbsoluteUri + name)); NetworkCredential credentials = (NetworkCredential)this._credentials; string auth = "Basic " + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password)); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(resource.Href); request.Method = "PUT"; request.Credentials = credentials; request.ContentType = "text/xml"; request.Accept = "text/xml"; request.Headers["translate"] = "f"; request.Headers.Add("Authorization", auth); using(HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { if (response.StatusCode == HttpStatusCode.Created || response.StatusCode == HttpStatusCode.NoContent) { this.Open(this.Href); resource = (WebDavResource)this.GetResource(name); resource.SetCredentials(this._credentials); } } } catch(Exception e) { Console.WriteLine(e.Message); } return resource; }
private IEnumerable <WebDavResource> Convert(IEnumerable <SystemFile> files, Uri baseUri) { var convertResult = new List <WebDavResource>(); var credentials = new NetworkCredential(ScpContext.User.Login, _cryptography.Decrypt(ScpContext.User.EncryptedPassword), WebDavAppConfigManager.Instance.UserDomain); foreach (var file in files) { var webDavitem = new WebDavResource(); webDavitem.SetCredentials(credentials); webDavitem.SetHref(baseUri.Append(ScpContext.User.OrganizationId).Append(file.RelativeUrl.Replace("\\", "/"))); webDavitem.SetItemType(file.IsDirectory? ItemType.Folder : ItemType.Resource); webDavitem.SetLastModified(file.Changed); webDavitem.ContentLength = file.Size; webDavitem.AllocatedSpace = file.FRSMQuotaMB; webDavitem.Summary = file.Summary; convertResult.Add(webDavitem); } return(convertResult); }
/// <summary> /// Creates a resource with a specified name. /// </summary> /// <param name="name">Name of the new resource.</param> /// <returns>Newly created resource.</returns> public IResource CreateResource(string name) { var resource = new WebDavResource(); try { resource.SetHref(new Uri(Href.AbsoluteUri + name)); var credentials = (NetworkCredential)_credentials; string auth = "Basic " + Convert.ToBase64String( Encoding.Default.GetBytes(credentials.UserName + ":" + credentials.Password)); var request = (HttpWebRequest)WebRequest.Create(resource.Href); request.Method = "PUT"; request.Credentials = credentials; request.ContentType = "text/xml"; request.Accept = "text/xml"; request.Headers["translate"] = "f"; request.Headers.Add("Authorization", auth); using (var response = (HttpWebResponse)request.GetResponse()) { if (response.StatusCode == HttpStatusCode.Created || response.StatusCode == HttpStatusCode.NoContent) { Open(Href); resource = (WebDavResource)GetResource(name); resource.SetCredentials(_credentials); } } } catch (Exception e) { } return(resource); }
/// <summary> /// Gets the specified resource from server. /// </summary> /// <param name="name">Name of the resource.</param> /// <returns>Resource corresponding to requested name.</returns> public IResource GetResource(string name) { IHierarchyItem item = this._children.Where(i => i.ItemType == ItemType.Resource && i.DisplayName == name).Single(); WebDavResource resource = new WebDavResource(); resource.SetCredentials(this._credentials); resource.SetHierarchyItem(item); return(resource); }
/// <summary> /// Gets the specified resource from server. /// </summary> /// <param name="name">Name of the resource.</param> /// <returns>Resource corresponding to requested name.</returns> public IResource GetResource(string name) { IHierarchyItem item = _children.Single(i => i.DisplayName.ToLowerInvariant().Trim('/') == name.ToLowerInvariant().Trim('/')); var resource = new WebDavResource(); resource.SetCredentials(_credentials); resource.SetHierarchyItem(item); return(resource); }
public void LockFile(string path) { var resource = new WebDavResource(); var fileUrl = new Uri(WebDavAppConfigManager.Instance.WebdavRoot) .Append(ScpContext.User.OrganizationId) .Append(path); resource.SetHref(fileUrl); resource.SetCredentials(new NetworkCredential(ScpContext.User.Login, _cryptography.Decrypt(ScpContext.User.EncryptedPassword))); resource.Lock(); }
public void UploadFile(string path, Stream stream) { var resource = new WebDavResource(); var fileUrl = new Uri(WebDavAppConfigManager.Instance.WebdavRoot) .Append(WspContext.User.OrganizationId) .Append(path); resource.SetHref(fileUrl); resource.SetCredentials(new NetworkCredential(WspContext.User.Login, _cryptography.Decrypt(WspContext.User.EncryptedPassword))); var bytes = ReadFully(stream); resource.Upload(bytes); }
public void UploadFile(string path, HttpPostedFileBase file) { var resource = new WebDavResource(); var fileUrl = new Uri(WebDavAppConfigManager.Instance.WebdavRoot) .Append(ScpContext.User.OrganizationId) .Append(path) .Append(Path.GetFileName(file.FileName)); resource.SetHref(fileUrl); resource.SetCredentials(new NetworkCredential(ScpContext.User.Login, _cryptography.Decrypt(ScpContext.User.EncryptedPassword))); file.InputStream.Seek(0, SeekOrigin.Begin); var bytes = ReadFully(file.InputStream); resource.Upload(bytes); }
private IEnumerable<WebDavResource> Convert(IEnumerable<SystemFile> files, Uri baseUri) { var convertResult = new List<WebDavResource>(); var credentials = new NetworkCredential(WspContext.User.Login, _cryptography.Decrypt(WspContext.User.EncryptedPassword), WebDavAppConfigManager.Instance.UserDomain); foreach (var file in files) { var webDavitem = new WebDavResource(); webDavitem.SetCredentials(credentials); webDavitem.SetHref(baseUri.Append(WspContext.User.OrganizationId).Append(file.RelativeUrl.Replace("\\","/"))); webDavitem.SetItemType(file.IsDirectory? ItemType.Folder : ItemType.Resource); webDavitem.SetLastModified(file.Changed); webDavitem.ContentLength = file.Size; webDavitem.AllocatedSpace = file.FRSMQuotaMB; webDavitem.Summary = file.Summary; convertResult.Add(webDavitem); } return convertResult; }
public void UploadFile(string path, HttpPostedFileBase file) { var resource = new WebDavResource(); var fileUrl = new Uri(WebDavAppConfigManager.Instance.WebdavRoot) .Append(WspContext.User.OrganizationId) .Append(path) .Append(Path.GetFileName(file.FileName)); resource.SetHref(fileUrl); resource.SetCredentials(new NetworkCredential(WspContext.User.Login, _cryptography.Decrypt(WspContext.User.EncryptedPassword))); file.InputStream.Seek(0, SeekOrigin.Begin); var bytes = ReadFully(file.InputStream); resource.Upload(bytes); }
/// <summary> /// Processes the response from the server. /// </summary> /// <param name="response">The raw response from the server.</param> private void ProcessResponse(string response) { try { var XmlDoc = new XmlDocument(); XmlDoc.LoadXml(response); XmlNodeList XmlResponseList = XmlDoc.GetElementsByTagName("D:response"); if (XmlResponseList.Count == 0) { XmlResponseList = XmlDoc.GetElementsByTagName("d:response"); } var children = new WebDavResource[XmlResponseList.Count]; int counter = 0; foreach (XmlNode XmlCurrentResponse in XmlResponseList) { var item = new WebDavResource(); item.SetCredentials(_credentials); foreach (XmlNode XmlCurrentNode in XmlCurrentResponse.ChildNodes) { switch (XmlCurrentNode.LocalName) { case "href": string href = XmlCurrentNode.InnerText; if (!Regex.Match(href, "^https?:\\/\\/").Success) { href = _path.Scheme + "://" + _path.Host + href; } item.SetHref(href, _path); break; case "propstat": foreach (XmlNode XmlCurrentPropStatNode in XmlCurrentNode) { switch (XmlCurrentPropStatNode.LocalName) { case "prop": foreach (XmlNode XmlCurrentPropNode in XmlCurrentPropStatNode) { switch (XmlCurrentPropNode.LocalName) { case "creationdate": item.SetCreationDate(XmlCurrentPropNode.InnerText); break; case "getcontentlanguage": item.SetProperty( new Property( new PropertyName("getcontentlanguage", XmlCurrentPropNode.NamespaceURI), XmlCurrentPropNode.InnerText)); break; case "getcontentlength": item.SetProperty( new Property( new PropertyName("getcontentlength", XmlCurrentPropNode.NamespaceURI), XmlCurrentPropNode.InnerText)); break; case "getcontenttype": item.SetProperty( new Property( new PropertyName("getcontenttype", XmlCurrentPropNode.NamespaceURI), XmlCurrentPropNode.InnerText)); break; case "getlastmodified": item.SetLastModified(XmlCurrentPropNode.InnerText); break; case "resourcetype": item.SetProperty( new Property( new PropertyName("resourcetype", XmlCurrentPropNode.NamespaceURI), XmlCurrentPropNode.InnerXml)); break; //case "lockdiscovery": //{ // if (XmlCurrentPropNode.HasChildNodes == false) // { // break; // } // foreach (XmlNode activeLockNode in XmlCurrentPropNode.FirstChild) // { // switch (activeLockNode.LocalName) // { // case "owner": // item.SetProperty( // new Property( // new PropertyName("owner", // activeLockNode.NamespaceURI), // activeLockNode.InnerXml)); // break; // case "locktoken": // var lockTokenNode = activeLockNode.FirstChild; // item.SetProperty( // new Property( // new PropertyName("locktoken", // lockTokenNode.NamespaceURI), // lockTokenNode.InnerXml)); // break; // } // } // break; //} } } break; case "status": break; } } break; } } if (item.DisplayName != String.Empty) { children[counter] = item; counter++; } else { SetItemType(ItemType.Folder); SetHref(item.Href.AbsoluteUri, item.Href); SetCreationDate(item.CreationDate); SetComment(item.Comment); SetCreatorDisplayName(item.CreatorDisplayName); SetLastModified(item.LastModified); foreach (Property property in item.Properties) { SetProperty(property); } } } int childrenCount = 0; foreach (IHierarchyItem item in children) { if (item != null) { childrenCount++; } } _children = new IHierarchyItem[childrenCount]; counter = 0; foreach (IHierarchyItem item in children) { if (item != null) { _children[counter] = item; counter++; } } } catch (XmlException e) { } }
/// <summary> /// Gets the specified resource from server. /// </summary> /// <param name="name">Name of the resource.</param> /// <returns>Resource corresponding to requested name.</returns> public IResource GetResource(string name) { IHierarchyItem item = _children.Single(i => i.DisplayName.ToLowerInvariant().Trim('/') == name.ToLowerInvariant().Trim('/')); var resource = new WebDavResource(); resource.SetCredentials(_credentials); resource.SetHierarchyItem(item); return resource; }
/// <summary> /// Gets the specified resource from server. /// </summary> /// <param name="name">Name of the resource.</param> /// <returns>Resource corresponding to requested name.</returns> public IResource GetResource(string name) { IHierarchyItem item = this._children.Where(i => i.ItemType == ItemType.Resource && i.DisplayName == name).Single(); WebDavResource resource = new WebDavResource(); resource.SetCredentials(this._credentials); resource.SetHierarchyItem(item); return resource; }