public OtherFileEntry(ResourceCatalog _owner, string _name, 
		                             string _fileName, string _typeName, 
		                             bool isMeta)
        {
            if (_name == null)
                throw new ArgumentNullException ("name");
            if (_name == String.Empty)
                throw new ArgumentException ("name", "should not be empty");
            if (_fileName == null)
                throw new ArgumentNullException ("fileName");
            if (_fileName == String.Empty)
                throw new ArgumentException ("fileName", "should not be empty");
            if (_typeName == null)
                throw new ArgumentNullException ("typeName");
            if (_typeName == String.Empty)
                throw new ArgumentException ("typename", "should not be empty");
            if (_owner == null)
                throw new ArgumentNullException ("owner");

            if (_typeName.StartsWith ("System.String, mscorlib") ||
                _typeName.StartsWith ("System.Drawing.Bitmap, System.Drawing") ||
                _typeName.StartsWith ("System.Drawing.Icon, System.Drawing") ||
                _typeName.StartsWith ("System.IO.MemoryStream, mscorlib"))
                throw new ArgumentException ("TypeName","Invalid resource type");

            IsMeta = isMeta;
            Owner = _owner;
            node = new ResXDataNode (_name, new ResXFileRef (_fileName, _typeName));
            SetRelativePos ();
        }
        public BinaryOrStringEntry(ResourceCatalog _owner, string _name, 
		                             string _fileName, string _typeName, 
		                             Encoding _encoding, bool isMeta)
        {
            if (_name == null)
                throw new ArgumentNullException ("name");
            if (_name == String.Empty)
                throw new ArgumentException ("name", "Name should not be empty");
            if (_fileName == null)
                throw new ArgumentNullException ("fileName");
            if (_fileName == String.Empty)
                throw new ArgumentException ("fileName", "should not be empty");
            if (_typeName == null)
                throw new ArgumentNullException ("typeName");
            if (_typeName == String.Empty)
                throw new ArgumentException ("typename", "should not be empty");
            if (!_typeName.StartsWith ("System.String, mscorlib") &&
                !_typeName.StartsWith ("System.Byte[], mscorlib"))
                throw new ArgumentException ("typeName","Only string or byte[] type valid");
            if (_owner == null)
                throw new ArgumentNullException ("owner");

            IsMeta = isMeta;
            Owner = _owner;
            if (_encoding == null)
                node = new ResXDataNode (_name, new ResXFileRef (_fileName, _typeName));
            else
                node = new ResXDataNode (_name, new ResXFileRef (_fileName, _typeName, _encoding));
            SetRelativePos ();
        }
Example #3
0
        public override List <DebugItem> GetDebugInputs(IExecutionEnvironment env, int update)
        {
            if (env == null)
            {
                return(new List <DebugItem>());
            }
            base.GetDebugInputs(env, update);

            var head         = Headers.Select(a => new NameValue(ExecutionEnvironment.WarewolfEvalResultToString(env.Eval(a.Name, update)), ExecutionEnvironment.WarewolfEvalResultToString(env.Eval(a.Value, update)))).Where(a => !(String.IsNullOrEmpty(a.Name) && String.IsNullOrEmpty(a.Value)));
            var query        = ExecutionEnvironment.WarewolfEvalResultToString(env.Eval(QueryString, update));
            var url          = ResourceCatalog.GetResource <WebSource>(Guid.Empty, SourceId);
            var headerString = string.Join(" ", head.Select(a => a.Name + " : " + a.Value));

            var debugItem = new DebugItem();

            AddDebugItem(new DebugItemStaticDataParams("", "URL"), debugItem);
            AddDebugItem(new DebugEvalResult(url.Address, "", env, update), debugItem);
            _debugInputs.Add(debugItem);
            debugItem = new DebugItem();
            AddDebugItem(new DebugItemStaticDataParams("", "Query String"), debugItem);
            AddDebugItem(new DebugEvalResult(query, "", env, update), debugItem);
            _debugInputs.Add(debugItem);
            debugItem = new DebugItem();
            AddDebugItem(new DebugItemStaticDataParams("", "Headers"), debugItem);
            AddDebugItem(new DebugEvalResult(headerString, "", env, update), debugItem);
            _debugInputs.Add(debugItem);

            return(_debugInputs);
        }
Example #4
0
        protected override void ExecutionImpl(IEsbChannel esbChannel, IDSFDataObject dataObject, string inputs, string outputs, out ErrorResultTO tmpErrors, int update)
        {
            tmpErrors = new ErrorResultTO();
            IEnumerable <NameValue> head = null;

            if (Headers != null)
            {
                head = Headers.Select(a => new NameValue(ExecutionEnvironment.WarewolfEvalResultToString(dataObject.Environment.Eval(a.Name, update)), ExecutionEnvironment.WarewolfEvalResultToString(dataObject.Environment.Eval(a.Value, update))));
            }
            var query = "";

            if (QueryString != null)
            {
                query = ExecutionEnvironment.WarewolfEvalResultToString(dataObject.Environment.Eval(QueryString, update));
            }
            var putData = "";

            if (PutData != null)
            {
                putData = ExecutionEnvironment.WarewolfEvalResultToString(dataObject.Environment.Eval(PutData, update));
            }

            var url = ResourceCatalog.GetResource <WebSource>(Guid.Empty, SourceId);
            var webRequestResult = PerformWebRequest(head, query, url, putData);

            ResponseManager = new ResponseManager {
                OutputDescription = OutputDescription, Outputs = Outputs, IsObject = IsObject, ObjectName = ObjectName
            };
            ResponseManager.PushResponseIntoEnvironment(webRequestResult, update, dataObject);
        }
 static void LoadActivityCache(ResourceCatalog catalog)
 {
     PreloadReferences();
     Write("Loading resource activity cache...  ");
     catalog.LoadServerActivityCache();
     WriteLine("done.");
 }
        private void ExecuteConcreteAction(IDSFDataObject dataObject, int update)
        {
            var sharepointReadListTos = SharepointUtils.GetValidReadListItems(ReadListItems).ToList();

            if (sharepointReadListTos.Any())
            {
                var sharepointSource = ResourceCatalog.GetResource <SharepointSource>(dataObject.WorkspaceID, SharepointServerResourceId);
                if (sharepointSource == null)
                {
                    var contents = ResourceCatalog.GetResourceContents(dataObject.WorkspaceID, SharepointServerResourceId);
                    sharepointSource = new SharepointSource(contents.ToXElement());
                }
                var env = dataObject.Environment;
                if (dataObject.IsDebugMode())
                {
                    AddInputDebug(env, update);
                }
                var sharepointHelper = sharepointSource.CreateSharepointHelper();
                var fields           = sharepointHelper.LoadFieldsForList(SharepointList, false);
                using (var ctx = sharepointHelper.GetContext())
                {
                    var camlQuery = SharepointUtils.BuildCamlQuery(env, FilterCriteria, fields, update);
                    var list      = ctx.Web.Lists.GetByTitle(SharepointList);
                    var listItems = list.GetItems(camlQuery);
                    ctx.Load(listItems);
                    ctx.ExecuteQuery();
                    AddItemList(update, sharepointReadListTos, env, fields, listItems);
                }
                env.CommitAssign();
                AddOutputDebug(dataObject, env, update);
            }
        }
Example #7
0
        protected void ExecuteService(int update, out ErrorResultTO errors, IPluginAction method, IDSFDataObject dataObject)
        {
            errors = new ErrorResultTO();
            var itrs = new List <IWarewolfIterator>(5);
            IWarewolfListIterator itrCollection = new WarewolfListIterator();
            var source           = ResourceCatalog.GetResource <ComPluginSource>(dataObject.WorkspaceID, SourceId);
            var methodParameters = Inputs?.Select(a => new MethodParameter {
                EmptyToNull = a.EmptyIsNull, IsRequired = a.RequiredField, Name = a.Name, Value = a.Value, TypeName = a.TypeName
            }).ToList() ?? new List <MethodParameter>();

            BuildParameterIterators(update, methodParameters.ToList(), itrCollection, itrs, dataObject);
            var args = new ComPluginInvokeArgs
            {
                ClsId        = source.ClsId,
                Is32Bit      = source.Is32Bit,
                Method       = method.Method,
                AssemblyName = Namespace?.AssemblyName,
                Parameters   = methodParameters
            };

            try
            {
                TryExecute(update, dataObject, itrs, itrCollection, methodParameters, args);
            }
            catch (Exception e)
            {
                errors.AddError(e.Message);
            }
        }
        protected override void ExecutionImpl(IEsbChannel esbChannel, IDSFDataObject dataObject, string inputs, string outputs, out ErrorResultTO errors, int update)
        {
            errors = new ErrorResultTO();
            if (Headers == null)
            {
                errors.AddError(ErrorResource.HeadersAreNull);
                return;
            }
            if (QueryString == null)
            {
                errors.AddError(ErrorResource.QueryIsNull);
                return;
            }
            var head  = Headers.Select(a => new NameValue(ExecutionEnvironment.WarewolfEvalResultToString(dataObject.Environment.Eval(a.Name, update)), ExecutionEnvironment.WarewolfEvalResultToString(dataObject.Environment.Eval(a.Value, update))));
            var query = ExecutionEnvironment.WarewolfEvalResultToString(dataObject.Environment.Eval(QueryString, update));


            var url = ResourceCatalog.GetResource <WebSource>(Guid.Empty, SourceId);

            if (dataObject.IsDebugMode())
            {
                AddDebugInputItem(new DebugEvalResult(query, "URL", dataObject.Environment, update));
                AddDebugInputItem(new DebugEvalResult(url.Address, "Query String", dataObject.Environment, update));
            }
            var webRequestResult = PerformWebRequest(head, query, url);

            ResponseManager = new ResponseManager {
                OutputDescription = OutputDescription, Outputs = Outputs, IsObject = IsObject, ObjectName = ObjectName
            };
            ResponseManager.PushResponseIntoEnvironment(webRequestResult, update, dataObject);
        }
Example #9
0
        protected override List <string> PerformExecution(Dictionary <string, string> evaluatedValues)
        {
            try
            {
                RedisSource = ResourceCatalog.GetResource <RedisSource>(GlobalConstants.ServerWorkspaceID, SourceId);
                if (RedisSource == null || RedisSource.ResourceType != enSourceType.RedisSource.ToString())
                {
                    _messages.Add(ErrorResource.RedisSourceHasBeenRemoved);
                    return(_messages);
                }
                _redisCache = new RedisCacheImpl(RedisSource.HostName, Convert.ToInt32(RedisSource.Port), RedisSource.Password);
                if (CounterType == "Increment")
                {
                    _result = _redisCache.Increment(Key, StepSize);

                    Dev2Logger.Debug($"Cache {Key} Incremented {StepSize}: {_result}", GlobalConstants.WarewolfDebug);
                }
                else
                {
                    _result = _redisCache.Decrement(Key, StepSize);
                    Dev2Logger.Debug($"Cache {Key} Decremented {StepSize}: {_result}", GlobalConstants.WarewolfDebug);
                }
                return(new List <string> {
                    _result.ToString()
                });
            }
            catch (Exception ex)
            {
                Dev2Logger.Error(nameof(RedisCounterActivity), ex, GlobalConstants.WarewolfError);
                throw new Exception(ex.GetAllMessages());
            }
        }
Example #10
0
        protected override void ExecutionImpl(IEsbChannel esbChannel, IDSFDataObject dataObject, string inputs, string outputs, out ErrorResultTO tmpErrors, int update)
        {
            tmpErrors = new ErrorResultTO();
            var webRequestResult = string.Empty;

            try
            {
                var(head, query, putData) = ConfigureHttp(dataObject, update);

                var url = ResourceCatalog.GetResource <WebSource>(Guid.Empty, SourceId);
                webRequestResult = PerformWebRequest(head, query, url, putData, IsPutDataBase64);
            }
            catch (Exception ex)
            {
                tmpErrors.AddError(ex.Message);
            }
            finally
            {
                tmpErrors.MergeErrors(_errorsTo);

                var bytes    = webRequestResult.Base64StringToByteArray();
                var response = bytes.ReadToString();

                ResponseManager = new ResponseManager
                {
                    OutputDescription = OutputDescription,
                    Outputs           = Outputs,
                    IsObject          = IsObject,
                    ObjectName        = ObjectName
                };

                ResponseManager.PushResponseIntoEnvironment(response, update, dataObject);
            }
        }
Example #11
0
        public override StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            try
            {
                Dev2Logger.Info("Find Dependencies", GlobalConstants.WarewolfInfo);
                var result = new ExecuteMessage {
                    HasError = false
                };

                string resourceId        = null;
                string dependsOnMeString = null;
                var    dependsOnMe       = false;
                values.TryGetValue("ResourceId", out StringBuilder tmp);
                if (tmp != null)
                {
                    resourceId = tmp.ToString();
                }
                values.TryGetValue("GetDependsOnMe", out tmp);
                if (tmp != null)
                {
                    dependsOnMeString = tmp.ToString();
                }
                if (string.IsNullOrEmpty(resourceId))
                {
                    throw new InvalidDataContractException(ErrorResource.ResourceIdIsNull);
                }
                if (!Guid.TryParse(resourceId, out Guid resId))
                {
                    throw new InvalidDataContractException(ErrorResource.ResourceIdNotAGUID);
                }
                var resource = ResourceCatalog.GetResource(theWorkspace.ID, resId);
                if (!string.IsNullOrEmpty(dependsOnMeString) && !bool.TryParse(dependsOnMeString, out dependsOnMe))
                {
                    dependsOnMe = false;
                }


                if (dependsOnMe)
                {
                    result.Message.Append($"<graph title=\"Local Dependants Graph: {resourceId}\">");
                    result.Message.Append(FindWhatDependsOnMe(theWorkspace.ID, resource.ResourceID, new List <Guid>()));
                    result.Message.Append("</graph>");
                }
                else
                {
                    result.Message.Append($"<graph title=\"Dependency Graph Of {resourceId}\">");
                    result.Message.Append(FindDependenciesRecursive(resource.ResourceID, theWorkspace.ID, new List <Guid>()));
                    result.Message.Append("</graph>");
                }

                var serializer = new Dev2JsonSerializer();
                return(serializer.SerializeToBuilder(result));
            }
            catch (Exception e)
            {
                Dev2Logger.Error(e, GlobalConstants.WarewolfError);
                throw;
            }
        }
        protected override void ExecuteTool(IDSFDataObject dataObject, int update)
        {
            var errorResultTo           = new ErrorResultTO();
            var allErrors               = new ErrorResultTO();
            var addExceptionToErrorList = true;

            InitializeDebug(dataObject);
            try
            {
                var parametersIteratorCollection = BuildParametersIteratorCollection(dataObject.Environment, out IWarewolfIterator batchItr, out IWarewolfIterator timeoutItr, update);

                var currentOptions  = BuildSqlBulkCopyOptions();
                var runtimeDatabase = ResourceCatalog.GetResource <DbSource>(dataObject.WorkspaceID, Database.ResourceID);

                Common.Utilities.PerformActionInsideImpersonatedContext(Common.Utilities.OrginalExecutingUser, () =>
                {
                    if (!allErrors.HasErrors())
                    {
                        if (runtimeDatabase.ServerType == enSourceType.MySqlDatabase)
                        {
                            DoInsertForMySql(runtimeDatabase, currentOptions, parametersIteratorCollection, batchItr, timeoutItr, dataObject, errorResultTo, allErrors, ref addExceptionToErrorList, update);
                        }
                        else
                        {
                            DoInsertForSqlServer(runtimeDatabase, currentOptions, dataObject, allErrors, batchItr, parametersIteratorCollection, timeoutItr, ref errorResultTo, ref addExceptionToErrorList, update);
                        }
                    }
                });
                allErrors.MergeErrors(errorResultTo);
            }
            catch (Exception e)
            {
                if (addExceptionToErrorList)
                {
                    allErrors.AddError(e.Message);
                }
                Dev2Logger.Error(this, e, GlobalConstants.WarewolfError);
            }
            finally
            {
                // Handle Errors
                if (allErrors.HasErrors())
                {
                    DisplayAndWriteError("DsfSqlBulkInsertActivity", allErrors);
                    dataObject.Environment.Assign(Result, null, update);
                    var errorString = allErrors.MakeDisplayReady();
                    dataObject.Environment.AddError(errorString);
                    if (dataObject.IsDebugMode())
                    {
                        AddDebugOutputItem(new DebugItemStaticDataParams("Failure", Result, "", "="));
                    }
                }
                if (dataObject.IsDebugMode())
                {
                    DispatchDebugState(dataObject, StateType.Before, update);
                    DispatchDebugState(dataObject, StateType.After, update);
                }
            }
        }
 protected void CreateService(ResourceCatalog catalog)
 {
     if (!GetService(catalog))
     {
         return;
     }
     GetSource(catalog);
 }
Example #14
0
 void GetSource(ResourceCatalog catalog)
 {
     Source = catalog.GetResource <TSource>(GlobalConstants.ServerWorkspaceID, Service.Source.ResourceID) ?? catalog.GetResource <TSource>(GlobalConstants.ServerWorkspaceID, Service.Source.ResourceName);
     if (Source == null)
     {
         ErrorResult.AddError(string.Format("Error retrieving DBSource for resource ID:{0} and Name:{1}", Service.Source.ResourceID, Service.Source.ResourceName));
     }
 }
 //FIXME: why is file loaded separately from constructor?
 public ResXEditorView(string resxFile, Project project)
 {
     catalog = new ResourceCatalog (project);
     resXEditorWidget = new ResXEditorWidget ();
     catalog.DirtyChanged += delegate (object sender, EventArgs args) {
         IsDirty = catalog.IsDirty;
     };
 }
        protected override void ExecutionImpl(IEsbChannel esbChannel, IDSFDataObject dataObject, string inputs, string outputs, out ErrorResultTO tmpErrors, int update)
        {
            _dataObject = dataObject;
            tmpErrors   = new ErrorResultTO();
            var webRequestResult = string.Empty;

            try
            {
                var(head, query, postData, conditions) = GetEnvironmentInputVariables(_dataObject.Environment, update);

                var source              = ResourceCatalog.GetResource <WebSource>(Guid.Empty, SourceId);
                var isManualChecked     = Convert.ToBoolean(Settings?.FirstOrDefault(s => s.Name == nameof(IsManualChecked))?.Value);
                var isFormDataChecked   = Convert.ToBoolean(Settings?.FirstOrDefault(s => s.Name == nameof(IsFormDataChecked))?.Value);
                var isUrlEncodedChecked = Convert.ToBoolean(Settings?.FirstOrDefault(s => s.Name == nameof(IsUrlEncodedChecked))?.Value);

                if (isManualChecked || isFormDataChecked || isUrlEncodedChecked)
                {
                    var webPostOptions = new WebPostOptions
                    {
                        Head                = head,
                        Headers             = head?.Select(h => h.Name + ":" + h.Value)?.ToArray() ?? new string[0],
                        Method              = WebRequestMethod.Post,
                        Parameters          = conditions,
                        Query               = query,
                        Source              = source,
                        PostData            = postData,
                        Settings            = Settings,
                        IsManualChecked     = isManualChecked,
                        IsFormDataChecked   = isFormDataChecked,
                        IsUrlEncodedChecked = isUrlEncodedChecked
                    };

                    webRequestResult = PerformWebPostRequest(webPostOptions);
                }
            }
            catch (Exception ex)
            {
                tmpErrors.AddError(ex.Message);
            }
            finally
            {
                tmpErrors.MergeErrors(_errorsTo);

                var bytes    = webRequestResult.Base64StringToByteArray();
                var response = bytes.ReadToString();

                ResponseManager = new ResponseManager
                {
                    OutputDescription = OutputDescription,
                    Outputs           = Outputs,
                    IsObject          = IsObject,
                    ObjectName        = ObjectName
                };
                response = Scrubber.Scrub(response);
                ResponseManager.PushResponseIntoEnvironment(response, update, dataObject);
            }
        }
Example #17
0
        protected override void ExecutionImpl(IEsbChannel esbChannel, IDSFDataObject dataObject, string inputs, string outputs, out ErrorResultTO tmpErrors, int update)
        {
            tmpErrors = new ErrorResultTO();
            var webRequestResult = string.Empty;

            try
            {
                if (Headers == null)
                {
                    tmpErrors.AddError(ErrorResource.HeadersAreNull);
                    return;
                }

                if (QueryString == null)
                {
                    tmpErrors.AddError(ErrorResource.QueryIsNull);
                    return;
                }

                var(head, query, _) = ConfigureHttp(dataObject, update);

                var url = ResourceCatalog.GetResource <WebSource>(Guid.Empty, SourceId);

                if (dataObject.IsDebugMode())
                {
                    AddDebugInputItem(new DebugEvalResult(query, "URL", dataObject.Environment, update));
                    AddDebugInputItem(new DebugEvalResult(url.Address, "Query String", dataObject.Environment, update));
                }

                webRequestResult = PerformWebRequest(head, query, url);
            }
            catch (Exception ex)
            {
                tmpErrors.AddError(ex.Message);
            }
            finally
            {
                tmpErrors.MergeErrors(_errorsTo);

                ResponseManager = new ResponseManager
                {
                    OutputDescription = OutputDescription,
                    Outputs           = Outputs,
                    IsObject          = IsObject,
                    ObjectName        = ObjectName
                };
            }

            if (IsResponseBase64)
            {
                ResponseManager.PushResponseIntoEnvironment(webRequestResult, update, dataObject);
                return;
            }

            webRequestResult = Scrubber.Scrub(webRequestResult);
            ResponseManager.PushResponseIntoEnvironment(webRequestResult, update, dataObject);
        }
 static void LoadActivityCache(ResourceCatalog catalog)
 {
     PreloadReferences();
     CustomContainer.Register <IActivityParser>(new ActivityParser());
     Write("Loading resource activity cache...  ");
     catalog.LoadServerActivityCache();
     CustomContainer.Register <IExecutionManager>(new ExecutionManager());
     WriteLine("done.");
 }
 private static void LoadActivityCache(ResourceCatalog catalog)
 {
     PreloadReferences();
     CustomContainer.Register <IActivityParser>(new ActivityParser());
     Write("Loading resource activity cache...  ");
     catalog.LoadResourceActivityCache(GlobalConstants.ServerWorkspaceID);
     WriteLine("done.");
     SetStarted();
 }
Example #20
0
 protected virtual bool GetService(ResourceCatalog catalog)
 {
     Service = catalog.GetResource <TService>(GlobalConstants.ServerWorkspaceID, DataObj.ResourceID) ?? catalog.GetResource <TService>(GlobalConstants.ServerWorkspaceID, DataObj.ServiceName);
     if (Service == null)
     {
         ErrorResult.AddError(string.Format("Error loading resource with ID:{0}", DataObj.ResourceID));
         return(false);
     }
     return(true);
 }
 private void GetSource(ResourceCatalog catalog)
 {
     Source = catalog.GetResource <TSource>(GlobalConstants.ServerWorkspaceID, Service.Source.ResourceID) ??
              catalog.GetResource <TSource>(GlobalConstants.ServerWorkspaceID, Service.Source.ResourceName);
     if (Source == null)
     {
         ErrorResult.AddError(string.Format(ErrorResource.ErrorRetrievingDBSourceForResource,
                                            Service.Source.ResourceID, Service.Source.ResourceName));
     }
 }
Example #22
0
        protected void ExecuteService(int update, out ErrorResultTO errors, IPluginAction method, IDSFDataObject dataObject)
        {
            errors = new ErrorResultTO();
            var itrs = new List <IWarewolfIterator>(5);
            IWarewolfListIterator itrCollection = new WarewolfListIterator();
            var source           = ResourceCatalog.GetResource <ComPluginSource>(dataObject.WorkspaceID, SourceId);
            var methodParameters = Inputs?.Select(a => new MethodParameter {
                EmptyToNull = a.EmptyIsNull, IsRequired = a.RequiredField, Name = a.Name, Value = a.Value, TypeName = a.TypeName
            }).ToList() ?? new List <MethodParameter>();

            BuildParameterIterators(update, methodParameters.ToList(), itrCollection, itrs, dataObject);
            var args = new ComPluginInvokeArgs
            {
                ClsId        = source.ClsId,
                Is32Bit      = source.Is32Bit,
                Method       = method.Method,
                AssemblyName = Namespace?.AssemblyName,
                Parameters   = methodParameters
            };

            try
            {
                if (Inputs == null || Inputs.Count == 0)
                {
                    PerfromExecution(update, dataObject, args);
                }
                else
                {
                    while (itrCollection.HasMoreData())
                    {
                        int pos = 0;
                        foreach (var itr in itrs)
                        {
                            string injectVal = itrCollection.FetchNextValue(itr);
                            var    param     = methodParameters.ToList()[pos];


                            param.Value = param.EmptyToNull &&
                                          (injectVal == null ||
                                           string.Compare(injectVal, string.Empty,
                                                          StringComparison.InvariantCultureIgnoreCase) == 0)
                                ? null
                                : injectVal;

                            pos++;
                        }
                        PerfromExecution(update, dataObject, args);
                    }
                }
            }
            catch (Exception e)
            {
                errors.AddError(e.Message);
            }
        }
Example #23
0
 protected void CatalogChozen(DropDownTreeEntryEventArgs e, State state)
 {
     var rc = new ResourceCatalog
     {
         ResourceId = CurrentResource.Id,
         CatalogId = Guid.Parse(e.Entry.Value),
         State = state
     };
     HomoryContext.Value.ResourceCatalog.AddOrUpdate(rc);
     HomoryContext.Value.SaveChanges();
 }
 private bool GetService(ResourceCatalog catalog)
 {
     Service = catalog.GetResource <TService>(GlobalConstants.ServerWorkspaceID, DataObj.ResourceID) ??
               catalog.GetResource <TService>(GlobalConstants.ServerWorkspaceID, DataObj.ServiceName);
     if (Service == null)
     {
         ErrorResult.AddError(string.Format(ErrorResource.ErrorLoadingResource, DataObj.ResourceID));
         return(false);
     }
     return(true);
 }
Example #25
0
        public override List <DebugItem> GetDebugInputs(IExecutionEnvironment env, int update)
        {
            if (env == null)
            {
                return(_debugInputs);
            }

            base.GetDebugInputs(env, update);

            IEnumerable <INameValue> head = null;

            if (Headers != null)
            {
                head = Headers.Select(a => new NameValue(ExecutionEnvironment.WarewolfEvalResultToString(env.Eval(a.Name, update)), ExecutionEnvironment.WarewolfEvalResultToString(env.Eval(a.Value, update)))).Where(a => !(String.IsNullOrEmpty(a.Name) && String.IsNullOrEmpty(a.Value)));
            }

            var url          = ResourceCatalog.GetResource <WebSource>(Guid.Empty, SourceId);
            var headerString = string.Empty;

            if (head != null)
            {
                headerString = string.Join(" ", head.Select(a => a.Name + " : " + a.Value));
            }

            var debugItem = new DebugItem();

            AddDebugItem(new DebugItemStaticDataParams("", "URL"), debugItem);
            AddDebugItem(new DebugEvalResult(url.Address, "", env, update), debugItem);
            _debugInputs.Add(debugItem);
            debugItem = new DebugItem();
            AddDebugItem(new DebugItemStaticDataParams("", "Query String"), debugItem);
            AddDebugItem(new DebugEvalResult(QueryString, "", env, update), debugItem);
            _debugInputs.Add(debugItem);
            debugItem = new DebugItem();
            AddDebugItem(new DebugItemStaticDataParams("", "Post Data"), debugItem);
            AddDebugItem(new DebugEvalResult(PostData, "", env, update), debugItem);
            _debugInputs.Add(debugItem);

            if (IsPostDataBase64)
            {
                debugItem = new DebugItem();
                AddDebugItem(new DebugItemStaticDataParams("", nameof(IsPostDataBase64)), debugItem);
                AddDebugItem(new DebugEvalResult(IsPostDataBase64.ToString(), "", env, update), debugItem);
                _debugInputs.Add(debugItem);
            }

            debugItem = new DebugItem();
            AddDebugItem(new DebugItemStaticDataParams("", nameof(Headers)), debugItem);
            AddDebugItem(new DebugEvalResult(headerString, "", env, update), debugItem);
            _debugInputs.Add(debugItem);

            return(_debugInputs);
        }
        private void TryExecute(IDSFDataObject dataObject, int update, List <SharepointReadListTo> sharepointReadListTos)
        {
            var sharepointSource = ResourceCatalog.GetResource <SharepointSource>(dataObject.WorkspaceID, SharepointServerResourceId);
            var listOfIterators  = new Dictionary <string, IWarewolfIterator>();

            if (sharepointSource == null)
            {
                var contents = ResourceCatalog.GetResourceContents(dataObject.WorkspaceID, SharepointServerResourceId);
                sharepointSource = new SharepointSource(contents.ToXElement());
            }
            var env = dataObject.Environment;

            if (dataObject.IsDebugMode())
            {
                AddInputDebug(env, update);
            }
            var sharepointHelper = sharepointSource.CreateSharepointHelper();
            var fields           = sharepointHelper.LoadFieldsForList(SharepointList, true);

            using (var ctx = sharepointHelper.GetContext())
            {
                var list         = sharepointHelper.LoadFieldsForList(SharepointList, ctx, true);
                var iteratorList = new WarewolfListIterator();
                foreach (var sharepointReadListTo in sharepointReadListTos)
                {
                    var warewolfIterator = new WarewolfIterator(env.Eval(sharepointReadListTo.VariableName, update));
                    iteratorList.AddVariableToIterateOn(warewolfIterator);
                    listOfIterators.Add(sharepointReadListTo.FieldName, warewolfIterator);
                }
                while (iteratorList.HasMoreData())
                {
                    var itemCreateInfo = new ListItemCreationInformation();
                    var listItem       = list.AddItem(itemCreateInfo);
                    foreach (var warewolfIterator in listOfIterators)
                    {
                        var sharepointFieldTo = fields.FirstOrDefault(to => to.Name == warewolfIterator.Key);
                        if (sharepointFieldTo != null)
                        {
                            object value = warewolfIterator.Value.GetNextValue();
                            value = SharepointUtils.CastWarewolfValueToCorrectType(value, sharepointFieldTo.Type);
                            listItem[sharepointFieldTo.InternalName] = value;
                        }
                    }
                    listItem.Update();
                    ctx.ExecuteQuery();
                }
            }
            if (!string.IsNullOrEmpty(Result))
            {
                env.Assign(Result, "Success", update);
                AddOutputDebug(dataObject, env, update);
            }
        }
        protected override void ExecuteTool(IDSFDataObject dataObject, int update)
        {
            _dataObject = dataObject;

            var allErrors       = new ErrorResultTO();
            var indexToUpsertTo = 0;

            InitializeDebug(dataObject);
            try
            {
                IExchange runtimeSource = ResourceCatalog.GetResource <ExchangeSource>(dataObject.WorkspaceID, SavedSource.ResourceID);

                if (runtimeSource == null)
                {
                    dataObject.Environment.Errors.Add(ErrorResource.InvalidEmailSource);
                    return;
                }

                indexToUpsertTo = TryExecute(dataObject, update, allErrors, indexToUpsertTo, runtimeSource);
            }
            catch (Exception e)
            {
                Dev2Logger.Error("DSFEmail", e, GlobalConstants.WarewolfError);
                allErrors.AddError(e.Message);
            }

            finally
            {
                // Handle Errors
                if (allErrors.HasErrors())
                {
                    foreach (var err in allErrors.FetchErrors())
                    {
                        dataObject.Environment.Errors.Add(err);
                    }

                    UpsertResult(indexToUpsertTo, dataObject.Environment, null, update);
                    if (dataObject.IsDebugMode())
                    {
                        AddDebugOutputItem(new DebugItemStaticDataParams("", Result, ""));
                    }

                    DisplayAndWriteError(dataObject, DisplayName, allErrors);
                }

                if (dataObject.IsDebugMode())
                {
                    DispatchDebugState(dataObject, StateType.Before, update);
                    DispatchDebugState(dataObject, StateType.After, update);
                }
            }
        }
        private void ExecuteConcreteAction(IDSFDataObject dataObject, int update)
        {
            var sharepointReadListTos = SharepointUtils.GetValidReadListItems(ReadListItems).ToList();

            if (sharepointReadListTos.Any())
            {
                var sharepointSource = ResourceCatalog.GetResource <SharepointSource>(dataObject.WorkspaceID, SharepointServerResourceId);
                var listOfIterators  = new Dictionary <string, IWarewolfIterator>();
                if (sharepointSource == null)
                {
                    var contents = ResourceCatalog.GetResourceContents(dataObject.WorkspaceID, SharepointServerResourceId);
                    sharepointSource = new SharepointSource(contents.ToXElement());
                }
                var env = dataObject.Environment;
                if (dataObject.IsDebugMode())
                {
                    AddInputDebug(env, update);
                }
                var sharepointHelper = sharepointSource.CreateSharepointHelper();
                var fields           = sharepointHelper.LoadFieldsForList(SharepointList, true);
                using (var ctx = sharepointHelper.GetContext())
                {
                    var camlQuery = _sharepointUtils.BuildCamlQuery(env, FilterCriteria, fields, update, RequireAllCriteriaToMatch);
                    var list      = ctx.Web.Lists.GetByTitle(SharepointList);
                    var listItems = list.GetItems(camlQuery);
                    ctx.Load(listItems);
                    ctx.ExecuteQuery();
                    var iteratorList = new WarewolfListIterator();
                    foreach (var sharepointReadListTo in sharepointReadListTos)
                    {
                        var warewolfIterator = new WarewolfIterator(env.Eval(sharepointReadListTo.VariableName, update));
                        iteratorList.AddVariableToIterateOn(warewolfIterator);
                        listOfIterators.Add(sharepointReadListTo.InternalName, warewolfIterator);
                    }
                    foreach (var listItem in listItems)
                    {
                        foreach (var warewolfIterator in listOfIterators)
                        {
                            listItem[warewolfIterator.Key] = warewolfIterator.Value.GetNextValue();
                        }
                        listItem.Update();
                        ctx.ExecuteQuery();
                    }
                }
                if (!string.IsNullOrEmpty(Result))
                {
                    env.Assign(Result, "Success", update);
                    AddOutputDebug(dataObject, env, update);
                }
            }
        }
        protected override List <string> PerformExecution(Dictionary <string, string> evaluatedValues)
        {
            try
            {
                RabbitMQSource = ResourceCatalog.GetResource <RabbitMQSource>(GlobalConstants.ServerWorkspaceID, RabbitMQSourceResourceId);
                if (RabbitMQSource == null)
                {
                    return(new List <string> {
                        ErrorResource.RabbitSourceHasBeenDeleted
                    });
                }

                if (!evaluatedValues.TryGetValue("QueueName", out string queueName) ||
                    !evaluatedValues.TryGetValue("Message", out string message))
                {
                    return(new List <string> {
                        ErrorResource.RabbitQueueNameAndMessageRequired
                    });
                }

                ConnectionFactory.HostName    = RabbitMQSource.HostName;
                ConnectionFactory.Port        = RabbitMQSource.Port;
                ConnectionFactory.UserName    = RabbitMQSource.UserName;
                ConnectionFactory.Password    = RabbitMQSource.Password;
                ConnectionFactory.VirtualHost = RabbitMQSource.VirtualHost;

                using (Connection = ConnectionFactory.CreateConnection())
                {
                    using (Channel = Connection.CreateModel())
                    {
                        Channel.ExchangeDeclare(queueName, ExchangeType.Direct, IsDurable, IsAutoDelete, null);
                        Channel.QueueDeclare(queueName, IsDurable, IsExclusive, IsAutoDelete, null);
                        Channel.QueueBind(queueName, queueName, "", new Dictionary <string, object>());

                        var basicProperties = Channel.CreateBasicProperties();
                        basicProperties.Persistent = true;
                        Channel.BasicPublish(queueName, "", basicProperties, Encoding.UTF8.GetBytes(message));
                    }
                }
                Dev2Logger.Debug($"Message published to queue {queueName}", GlobalConstants.WarewolfDebug);
                return(new List <string> {
                    "Success"
                });
            }
            catch (Exception ex)
            {
                Dev2Logger.Error("PublishRabbitMQActivity", ex, GlobalConstants.WarewolfError);
                throw new Exception(ex.GetAllMessages());
            }
        }
        public override List <DebugItem> GetDebugInputs(IExecutionEnvironment env, int update)
        {
            if (env == null)
            {
                return(_debugInputs);
            }

            base.GetDebugInputs(env, update);

            var(head, parameters, _, conditions) = GetEnvironmentInputVariables(env, update);

            var url          = ResourceCatalog.GetResource <WebSource>(Guid.Empty, SourceId);
            var headerString = string.Empty;

            if (head != null)
            {
                headerString = string.Join(" ", head.Select(a => a.Name + " : " + a.Value));
            }

            var debugItem = new DebugItem();

            AddDebugItem(new DebugItemStaticDataParams("", "URL"), debugItem);
            AddDebugItem(new DebugEvalResult(url.Address, "", env, update), debugItem);
            _debugInputs.Add(debugItem);
            debugItem = new DebugItem();
            AddDebugItem(new DebugItemStaticDataParams("", "Query String"), debugItem);
            AddDebugItem(new DebugEvalResult(QueryString, "", env, update), debugItem);
            _debugInputs.Add(debugItem);

            debugItem = new DebugItem();
            AddDebugItem(new DebugItemStaticDataParams("", nameof(Headers)), debugItem);
            AddDebugItem(new DebugEvalResult(headerString, "", env, update), debugItem);
            _debugInputs.Add(debugItem);

            if (IsManualChecked)
            {
                debugItem = new DebugItem();
                AddDebugItem(new DebugItemStaticDataParams("", "Post Data"), debugItem);
                AddDebugItem(new DebugEvalResult(PostData, "", env, update), debugItem);
                _debugInputs.Add(debugItem);
            }

            if (IsFormDataChecked || IsUrlEncodedChecked)
            {
                AddDebugFormDataInputs(conditions);
            }

            return(_debugInputs);
        }
        protected override List <string> PerformExecution(Dictionary <string, string> evaluatedValues)
        {
            _messages = new List <string>();
            try
            {
                RabbitSource =
                    ResourceCatalog.GetResource <RabbitMQSource>(GlobalConstants.ServerWorkspaceID,
                                                                 RabbitMQSourceResourceId);
                if (RabbitSource == null || RabbitSource.ResourceType != enSourceType.RabbitMQSource.ToString())
                {
                    _messages.Add(ErrorResource.RabbitSourceHasBeenDeleted);
                    return(_messages);
                }

                if (!evaluatedValues.TryGetValue("QueueName", out var queueName))
                {
                    _messages.Add(ErrorResource.RabbitQueueNameRequired);
                    return(_messages);
                }

                if (!evaluatedValues.TryGetValue("Prefetch", out var prefetch))
                {
                    prefetch = string.Empty;
                }

                ConnectionFactory.HostName    = RabbitSource.HostName;
                ConnectionFactory.Port        = RabbitSource.Port;
                ConnectionFactory.UserName    = RabbitSource.UserName;
                ConnectionFactory.Password    = RabbitSource.Password;
                ConnectionFactory.VirtualHost = RabbitSource.VirtualHost;

                using (Connection = ConnectionFactory.CreateConnection())
                {
                    using (Channel = Connection.CreateModel())
                    {
                        PerformExecutionOnChannel(queueName, prefetch);
                    }
                }

                return(new List <string> {
                    _result
                });
            }
            catch (Exception ex)
            {
                Dev2Logger.Error("ConsumeRabbitMQActivity", ex, GlobalConstants.WarewolfError);
                throw new Exception(ex.GetAllMessages());
            }
        }
Example #32
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            ResourceCatalog = await _context.ResourceCatalog.FirstOrDefaultAsync(m => m.Id == id);

            if (ResourceCatalog == null)
            {
                return(NotFound());
            }
            return(Page());
        }
        protected void ExecuteService(int update, out ErrorResultTO errors, IWcfAction method, IDSFDataObject dataObject, IOutputFormatter formater)
        {
            errors = new ErrorResultTO();
            Source = ResourceCatalog.GetResource <WcfSource>(dataObject.WorkspaceID, SourceId);
            var itrs = new List <IWarewolfIterator>(5);
            IWarewolfListIterator itrCollection = new WarewolfListIterator();
            var methodParameters = Inputs.Select(a => new MethodParameter {
                EmptyToNull = a.EmptyIsNull, IsRequired = a.RequiredField, Name = a.Name, Value = a.Value, TypeName = a.TypeName
            }).ToList();

            BuildParameterIterators(update, methodParameters.ToList(), itrCollection, itrs, dataObject);
            try
            {
                while (itrCollection.HasMoreData())
                {
                    var pos = 0;
                    foreach (var itr in itrs)
                    {
                        var injectVal = itrCollection.FetchNextValue(itr);
                        var param     = methodParameters.ToList()[pos];


                        param.Value = param.EmptyToNull &&
                                      (injectVal == null ||
                                       string.Compare(injectVal, string.Empty,
                                                      StringComparison.InvariantCultureIgnoreCase) == 0)
                            ? null
                            : injectVal;

                        pos++;
                    }

                    var result = Source.ExecuteMethod(method);

                    if (result != null)
                    {
                        ResponseManager = new ResponseManager {
                            OutputDescription = OutputDescription, Outputs = Outputs, IsObject = IsObject, ObjectName = ObjectName
                        };
                        ResponseManager.PushResponseIntoEnvironment(result.ToString(), update, dataObject);
                    }
                }
            }
            catch (Exception e)
            {
                errors.AddError(e.Message);
            }
        }
        public StringEntry(ResourceCatalog _owner, ResXDataNode _node, bool isMeta)
        {
            if (_node == null)
                throw new ArgumentNullException ("node");
            if (!_node.GetValueTypeName ((AssemblyName []) null).StartsWith ("System.String, mscorlib"))
                throw new ArgumentException ("node","Should be string resource");
            if (_node.FileRef != null)
                throw new ArgumentException ("node", "FileRef should not be set");
            if (_owner == null)
                throw new ArgumentNullException ("owner");

            IsMeta = isMeta;
            Owner = _owner;
            node = _node;
            SetRelativePos ();
        }
        public IconEntry(ResourceCatalog _owner, ResXDataNode _node, bool isMeta)
        {
            if (_node == null)
                throw new ArgumentNullException ("node");

            string nodeTypeName = _node.GetValueTypeName ((AssemblyName []) null);
            if (!nodeTypeName.StartsWith ("System.Drawing.Icon, System.Drawing"))
                throw new ArgumentException ("node","Invalid resource type");

            if (_owner == null)
                throw new ArgumentNullException ("owner");
            IsMeta = isMeta;
            Owner = _owner;
            node = _node;
            SetRelativePos ();
        }
Example #36
0
        protected override void ExecutionImpl(IEsbChannel esbChannel, IDSFDataObject dataObject, string inputs, string outputs, out ErrorResultTO tmpErrors, int update)
        {
            tmpErrors = new ErrorResultTO();

            var(head, query, postData) = ConfigureHttp(dataObject, update);

            var url = ResourceCatalog.GetResource <WebSource>(Guid.Empty, SourceId);
            var webRequestResult = PerformWebPostRequest(head, query, url, postData);

            tmpErrors.MergeErrors(_errorsTo);

            ResponseManager = new ResponseManager {
                OutputDescription = OutputDescription, Outputs = Outputs, IsObject = IsObject, ObjectName = ObjectName
            };
            ResponseManager.PushResponseIntoEnvironment(webRequestResult, update, dataObject);
        }
 public OtherEmbeddedEntry(ResourceCatalog _owner, string _name, object _value, bool isMeta)
 {
     if (_name == null)
         throw new ArgumentNullException ("name");
     if (_name == String.Empty)
         throw new ArgumentException ("name", "Name should not be empty");
     if (_value == null)
         throw new ArgumentNullException ("value");
     if (_value is string || _value is Icon || _value is Bitmap || _value is MemoryStream)
         throw new ArgumentException ("value", "Invalid type");
     if (_owner == null)
         throw new ArgumentNullException ("owner");
     IsMeta = isMeta;
     Owner = _owner;
     node = new ResXDataNode (_name,_value);
     SetRelativePos ();
 }
Example #38
0
 protected void btnDo_OnServerClick(object sender, EventArgs e)
 {
     var id = Guid.Parse(((HtmlAnchor)sender).Attributes["itemid"]);
     var rc = new ResourceCatalog
     {
         ResourceId = id,
         CatalogId = CatalogId,
         State = State.删除
     };
     HomoryContext.Value.ResourceCatalog.AddOrUpdate(rc);
     HomoryContext.Value.SaveChanges();
     result.DataSource =
         HomoryContext.Value.Resource.Where(o => o.UserId == CurrentUser.Id && o.State == State.启用)
             .ToList()
             .Where(o => o.ResourceCatalog.Count(p => p.CatalogId == CatalogId && p.State == State.启用) > 0)
             .ToList();
     result.DataBind();
 }
        public StringEntry(ResourceCatalog _owner, string _name, string _value, string _comment, bool isMeta)
        {
            if (_name == null)
                throw new ArgumentNullException ("name");
            if (_name == String.Empty)
                throw new ArgumentException ("name","Should not be empty");
            if (_value == null)
                throw new ArgumentNullException ("value");
            if (!(_value is String))
                throw new ArgumentException ("value", "Should be string resource");
            if (_owner == null)
                throw new ArgumentNullException ("owner");

            IsMeta = isMeta;
            Owner = _owner;
            node = new ResXDataNode (_name, _value); //FIXME: perhaps shouldn't create node yet
            node.Comment = _comment;
            SetRelativePos ();
        }
        public BinaryOrStringEntry(ResourceCatalog _owner, ResXDataNode _node, bool isMeta)
        {
            if (_node == null)
                throw new ArgumentNullException ("node");
            if (_node.FileRef == null)
                throw new ArgumentNullException ("node","FileRef should be set");

            string nodeTypeName = _node.GetValueTypeName ((AssemblyName []) null);
            if (!nodeTypeName.StartsWith ("System.String, mscorlib") &&
                !nodeTypeName.StartsWith ("System.Byte[], mscorlib"))
                throw new ArgumentException ("node","Only string or byte[] TypeName allowed");

            if (_owner == null)
                throw new ArgumentNullException ("owner");
            IsMeta = isMeta;
            Owner = _owner;
            node = _node;
            SetRelativePos ();
        }
        public IconEntry(ResourceCatalog _owner, string _name, 
		                       string _fileName, bool isMeta)
        {
            if (_name == null)
                throw new ArgumentNullException ("name");
            if (_name == String.Empty)
                throw new ArgumentException ("name", "should not be empty");
            if (_fileName == null)
                throw new ArgumentNullException ("fileName");
            if (!(_fileName.EndsWith (".ico")))
                throw new ArgumentException ("fileName", "must point to a .ico file");
            if (_owner == null)
                throw new ArgumentNullException ("owner");

            IsMeta = isMeta;
            Owner = _owner;

            node = new ResXDataNode (_name, new ResXFileRef (_fileName, typeof (Icon).AssemblyQualifiedName)); // same ver as MD
            SetRelativePos ();
        }
        public OtherFileEntry(ResourceCatalog _owner, ResXDataNode _node, bool isMeta)
        {
            if (_node == null)
                throw new ArgumentNullException ("node");
            if (_node.FileRef == null)
                throw new ArgumentNullException ("node","FileRef should be set");

            string nodeTypeName = _node.GetValueTypeName ((AssemblyName []) null);
            if (nodeTypeName.StartsWith ("System.String, mscorlib") ||
                nodeTypeName.StartsWith ("System.Drawing.Bitmap, System.Drawing") ||
                nodeTypeName.StartsWith ("System.Drawing.Icon, System.Drawing") ||
                nodeTypeName.StartsWith ("System.IO.MemoryStream, mscorlib"))
                throw new ArgumentException ("node","Invalid resource type");

            if (_owner == null)
                throw new ArgumentNullException ("owner");
            IsMeta = isMeta;
            Owner = _owner;
            node = _node;
            SetRelativePos ();
        }
        public InserterRow(ResourceCatalog _catalog, AddEntryFunc _addEntryFunc)
        {
            if (_catalog == null)
                throw new ArgumentNullException ("catalog");
            if (_addEntryFunc == null)
                throw new ArgumentNullException ("addEntryFunc");

            catalog = _catalog;
            addEntryFunc = _addEntryFunc;
            Reset ();
        }
Example #44
0
 protected void publish_catalog_EntryAdded(object sender, DropDownTreeEntryEventArgs e)
 {
     HomoryContext.Value.Database.BeginTransaction();
     HomoryContext.Value.ResourceCatalog.Where(o => o.ResourceId == CurrentResource.Id).Delete();
     var rc = new ResourceCatalog
     {
         ResourceId = CurrentResource.Id,
         CatalogId = Guid.Parse(e.Entry.Value),
         State = State.启用
     };
     HomoryContext.Value.ResourceCatalog.AddOrUpdate(rc);
     HomoryContext.Value.Database.CurrentTransaction.Commit();
     HomoryContext.Value.SaveChanges();
 }
Example #45
0
 protected void sync_ass_CheckedChanged(object sender, EventArgs e)
 {
     var rc = new ResourceCatalog
     {
         ResourceId = CurrentResource.Id,
         CatalogId = Guid.Parse("45265E53-2D6A-40D4-BC50-F6BEE5FCD8EF"),
         State = sync_ass.Checked ? State.启用 : State.删除
     };
     HomoryContext.Value.ResourceCatalog.AddOrUpdate(rc);
     HomoryContext.Value.SaveChanges();
 }