protected override void Save(IEnvironmentModel environmentModel, dynamic jsonObj) { // ReSharper disable once MaximumChainedReferences string resName = jsonObj.resourceName; string resCat = HelperUtils.SanitizePath((string)jsonObj.resourcePath, resName); var sharepointSource = new SharepointSource { Server = Server,UserName = _userName,Password = _password,AuthenticationType = _authenticationType, ResourceName = resName, ResourcePath = resCat, IsNewResource = true, ResourceID = Guid.NewGuid() }; var source = sharepointSource.ToStringBuilder(); environmentModel.ResourceRepository.SaveResource(environmentModel, source, GlobalConstants.ServerWorkspaceID); environmentModel.ResourceRepository.ReloadResource(sharepointSource.ResourceID, ResourceType.Source, ResourceModelEqualityComparer.Current, true); }
/// <summary> /// Executes the service /// </summary> /// <param name="values">The values.</param> /// <param name="theWorkspace">The workspace.</param> /// <returns></returns> public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace) { Dev2JsonSerializer serializer = new Dev2JsonSerializer(); if(values == null) { throw new InvalidDataContractException("No parameter values provided."); } string serializedSource = null; StringBuilder tmp; values.TryGetValue("SharepointServer", out tmp); if(tmp != null) { serializedSource = tmp.ToString(); } if(string.IsNullOrEmpty(serializedSource)) { ExecuteMessage message = new ExecuteMessage(); message.HasError = true; message.SetMessage("No sharepoint server set."); Dev2Logger.Log.Debug("No sharepoint server set."); return serializer.SerializeToBuilder(message); } SharepointSource source; SharepointSource runtimeSource = null; try { source = serializer.Deserialize<SharepointSource>(serializedSource); if(source.ResourceID != Guid.Empty) { runtimeSource = ResourceCatalog.Instance.GetResource<SharepointSource>(theWorkspace.ID, source.ResourceID); if(runtimeSource == null) { var contents = ResourceCatalog.Instance.GetResourceContents(theWorkspace.ID, source.ResourceID); runtimeSource = new SharepointSource(contents.ToXElement()); } } } catch(Exception e) { Dev2Logger.Log.Error(e); var res = new DbTableList("Invalid JSON data for sharepoint server parameter. Exception: {0}", e.Message); return serializer.SerializeToBuilder(res); } if(runtimeSource == null) { var res = new DbTableList("Invalid sharepoint server source"); Dev2Logger.Log.Debug("Invalid sharepoint server source"); return serializer.SerializeToBuilder(res); } if(string.IsNullOrEmpty(runtimeSource.Server)) { var res = new DbTableList("Invalid sharepoint server sent {0}.", serializedSource); Dev2Logger.Log.Debug(String.Format("Invalid sharepoint server sent {0}.", serializedSource)); return serializer.SerializeToBuilder(res); } try { Dev2Logger.Log.Info("Get Sharepoint Server Lists. " + source.Server); List<SharepointListTo> lists = runtimeSource.LoadLists(); return serializer.SerializeToBuilder(lists); } catch(Exception ex) { var tables = new DbTableList(ex); return serializer.SerializeToBuilder(tables); } }
void UpdateBasedOnResource(SharepointSource sharepointSource) { ServerName = sharepointSource.Server; UserName = sharepointSource.UserName; Password = sharepointSource.Password; AuthenticationType = sharepointSource.AuthenticationType; }
SharepointSource CreateSharepointServerSource() { var source = new SharepointSource { Server = ServerName, UserName = UserName, Password = Password, AuthenticationType = AuthenticationType }; return source; }
/// <summary> /// Executes the service /// </summary> /// <param name="values">The values.</param> /// <param name="theWorkspace">The workspace.</param> /// <returns></returns> public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace) { if(values == null) { throw new InvalidDataContractException("No parameter values provided."); } string serializedSource = null; string listName = null; string editableOnly = null; StringBuilder tmp; values.TryGetValue("SharepointServer", out tmp); if(tmp != null) { serializedSource = tmp.ToString(); } values.TryGetValue("ListName", out tmp); if(tmp != null) { listName = tmp.ToString(); } values.TryGetValue("OnlyEditable", out tmp); if (tmp != null) { editableOnly = tmp.ToString(); } Dev2JsonSerializer serializer = new Dev2JsonSerializer(); if(string.IsNullOrEmpty(serializedSource)) { var res = new ExecuteMessage(); res.HasError = true; res.SetMessage("No sharepoint server set"); Dev2Logger.Log.Debug("No sharepoint server set."); return serializer.SerializeToBuilder(res); } if(string.IsNullOrEmpty(listName)) { var res = new ExecuteMessage(); res.HasError = true; res.SetMessage("No sharepoint list name set"); Dev2Logger.Log.Debug("No sharepoint list name set."); return serializer.SerializeToBuilder(res); } var editableFieldsOnly = false; if(!string.IsNullOrEmpty(editableOnly)) { editableFieldsOnly = serializer.Deserialize<bool>(editableOnly); } try { listName = serializer.Deserialize<string>(listName); var sharepointSource = serializer.Deserialize<SharepointSource>(serializedSource); var source = ResourceCatalog.Instance.GetResource<SharepointSource>(theWorkspace.ID, sharepointSource.ResourceID); if (source == null) { var contents = ResourceCatalog.Instance.GetResourceContents(theWorkspace.ID, sharepointSource.ResourceID); source = new SharepointSource(contents.ToXElement()); } List<ISharepointFieldTo> fields = source.LoadFieldsForList(listName, editableFieldsOnly); return serializer.SerializeToBuilder(fields); } catch(Exception ex) { Dev2Logger.Log.Error(ex); var res = new DbColumnList(ex); return serializer.SerializeToBuilder(res); } }