/// <summary> /// Télécharge le fichier d'installation du module déporté désiré /// </summary> /// <param name="module"></param> /// <param name="version"></param> /// <param name="fileContent"></param> /// <param name="completed"></param> public void UploadModule(Proteca.Silverlight.Enums.NavigationEnums.ModulesNavigation module, string version, byte[] fileContent, Action<Exception> completed) { Logger.Log(LogSeverity.Information, GetType().FullName, MethodBase.GetCurrentMethod().Name); ResetContext(); if (ContextClientSharePoint != null) { DAVHelper.UploadFile(ContextClientSharePoint.Url + ModulesDefaultFolder + "/" + module.GetStringValue(), fileContent, (ex) => { if (ex != null) { Logger.Log(LogSeverity.Error, this.GetType().FullName, ex); _syncCtxt.Post(unused => completed(ex), null); } else { _syncCtxt.Post(unused => UpdateModule(module, version, completed), null); } }); } else { var ex = new Exception(Resource.TypeDocument_SharepointContextError); Logger.Log(LogSeverity.Warning, this.GetType().FullName, ex); completed(ex); } }
/// <summary> /// Mise à jour du numéro de version du fichier d'installation du module déporté désiré /// </summary> /// <param name="module"></param> /// <param name="version"></param> /// <param name="completed"></param> public void UpdateModule(Proteca.Silverlight.Enums.NavigationEnums.ModulesNavigation module, string version, Action<Exception> completed) { Logger.Log(LogSeverity.Information, GetType().FullName, MethodBase.GetCurrentMethod().Name); ResetContext(); if (ContextClientSharePoint != null) { Folder folder = ContextClientSharePoint.Web.GetFolderByServerRelativeUrl(ModulesDefaultFolder); var files = ContextClientSharePoint.LoadQuery(folder.Files.Include(f => f.Name)); // Chargement des contentTypes ContentTypeCollection contentTypes = ContextClientSharePoint.Web.AvailableContentTypes; ContextClientSharePoint.Load(contentTypes); ContextClientSharePoint.ExecuteQueryAsync( (o, e) => { var resFiles = files.ToList(); var file = resFiles.Where(f => f.Name == module.GetStringValue()).FirstOrDefault(); ListItem item = file.ListItemAllFields; ContextClientSharePoint.Load(item); item["_Comments"] = version; item["ContentTypeId"] = contentTypes.Where(c => c.Name == "Proteca Module Document").Select(c => c.Id); // Mise à jour du document item.Update(); ContextClientSharePoint.ExecuteQueryAsync( (oo, ee) => { _syncCtxt.Post(unused => completed(null), null); }, (oo, ee) => { Logger.Log(LogSeverity.Error, this.GetType().FullName, ee.Exception); _syncCtxt.Post(unused => completed(ee.Exception), null); }); }, (o, e) => { Logger.Log(LogSeverity.Error, this.GetType().FullName, e.Exception); _syncCtxt.Post(unused => completed(e.Exception), null); } ); } else { var ex = new Exception(Resource.TypeDocument_SharepointContextError); Logger.Log(LogSeverity.Warning, this.GetType().FullName, ex); completed(ex); } }
/// <summary> /// Télécharge le fichier d'installation du module déporté désiré /// </summary> /// <param name="module"></param> public Uri LinkModule(Proteca.Silverlight.Enums.NavigationEnums.ModulesNavigation module) { if (ContextClientSharePoint != null) { return new Uri(ContextClientSharePoint.Url + ModulesDefaultFolder + "/" + module.GetStringValue(), UriKind.Absolute); } else { return new Uri(ModulesDefaultFolder + module.GetStringValue(), UriKind.Relative); } }
/// <summary> /// Récupère le champ Comments d'un des modules /// </summary> /// <param name="relativePath"></param> /// <param name="folderName"></param> public void GetModuleVersion(Proteca.Silverlight.Enums.NavigationEnums.ModulesNavigation module, Action<Exception, string> completed) { Logger.Log(LogSeverity.Information, GetType().FullName, MethodBase.GetCurrentMethod().Name); ResetContext(); if (ContextClientSharePoint != null) { Folder folder = ContextClientSharePoint.Web.GetFolderByServerRelativeUrl(ModulesDefaultFolder); var files = ContextClientSharePoint.LoadQuery(folder.Files.Include(f => f.Name)); ContextClientSharePoint.ExecuteQueryAsync( (o, e) => { var resFiles = files.ToList(); var file = resFiles.Where(f => f.Name == module.GetStringValue()).FirstOrDefault(); ListItem item = file.ListItemAllFields; ContextClientSharePoint.Load(item); _syncCtxt.Post(unused => completed(null, item["_Comments"].ToString()), null); }, (o, e) => { Logger.Log(LogSeverity.Error, this.GetType().FullName, e.Exception); _syncCtxt.Post(unused => completed(e.Exception, String.Empty), null); } ); } else { var ex = new Exception(Resource.TypeDocument_SharepointContextError); Logger.Log(LogSeverity.Warning, this.GetType().FullName, ex); completed(ex, String.Empty); } }
/// <summary> /// Supprime le fichier d'installation du module déporté désiré /// </summary> /// <param name="module"></param> /// <param name="completed"></param> public void DeleteModule(Proteca.Silverlight.Enums.NavigationEnums.ModulesNavigation module, Action<Exception> completed) { Logger.Log(LogSeverity.Information, GetType().FullName, MethodBase.GetCurrentMethod().Name); ResetContext(); if (ContextClientSharePoint != null) { Folder folder = ContextClientSharePoint.Web.GetFolderByServerRelativeUrl(ModulesDefaultFolder); var files = ContextClientSharePoint.LoadQuery(folder.Files.Include(f => f.Name)); ContextClientSharePoint.ExecuteQueryAsync( (o, e) => { var resFiles = files.ToList(); if (resFiles.Where(f => f.Name == module.GetStringValue()).Count() == 1) { var file = resFiles.Where(f => f.Name == module.GetStringValue()).First(); // Suppression du fichier file.DeleteObject(); _syncCtxt.Post(unused => ContextClientSharePoint.ExecuteQueryAsync( (oo, ee) => { _syncCtxt.Post(unused2 => completed(null), null); }, (oo, ee) => { Logger.Log(LogSeverity.Error, this.GetType().FullName, ee.Exception); _syncCtxt.Post(unused2 => completed(ee.Exception), null); }), null); } else { _syncCtxt.Post(unused => completed(new Exception(Resource.TypeDocument_SharepointFileError)), null); } }, (o, e) => { Logger.Log(LogSeverity.Error, this.GetType().FullName, e.Exception); _syncCtxt.Post(unused => completed(e.Exception), null); } ); } else { var ex = new Exception(Resource.TypeDocument_SharepointContextError); Logger.Log(LogSeverity.Warning, this.GetType().FullName, ex); completed(ex); } }
/// <summary> /// Récupère le role en fonction du code d'autorisation /// </summary> /// <param name="autorisationCode"></param> /// <returns></returns> public UsrRole GetRoleByAutorisationCode(Proteca.Web.Models.RefUsrAutorisation.ListAutorisationsEnum autorisationCode) { UsrRole role = null; if (this.UsrProfil != null && this.UsrProfil.UsrRole != null) { role = this.UsrProfil.UsrRole.Where(r => r.RefUsrAutorisation != null && r.RefUsrAutorisation.CodeAutorisation == autorisationCode.ToString()).FirstOrDefault(); } return role; }