public OperationResult SaveForm(XmlDocument xdoc, MSOWebServiceCallContextDTO context, byte[] formContent) { OperationResult result = OperationResult.OK; if (!validateContext(context, true)) { result = OperationResult.InvalidContext; return(result); } switch (validateXmlData(xdoc, context)) { case 0: result = OperationResult.InvalidXmlData; break; case -1: result = OperationResult.SchemaNotFound; break; case -2: result = OperationResult.XmlValidatorError; break; } MSOIntegrationDAO dao = new MSOIntegrationDAO(); OperationResult tmpRes = result; string extension = null; try { extension = Path.GetExtension(dao.GetFormExtension(context.DocumentTypeID)); } catch { return(OperationResult.DBConnectionError); } Guid tempFilename = Guid.NewGuid(); try { int rv = dao.TrySaveExistingForm(xdoc, context); if (rv == 0 && tmpRes != OperationResult.OK) { return(tmpRes); } rv = dao.SaveExistingForm(xdoc, context, tempFilename.ToString() + extension); switch (rv) { case -1: result = OperationResult.InvalidDocument; break; case -2: result = OperationResult.InvalidTicket; break; case -3: result = OperationResult.TicketExpired; break; case -4: result = OperationResult.DocumentTypeChanged; break; case -5: result = OperationResult.DocumentContentChanged; break; case -6: result = OperationResult.InvalidFormHash; break; } } catch (Exception) { result = OperationResult.UnableToSaveDocument; return(result); } if (result != OperationResult.OK) { return(result); } string filePath = Path.Combine(Pemi.Esoda.Tools.MSOIntegrationHelper.MSOProcessingHelper.MSODirectoryPath, tempFilename.ToString() + extension); try { File.WriteAllBytes(filePath, formContent); } catch { return(OperationResult.UnableToSaveFormContent); } dao.DeleteTicket(context); return(result); }
public UploadResult SaveGenericDocument(byte[] documentContent, string originalName, string mimeType, MSOWebServiceCallContextDTO context) { if (documentContent == null || documentContent.Length == 0) { return(UploadResult.FileContentEmpty); } if (string.IsNullOrEmpty(originalName) || string.IsNullOrEmpty(mimeType)) { return(UploadResult.InvalidFilenameOrMimeType); } if (!validateContext(context, false)) { return(UploadResult.InvalidContext); } MSOIntegrationDAO dao = new MSOIntegrationDAO(); try { switch (dao.CheckTicket(context)) { case 0: return(UploadResult.TicketExpired); case -1: return(UploadResult.InvalidTicket); } } catch { return(UploadResult.DBConnectionError); } Guid tempFilename = Guid.NewGuid(); string filePath = Path.Combine(Server.MapPath("~/temp"), tempFilename.ToString()); try { File.WriteAllBytes(filePath, documentContent); } catch { return(UploadResult.UnableToSaveFile); } try { switch (saveGenericDocument(filePath, originalName, mimeType, context.DocumentGUID, context.LastVersionGuid, context.Description, originalName, context.Ticket)) { case -1: return(UploadResult.DocumentNotFound); case -2: return(UploadResult.UnableToAddDocumentItem); } dao.DeleteTicket(context); return(UploadResult.OK); } catch { return(UploadResult.DBConnectionError); } }