public OperationResult ProlongeTicket(MSOWebServiceCallContextDTO context, string login, string password) { try { if (!Membership.ValidateUser(login, password)) { return(OperationResult.InvalidUsernameOrPassword); } int rv = new MSOIntegrationDAO().ProlongeTicket(context, (Guid)Membership.GetUser(login).ProviderUserKey); switch (rv) { case 0: return(OperationResult.OK); default: return(OperationResult.InvalidTicket); } } catch { return(OperationResult.DBConnectionError); } }
/// <summary> /// Processes the document. /// </summary> public void ProcessDocument() { int index = -1; Dictionary <string, int> customXmlPartsIndexes; using (WordprocessingDocument document = WordprocessingDocument.Open(view.FileName, true)) { MainDocumentPart mainPart = document.MainDocumentPart; XmlDocument eSodaData = new MSOIntegrationDAO().GetMSOServiceContextBin(view.DocumentID, EsodaConfigurationParameters.TicketDuration, string.IsNullOrEmpty(view.ItemGuid) ? null : ((Guid?)new Guid(view.ItemGuid)), view.Description, null); MSOProcessingHelper helper = new MSOProcessingHelper(); //customXmlPartsIndexes = helper.GetCustomXmlPartsIndexes(mainPart, null); customXmlPartsIndexes = helper.GetCustomXmlPartsIndexes(mainPart, null, null); if (customXmlPartsIndexes.Keys.Contains <string>("context")) { index = customXmlPartsIndexes["context"]; } //helper.SetEsodaData(true, false, view.DocumentID, view.ItemGuid, view.Description, index, ref mainPart); helper.SetEsodaData(eSodaData, index, ref mainPart); } }
/// <summary> /// Gets the name of the template file. /// </summary> public string GetTemplateFileName() { string fileName = null; view.WithSchema = true; try { if (view.Mode == Modes.Create) { fileName = new MSOIntegrationDAO().GetMSOTemplateFileName(view.DocumentID); } else if (view.Mode == Modes.Edit) { MSOIntegrationDAO msoIntegrationDao = new MSOIntegrationDAO(); fileName = msoIntegrationDao.GetMSOFileName(view.DocumentID); if (string.IsNullOrEmpty(fileName)) { fileName = msoIntegrationDao.GetMSOTemplateFileName(view.DocumentID); } } if (string.IsNullOrEmpty(fileName)) { MSOTemplateDTO msoTemplateDto = new MSOTemplateDAO().GetCurrentMSOTemplate(true); if (msoTemplateDto != null) { fileName = msoTemplateDto.FileName; } view.WithSchema = false; } if (string.IsNullOrEmpty(fileName)) { view.ErrorMessage = "Nie udało się pobrać nazwy pliku template'u."; view.WithSchema = false; return(null); } fileName = Path.Combine(MSOProcessingHelper.MSODirectoryPath, fileName); if (!File.Exists(fileName)) { view.ErrorMessage = "Podany plik nie istnieje: " + fileName; view.WithSchema = false; return(null); } } catch (SqlException se) { view.ErrorMessage = "Wystąpił wyjątek podczas pobierania nazwy pliku template'u: " + se.Message; view.WithSchema = false; } return(fileName); }
private int saveGenericDocument(string filePath, string originalFilename, string mimeType, Guid documentGuid, Guid?elementVersionGuid, string description, string desiredName, string ticket) { DocumentDAO dao = new DocumentDAO(); Guid userID = new MSOIntegrationDAO().GetUseGuidFromTicket(ticket); Guid itemId = Guid.Empty; int documentID = dao.GetDocumentIDForGuid(documentGuid); if (documentID == 0) { return(-1); } FileStream fs = File.OpenRead(filePath); try { if (!elementVersionGuid.HasValue) { dao.AddNewDocumentItem(documentID, originalFilename, description, fs, mimeType, ref itemId, DocumentItemCategory.Created); DocumentItemDTO docItem = dao.GetItem(itemId); string[] fullname = Membership.GetUser(userID).Comment.Split(' '); string imie = fullname.Length >= 2 ? fullname[1] : string.Empty; string nazwisko = fullname.Length >= 1 ? fullname[0] : string.Empty; List <string> paramList = new List <string>(); paramList.Add(originalFilename); ActionLogger al = new ActionLogger(new ActionContext(new Guid("9cd585bb-2a06-4c24-b415-aa3f8b00ea5f"), userID, Membership.GetUser(userID).UserName, Membership.GetUser(userID).Comment, paramList)); al.AppliesToDocuments.Add(documentID); al.ActionData.Add("idDokumentu", documentID.ToString()); al.ActionData.Add("idPracownika", Membership.GetUser(userID).UserName); al.ActionData.Add("imie", imie); al.ActionData.Add("nazwisko", nazwisko); al.ActionData.Add("dataDodania", docItem.CreationDate.ToString()); al.ActionData.Add("idPliku", docItem.ID.ToString()); al.ActionData.Add("nazwaPliku", originalFilename); al.Execute(); } else { dao.AddNewVersionOfDocumentItem(documentID, elementVersionGuid.Value, description, fs, mimeType, desiredName, DocumentItemCategory.Created); } } catch { return(-2); } return(0); }
private int validateXmlData(XmlDocument xdoc, MSOWebServiceCallContextDTO context) { MSOIntegrationDAO dao = new MSOIntegrationDAO(); string schemaFile = Path.Combine(Pemi.Esoda.Tools.MSOIntegrationHelper.MSOProcessingHelper.MSODirectoryPath, dao.GetMSOSchemaFileName(context.DocumentGUID)); if (string.IsNullOrEmpty(schemaFile)) { return(-1); //no schemaFile } XmlValidator xv = new XmlValidator(); try { return(xv.ValidateWithSchemaFile(xdoc.OuterXml, schemaFile) ? 1 : 0); //1 - xml valid, 0 - xml not valid } catch { return(-2); //validator error } }
/// <summary> /// Processes the document. /// </summary> public void ProcessDocument() { int index = -1; Dictionary <string, int> customXmlPartsIndexes; using (WordprocessingDocument document = WordprocessingDocument.Open(view.FileName, true)) { MainDocumentPart mainPart = document.MainDocumentPart; XmlDocument eSodaData = new MSOIntegrationDAO().GetMSOServiceContextLAW(view.DocumentID, EsodaConfigurationParameters.TicketDuration); //? MSOProcessingHelper helper = new MSOProcessingHelper(); customXmlPartsIndexes = helper.GetCustomXmlPartsIndexes(mainPart, null, null); if (customXmlPartsIndexes.Keys.Contains <string>("context")) { index = customXmlPartsIndexes["context"]; } helper.SetEsodaData(eSodaData, index, ref mainPart); } }
/// <summary> /// Processes the document. /// </summary> public bool ProcessDocument() { try { using (WordprocessingDocument document = WordprocessingDocument.Open(view.FileName, true)) { MainDocumentPart mainPart = document.MainDocumentPart; XmlDocument xmlData = null; XmlDocument eSodaData = new MSOIntegrationDAO().GetMSOServiceContext(view.DocumentID, EsodaConfigurationParameters.TicketDuration, view.WithSchema); int index = -1; string storeItemID = null; Dictionary <string, int> customXmlPartsIndexes; MSOProcessingHelper processingHelper = new MSOProcessingHelper(); MSOGenerationHelper generationHelper = new MSOGenerationHelper(); List <CustomXmlElement> customXmlElements = generationHelper.BuildCustomXmlStructure(mainPart); storeItemID = generationHelper.GetStoreItemID(customXmlElements); //customXmlPartsIndexes = processingHelper.GetCustomXmlPartsIndexes(mainPart, storeItemID); customXmlPartsIndexes = processingHelper.GetCustomXmlPartsIndexes(mainPart, storeItemID, processingHelper.GetTargetNamespaces(eSodaData)); if (customXmlPartsIndexes.Keys.Contains <string>("xmlData")) { index = customXmlPartsIndexes["xmlData"]; } xmlData = processingHelper.SetDocumentData(view.Mode, view.DocumentID, index, out storeItemID, ref mainPart); if (xmlData != null) { XmlNamespaceManager nsManager = new XmlNamespaceManager(xmlData.NameTable); int prefixIndex = 0; generationHelper.SetNamespaces(xmlData.DocumentElement, ref prefixIndex, ref nsManager); if (customXmlElements.Count > 0) { for (int i = 0; i < customXmlElements.Count; ++i) { CustomXmlElement customXmlElement = customXmlElements[i]; generationHelper.GenerateAttributes(xmlData.DocumentElement, nsManager, ref customXmlElement); generationHelper.GenerateDataBindings(xmlData.DocumentElement, nsManager, storeItemID, ref customXmlElement); //generationHelper.GenerateCustomControls(xmlData.DocumentElement, nsManager, storeItemID, ref customXmlElement); } } #region For future releases //else //{ // OpenXmlElement customXmlBlock = new CustomXmlBlock(); // ((CustomXmlBlock)customXmlBlock).Element = new StringValue(xmlData.DocumentElement.LocalName); // if (mainPart.Document.Body.Elements<DocumentFormat.OpenXml.Wordprocessing.Paragraph>().Count() > 0) // { // mainPart.Document.Body.Elements<DocumentFormat.OpenXml.Wordprocessing.Paragraph>().Last().AppendChild(customXmlBlock); // } // else // { // mainPart.Document.Body.PrependChild(customXmlBlock); // } // generationHelper.GenerateCustomXmlBlocks(xmlData.DocumentElement, null, nsManager, ref customXmlBlock); //} #endregion mainPart.Document.Save(); } index = -1; if (customXmlPartsIndexes.Keys.Contains <string>("context")) { index = customXmlPartsIndexes["context"]; } //processingHelper.SetEsodaData(false, view.WithSchema, view.DocumentID, null, null, index, ref mainPart); processingHelper.SetEsodaData(eSodaData, index, ref mainPart); } } catch (Exception e) { view.ErrorMessage = "Błąd przetwarzania dokumentu Word: " + e.Message; return(false); } return(true); }
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); } }