public HomeViewModelMock() { LesNouveauxDocuments = new ObservableCollection<DocumentMetadataDataContract>(); for (int i = 0; i < 20; i++) { var dmDC = new DocumentMetadataDataContract(); dmDC.Auteur = "Alexandre Equoy"; dmDC.Commentaires="Je peux laisser un commentaire sur ce document"; dmDC.CreateDate = DateTime.Now; dmDC.DocumentVersion=1; dmDC.Producteur = "ACCESS IT"; dmDC.RubriqueDocument = "Lutte contre les nuisibles"; dmDC.SousTypeDocument = "Preuve"; dmDC.TypeDocument = "Contrat"; dmDC.RubriqueDocumentCode = "LN"; dmDC.SousTypeDocumentCode = "PRV"; dmDC.TypeDocumentCode = "CTN"; dmDC.Titre = "Catalogue de formation"; LesNouveauxDocuments.Add(dmDC); } LesTachesToDo = new ObservableCollection<IcomiTask>(); for (int i = 0; i < 4; i++) { LesTachesToDo.Add(new IcomiTask(string.Empty){Title="Prise de température dans les douches", TileTitle="Prise de T°",NbOccurence=1}); } }
/// <summary> /// Valide l'édition en cours et retourne à l'écran principal /// </summary> /// <param name="notUsed"></param> protected virtual void ExecuteValiderCommand(DocumentMetadataDataContract param) { if (param != null) { this.SelectedDocument = param; } }
private void Button_Click_1(object sender, RoutedEventArgs e) { try { this.ProgressInsert.Visibility = Visibility.Visible; var gSP = new GestionSharepoint(); string fileTest = this.FileTextBox.Text; string LibraryName = "ICOMI_BPH"; var dmDC = new DocumentMetadataDataContract(); dmDC.Auteur = "Alexandre Equoy"; dmDC.Commentaires = this.Commentaires.Text; dmDC.CreateDate = DateTime.Now; dmDC.DocumentVersion = 1; dmDC.Producteur = this.Producteur.Text; dmDC.RubriqueDocument = this.Rubrique.Text; dmDC.SousTypeDocument = this.SousType.Text; dmDC.TypeDocument = this.Type.Text; dmDC.RubriqueDocumentCode = RefObjectSPService.GetRubriques().Where(r => r.Libelle.Equals(this.Rubrique.Text)).First().Code; dmDC.SousTypeDocumentCode = RefObjectSPService.GetSousTypeDocument().Where(r => r.Libelle.Equals(this.SousType.Text)).First().Code; dmDC.TypeDocumentCode = RefObjectSPService.GetTypeDocument().Where(r => r.Libelle.Equals(this.Type.Text)).First().Code; ; dmDC.Titre = this.Titre.Text; var result = gSP.AddFile(LibraryName, dmDC, System.IO.File.ReadAllBytes(fileTest), ".PDF"); if (result != null) if (ReturnHome != null) ReturnHome(sender, e); this.ProgressInsert.Visibility = Visibility.Hidden; } catch (Exception ex) { } finally { this.Commentaires.Text = string.Empty; this.Producteur.Text = string.Empty; this.Titre.Text = string.Empty; } }
/// <summary> /// Indique si l'objet est valide /// </summary> private bool CanExecuteValiderCommand(DocumentMetadataDataContract param) { return true; }
/// <summary> /// Ajoute un fichier dans Sharepoint /// </summary> /// <param name="libraryName">le nom de la librairie de stockage</param> /// <param name="metadatas">les metadatas reliées au document</param> /// <param name="content">le document sous forme de tableau de bytes</param> /// <param name="extension">l'extension du fichier ajouté</param> /// <returns>le nom du fichier tel qu'il est connu dans sharepoint</returns> public string AddFile(string libraryName, DocumentMetadataDataContract metadatas, byte[] content, string extension) { BusinessException.ThrowIfNullOrEmpty(libraryName, "La librairie sharepoint contenant les documents n'a pas été spécifiée dans le fichier de configuration"); BusinessException.ThrowIfNullOrEmpty(extension, "L'extension n'a pas été renseignée."); BusinessException.ThrowIfNull(metadatas, "Les métadatas n'ont pas été renseignées."); BusinessException.ThrowIfNullOrEmpty(metadatas.RubriqueDocument, "La rubrique du document n'a pas été renseigné."); BusinessException.ThrowIfNullOrEmpty(metadatas.TypeDocument, "Le type du document n'a pas été renseigné."); BusinessException.ThrowIfNullOrEmpty(metadatas.SousTypeDocument, "Le sstype du document n'a pas été renseigné."); BusinessException.ThrowIfNullOrEmpty(metadatas.DocumentVersion.ToString(), "La Version du document n'a pas été renseigné."); try { extension = string.Concat(!extension.StartsWith(".", StringComparison.Ordinal) ? "." : "", extension); // Génération du nom du fichier (son identifiant) LN_PRV_CTN_100320121234321234_1 string codeName = string.Concat(metadatas.RubriqueDocumentCode, "_", metadatas.TypeDocumentCode, "_", metadatas.SousTypeDocumentCode, "_", DateTime.Now.ToString("ddMMyyyyhhmmssffff"), "_", metadatas.DocumentVersion.ToString()); metadatas.CodeDocument = codeName; string fileName = string.Concat(codeName, extension); // Récupère le contexte sharepoint var ctx = SharepointContextFactory.GetFullTrustContext(); if (ctx != null) { //ctx.Load(ctx.Web); // Query for Web //ctx.ExecuteQuery(); // Execute ctx.Load(ctx.Web.Folders); ctx.ExecuteQuery(); Microsoft.SharePoint.Client.Folder dir = null; foreach (var dirItem in ctx.Web.Folders) { if (dirItem.Name.Equals(libraryName)) dir = dirItem; } if (dir != null) { FileCollection documentsFiles = dir.Files; ctx.Load(documentsFiles); ctx.ExecuteQuery(); // Charge la collection des documents de la librairie //FileCollection documentsFiles = ctx.Web.GetFolderByServerRelativeUrl(libraryName).Files; //ctx.Load(documentsFiles); //ctx.ExecuteQuery(); // information sur le fichier FileCreationInformation fciNewFileFromComputer = new FileCreationInformation(); fciNewFileFromComputer.Content = content; fciNewFileFromComputer.Url = fileName; fciNewFileFromComputer.Overwrite = true; // Ajoute le fichier à la collection Microsoft.SharePoint.Client.File newFile = documentsFiles.Add(fciNewFileFromComputer); ctx.Load(newFile); // recupération des metadatas existantes sur le fichier Microsoft.SharePoint.Client.ListItem item = newFile.ListItemAllFields; ctx.Load(item); // ajout des metadatas au nouveau fichier FillMetadatas(item, metadatas, fileName); item.Update(); ctx.Load(item); ctx.ExecuteQuery(); return fileName; } } return null; } catch (Exception ex) { throw new BusinessException(GetType().FullName, "UploadToSharepoint", "Erreur lors de l'envoi du document vers Sharepoint : " + ex.Message, ex); } }
/// <summary> /// Récupère les documents qui ont changé dans les librairies /// </summary> /// <returns>la liste des documents</returns> public List<DocumentMetadataDataContract> GetAllChangedDocumentMetaByRubrique(string libraryName) { List<DocumentMetadataDataContract> listMeta = new List<DocumentMetadataDataContract>(); try { // Récupère le contexte sharepoint var ctx = SharepointContextFactory.GetContext(); string camlQuery = "<Where><Geq><FieldRef Name='Modified'/><Value Type='DateTime'><Today OffsetDays='-20'/></Value></Geq> </Where>"; ListItemCollection listItems; if (TryGetListItem(ctx, libraryName, camlQuery, out listItems)) { if (listItems.Count > 0) { foreach (ListItem listItem in listItems.ToList()) { var dmDC = new DocumentMetadataDataContract(); dmDC.NomDocument = listItem.FieldValues["NomDocument"] != null ? listItem.FieldValues["NomDocument"].ToString() : string.Empty; dmDC.CreateDate = listItem.FieldValues["Modified"] != null ? (DateTime)listItem.FieldValues["Modified"] : DateTime.Now; dmDC.CodeDocument = listItem.FieldValues["CodeDocument"] != null ? listItem.FieldValues["CodeDocument"].ToString() : string.Empty; dmDC.Commentaires = listItem.FieldValues["Commentaires"] != null ? listItem.FieldValues["Commentaires"].ToString() : string.Empty; dmDC.RubriqueDocument = listItem.FieldValues["RubriqueDocument"] != null ? listItem.FieldValues["RubriqueDocument"].ToString() : string.Empty; dmDC.TypeDocument = listItem.FieldValues["TypeDocument"] != null ? listItem.FieldValues["TypeDocument"].ToString() : string.Empty; dmDC.SousTypeDocument = listItem.FieldValues["SousTypeDocument"] != null ? listItem.FieldValues["SousTypeDocument"].ToString() : string.Empty; dmDC.RubriqueDocumentCode = listItem.FieldValues["RubriqueDocumentCode"] != null ? listItem.FieldValues["RubriqueDocumentCode"].ToString() : string.Empty; dmDC.TypeDocumentCode = listItem.FieldValues["TypeDocumentCode"] != null ? listItem.FieldValues["TypeDocumentCode"].ToString() : string.Empty; dmDC.SousTypeDocumentCode = listItem.FieldValues["SousTypeDocumentCode"] != null ? listItem.FieldValues["SousTypeDocumentCode"].ToString() : string.Empty; dmDC.DocumentVersion = listItem.FieldValues["DocumentVersion"] != null ? Int32.Parse(listItem.FieldValues["DocumentVersion"].ToString()) : 1; dmDC.Producteur = listItem.FieldValues["Producteur"] != null ? listItem.FieldValues["Producteur"].ToString() : string.Empty; dmDC.Titre = listItem.FieldValues["Title"] != null ? listItem.FieldValues["Title"].ToString() : string.Empty; dmDC.Auteur = listItem.FieldValues["Auteur"] != null ? listItem.FieldValues["Auteur"].ToString() : string.Empty; listMeta.Add(dmDC); } } else { } } else { throw new BusinessException(GetType().FullName, "GetAllChangedDocumentMetaByRubrique", string.Format("Erreur lors de la récupération des documents qui ont changé dans Sharepoint.")); } return listMeta; } catch (ExceptionBase) { throw; } catch (Exception ex) { throw new BusinessException(GetType().FullName, "GetAllChangedDocumentMetaByRubrique", string.Format("Erreur lors de la récupération des documents qui ont changé dans Sharepoint : {1}", ex.Message), ex); } }
/// <summary> /// Obtenir la liste des meta données des courrier /// </summary> /// <param name="id">liste des identifiant dossier</param> /// <param name="libraryName">nom de la lib</param> /// <param name="extension">extension dosseir</param> /// <returns></returns> public List<DocumentMetadataDataContract> GetAllDocumentMetaByRubrique(string rubriqueCode, string libraryName, out string extension) { // tester si le parametre est nulle; BusinessException.ThrowIfNull(rubriqueCode, "la rubrique n'est pas renseignée"); extension = string.Empty; List<DocumentMetadataDataContract> listMeta = new List<DocumentMetadataDataContract>(); try { // Récupère le contexte sharepoint var ctx = SharepointContextFactory.GetContext(); string camlQuery = string.Format("<View><Query><Where><Eq><FieldRef Name='RubriqueDocumentCode' /><Value Type='Text'>{0}</Value></Eq></Where></Query></View>", rubriqueCode); ListItemCollection listItems; if (TryGetListItem(ctx, libraryName, camlQuery, out listItems)) { if (listItems.Count > 0) { foreach (ListItem listItem in listItems.ToList()) { var dmDC = new DocumentMetadataDataContract(); dmDC.NomDocument = listItem.FieldValues["NomDocument"] != null ? listItem.FieldValues["NomDocument"].ToString() : string.Empty; dmDC.CreateDate = listItem.FieldValues["Modified"] != null ? (DateTime)listItem.FieldValues["Modified"] : DateTime.Now; dmDC.CodeDocument = listItem.FieldValues["CodeDocument"] != null ? listItem.FieldValues["CodeDocument"].ToString() : string.Empty; dmDC.Commentaires = listItem.FieldValues["Commentaires"] != null ? listItem.FieldValues["Commentaires"].ToString() : string.Empty; dmDC.RubriqueDocument = listItem.FieldValues["RubriqueDocument"] != null ? listItem.FieldValues["RubriqueDocument"].ToString() : string.Empty; dmDC.TypeDocument = listItem.FieldValues["TypeDocument"] != null ? listItem.FieldValues["TypeDocument"].ToString() : string.Empty; dmDC.SousTypeDocument = listItem.FieldValues["SousTypeDocument"] != null ? listItem.FieldValues["SousTypeDocument"].ToString() : string.Empty; dmDC.RubriqueDocumentCode = listItem.FieldValues["RubriqueDocumentCode"] != null ? listItem.FieldValues["RubriqueDocumentCode"].ToString() : string.Empty; dmDC.TypeDocumentCode = listItem.FieldValues["TypeDocumentCode"] != null ? listItem.FieldValues["TypeDocumentCode"].ToString() : string.Empty; dmDC.SousTypeDocumentCode = listItem.FieldValues["SousTypeDocumentCode"] != null ? listItem.FieldValues["SousTypeDocumentCode"].ToString() : string.Empty; dmDC.DocumentVersion = listItem.FieldValues["DocumentVersion"] != null ? Int32.Parse(listItem.FieldValues["DocumentVersion"].ToString()) : 1; dmDC.Producteur = listItem.FieldValues["Producteur"] != null ? listItem.FieldValues["Producteur"].ToString() : string.Empty; dmDC.Titre = listItem.FieldValues["Title"] != null ? listItem.FieldValues["Title"].ToString() : string.Empty; dmDC.Auteur = listItem.FieldValues["Auteur"] != null ? listItem.FieldValues["Auteur"].ToString() : string.Empty; listMeta.Add(dmDC); } } else { } } else { throw new BusinessException(GetType().FullName, "GetAllDocumentMetaByRubrique", string.Format("Erreur lors de la récupération des documents de la rubrique '{0}' dans Sharepoint.", rubriqueCode)); } return listMeta; } catch (ExceptionBase) { throw; } catch (Exception ex) { throw new BusinessException(GetType().FullName, "GetAllDocumentMetaByRubrique", string.Format("Erreur lors de la récupération des documents de la rubrique '{0}' dans Sharepoint : {1}", rubriqueCode, ex.Message), ex); } }
/// <summary> /// Remplit les metadatas d'un document /// </summary> /// <param name="item">l'item sharepoint représentant le fichier que l'on va traiter</param> /// <param name="metadata">des métadatas</param> /// <param name="fileName">le nom du fichier</param> protected void FillMetadatas(Microsoft.SharePoint.Client.ListItem item, DocumentMetadataDataContract metadata, string fileName) { item["CodeDocument"] = metadata.CodeDocument; item["Auteur"] = metadata.Auteur; item["Commentaires"] = metadata.Commentaires; item["DocumentVersion"] = metadata.DocumentVersion.ToString(); item["NomDocument"] = fileName; item["Producteur"] = metadata.Producteur; item["Title"] = metadata.Titre; item["RubriqueDocument"] = metadata.RubriqueDocument; item["TypeDocument"] = metadata.TypeDocument; item["SousTypeDocument"] = metadata.SousTypeDocument; item["RubriqueDocumentCode"] = metadata.RubriqueDocumentCode; item["TypeDocumentCode"] = metadata.TypeDocumentCode; item["SousTypeDocumentCode"] = metadata.SousTypeDocumentCode; }
/// <summary> /// Valide l'édition en cours et retourne à l'écran principal /// </summary> /// <param name="notUsed"></param> protected virtual void ExecuteViewDocumentCommand(DocumentMetadataDataContract param) { try { var leDocument = param.NomDocument; string savedFile = System.IO.Path.Combine(System.IO.Path.GetTempPath(), leDocument); if (!File.Exists(savedFile)) { _dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action( delegate() { GestionSharepoint gSP = new GestionSharepoint(); string extension = string.Empty; var document = gSP.GetFile(leDocument, "ICOMI_BPH", out extension); File.WriteAllBytes(savedFile, document); } )); } System.Diagnostics.Process.Start(savedFile); } catch { } }
static void Main(string[] args) { //if (args.Length < 1) { Console.WriteLine("SP_Ctx <url>"); return; } //string targetSite = args[0]; //using (ClientContext ctx = ClaimClientContext.GetAuthenticatedContext(targetSite)) //{ // if (ctx != null) // { // ctx.Load(ctx.Web); // Query for Web // ctx.ExecuteQuery(); // Execute // var list = ctx.Web.Lists.GetByTitle("ICOMI_ERP_PLANIF"); // var camlQuery = new CamlQuery // { // ViewXml = @"<View/>" // }; // var listItemCollection = list.GetItems(camlQuery); // ctx.Load(listItemCollection); // ctx.ExecuteQuery(); // string s = string.Empty; // foreach (var item in listItemCollection) // { // foreach (var key in item.FieldValues.Keys) // { // Console.WriteLine(key); // Console.WriteLine(item.FieldValues[key]); // } // } // } //} //using (ClientContext ctx = ClaimClientContext.GetAuthenticatedContext(GestionSharepoint.SharepointUrl)) //{ // if (ctx != null) // { //ctx.Load(ctx.Web); // Query for Web //ctx.ExecuteQuery(); // Execute //foreach (var item in ctx.Web.Folders) //{ // ctx.Load(item.Files); // ctx.ExecuteQuery(); //} var gSP = new GestionSharepoint(); //Sharepoint.QueryServiceSoapClient monClient = new Sharepoint.QueryServiceSoapClient(); //monClient.ClientCredentials.UserName.UserName = "******"; //monClient.ClientCredentials.UserName.Password = "******"; //System.Data.DataSet queryResults = monClient.QueryEx(GetXMLString()); var ctx = SharepointContextFactory.GetContext(); var list = ctx.Web.Lists.GetByTitle("ICOMI_ERP_PLANIF"); ctx.Load(list); ctx.ExecuteQuery(); string dede = @"<View><Query> <Where> <DateRangesOverlap> <FieldRefName='EventDate' /> <FieldRefName='EndDate' /> <FieldRefName='RecurrenceID' /> <ValueType='DateTime'> <Today /> </Value> </DateRangesOverlap> </Where> </Query> <QueryOptions> <ExpandRecurrence>TRUE</ExpandRecurrence> <CalendarDate> <Today /> </CalendarDate> <ViewAttributesScope='RecursiveAll' /> </QueryOptions> </View>"; string dede2 = @"<View><Query> <Where><DateRangesOverlap> <FieldRef Name='EventDate' /> <FieldRef Name='EndDate' /> <FieldRef Name='RecurrenceID'/> <Value Type='DateTime'> <Today /> </Value> </DateRangesOverlap> </Where> </Query></View>"; string dede3 = "<View scope='RecursiveAll'><Query> <Where><And><Eq> <FieldRef Name='User'/> <Value Type='Lookup'>Alexandre Equoy</Value> </Eq> <DateRangesOverlap> <FieldRef Name='EventDate' /> <FieldRef Name='EndDate' /> <FieldRef Name='RecurrenceID'/> <Value Type='DateTime'> <Today /> </Value> </DateRangesOverlap> </And></Where> </Query></View>"; var camlQuery = new CamlQuery { ViewXml = dede3 }; // </And>LookupId='TRUE' var l = list.GetItems(camlQuery); ctx.Load(l); ctx.ExecuteQuery(); foreach (var item in l) { string s = item.FieldValues["StartTime"].ToString(); foreach (var item2 in item.FieldValues) { } } ChangeToken ct = null; var q = list.GetChanges(new ChangeQuery() { Add = true }); //ctx.Web.GetChanges( Add = true, Update = true, File = true }); ctx.Load(q); ctx.ExecuteQuery(); while (q.Count > 0) { } string tempDir = @"C:\Users\aequoy.ACCESSIT\Documents"; string fileTest = @"C:\Users\aequoy.ACCESSIT\Documents\catalogue_formation_2012_normal.pdf"; string LibraryName = "ICOMI_BPH"; var dmDC = new DocumentMetadataDataContract(); dmDC.Auteur = "Alexandre Equoy"; dmDC.Commentaires="Je peux laisser un commentaire sur ce document"; dmDC.CreateDate = DateTime.Now; dmDC.DocumentVersion=1; dmDC.Producteur = "ACCESS IT"; dmDC.RubriqueDocument = "Lutte contre les nuisibles"; dmDC.SousTypeDocument = "Preuve"; dmDC.TypeDocument = "Contrat"; dmDC.RubriqueDocumentCode = "LN"; dmDC.SousTypeDocumentCode = "PRV"; dmDC.TypeDocumentCode = "CTN"; dmDC.Titre = "Catalogue de formation"; //gSP.AddFile(LibraryName, dmDC, System.IO.File.ReadAllBytes(fileTest), ".PDF"); string extension = string.Empty; var ll = gSP.GetAllDocumentMetaByRubrique("LN", LibraryName, out extension); // } //} Console.ReadLine(); }