/// <remarks/> public void CreateItemAsync(CreateItemRequest CreateItemRequest, object userState) { if ((this.CreateItemOperationCompleted == null)) { this.CreateItemOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateItemOperationCompleted); } this.InvokeAsync("CreateItem", new object[] { CreateItemRequest}, this.CreateItemOperationCompleted, userState); }
/// <remarks/> public System.IAsyncResult BeginCreateItem(CreateItemRequest CreateItemRequest, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("CreateItem", new object[] { CreateItemRequest}, callback, asyncState); }
/// <remarks/> public void CreateItemAsync(CreateItemRequest CreateItemRequest) { this.CreateItemAsync(CreateItemRequest, null); }
/// <summary> /// Envia um arquivo para o servidor a partir do caminho local do mesmo /// </summary> /// <param name="fullPath">Caminho local do arquivo</param> /// <returns>Id do arquivo gerado pelo content manager</returns> public string UploadFile(string fullPath) { FileInfo sourceFileInfo = new FileInfo(fullPath); // Cria uma nova instancia do WebServices IR4CorrespProxy content = new IR4CorrespProxy(); content.RequireMtom = true; // Aponta a instancia atual do WebService para a URL de desenvolvimento: content.Url = _url; //"http://cmdes.itau/CMBSpecificWebService/services/CMWebService"; // Aponta a instancia atual do WebService para a URL de produção: //content.Url = http://cmcorp2.itau/CMBSpecificWebService/services/CMWebService"; // Cria uma requisição de Criação de Item "CreateItemRequest" CreateItemRequest Request = new CreateItemRequest(); // Autenticação Request.AuthenticationData = new AuthenticationData(); Request.AuthenticationData.ServerDef = new ServerDef(); //Request.AuthenticationData.ServerDef.ServerName = "NLSDB01"; // PRODUCAO Request.AuthenticationData.ServerDef.ServerName = _serverName;// "NLSDBDES"; // DESENVOLVIMENTO Request.AuthenticationData.ServerDef.ServerType = ServerType.ICM; Request.AuthenticationData.LoginData = new AuthenticationDataLoginData(); Request.AuthenticationData.LoginData.UserID = _username;// "USUARIO"; Request.AuthenticationData.LoginData.Password = _password;// "SENHA"; // Cria um novo Item de requisição // Isto é necessário pois esta propriedade não é automaticamente criada pelo //"CreateItemRequest" Request.Item = new CreateItemRequestItem(); // Cria um novo Item de XML Request.Item.ItemXML = new ItemXML(); // Associa o item ao OA0_ExemploCM Request.Item.ItemXML.IR4_CORRESP = new IR4_CORRESP(); // Atribui as propriedades do arquivo nos campos do OA0_ExemploCM. //Request.Item.ItemXML.IR4_CORRESP.IR4_COD_CORRESP = "Titulo de Teste"; Request.Item.ItemXML.IR4_CORRESP.ICMBASETEXT = new ICMBASETEXT[1]; Request.Item.ItemXML.IR4_CORRESP.ICMBASETEXT[0] = new ICMBASETEXT(); Request.Item.ItemXML.IR4_CORRESP.ICMBASETEXT[0].resourceObject = new LobObjectType(); Request.Item.ItemXML.IR4_CORRESP.ICMBASETEXT[0].resourceObject.label = new LobObjectTypeLabel(); Request.Item.ItemXML.IR4_CORRESP.ICMBASETEXT[0].resourceObject.label.name = sourceFileInfo.FullName; Request.Item.ItemXML.IR4_CORRESP.ICMBASETEXT[0].resourceObject.originalFileName = sourceFileInfo.Name; Request.Item.ItemXML.IR4_CORRESP.ICMBASETEXT[0].resourceObject.MIMEType = sourceFileInfo.Extension.GetMimeType(); // Definições do arquivo que será incluído MTOMAttachment[] attachments = new MTOMAttachment[1]; attachments[0] = new MTOMAttachment(); attachments[0].ID = sourceFileInfo.Name; attachments[0].MimeType = sourceFileInfo.Extension.GetMimeType(); attachments[0].Value = File.ReadAllBytes(sourceFileInfo.FullName); Request.mtomRef = new MTOMAttachment[1]; Request.mtomRef[0] = attachments[0]; // Realiza a chamada da requisição de novo item, e retorna um "Reply", contendo // informações sobre a situação da requisição. CreateItemReply reply = content.CreateItem(Request); if (reply.RequestStatus.success) { //Console.WriteLine("Arquivo criado com sucesso: " + reply.Item.URI); Uri uri = new Uri(reply.Item.URI); HttpRequest req = new HttpRequest(null, uri.ToString(), uri.Query.Substring(1)); // uri.Query inclui o '?', o que o HttpRequest não espera return req.Params["pid"]; } else { //Console.WriteLine("Falha ao criar arquivo"); ErrorData[] err = reply.RequestStatus.ErrorData; string errorStack = ""; for (int i = 0; i < err.Length; i++) { errorStack += "Item: " + err[i].Item + " Code: " + err[i].returnCode + "Stack: " + err[i].stackTrace + "\n"; } throw new Exception(errorStack); } }