コード例 #1
0
        public ArrayImpl FindRows(IValue Filter, bool IncludeChildren = false)
        {
            var filterStruct = Filter.GetRawValue() as StructureImpl;

            if (filterStruct == null)
            {
                throw RuntimeException.InvalidArgumentType();
            }

            ArrayImpl Result = new ArrayImpl();

            foreach (ValueTreeRow row in _rows)
            {
                if (CheckFilterCriteria(row, filterStruct))
                {
                    Result.Add(row);
                }

                if (IncludeChildren)
                {
                    ArrayImpl children_result = row.Rows.FindRows(Filter, IncludeChildren);
                    foreach (IValue value in children_result)
                    {
                        Result.Add(value);
                    }
                }
            }

            return(Result);
        }
コード例 #2
0
        public ArrayImpl GetConstructors()
        {
            ArrayImpl result       = new ArrayImpl();
            var       constructors = AsmType.GetConstructors();

            foreach (var itm in constructors)
            {
                ArrayImpl miparams = new ArrayImpl();
                foreach (var prm in itm.GetParameters())
                {
                    StructureImpl strct = new StructureImpl();
                    strct.Insert("Имя", ValueFactory.Create(prm.Name));
                    strct.Insert("ЗначениеПоУмолчанию", ValueFactory.Create(prm.DefaultValue.ToString()));
                    strct.Insert("ЭтоНеобязательный", ValueFactory.Create(prm.IsOptional));
                    strct.Insert("Тип", ValueFactory.Create(prm.ParameterType.Name));

                    miparams.Add(strct);
                }

                AssemblyMethod mi = new AssemblyMethod();
                mi.Name       = itm.Name;
                mi.IsFunction = false;
                mi.Params     = miparams;
                result.Add(ValueFactory.Create(mi));
            }
            return(result);
        }
コード例 #3
0
        /// <summary>
        /// Строит объекты OneScript на основе результатов парсинга
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        private IValue BuildResults(object source)
        {
            if (source == null)
            {
                return(ValueFactory.Create());
            }

            if (source is List <object> )
            {
                ArrayImpl array = new ArrayImpl();

                foreach (object element in (List <object>)source)
                {
                    array.Add(BuildResults(element));
                }

                return(array);
            }

            if (source is Dictionary <object, object> )
            {
                MapImpl map = new MapImpl();

                foreach (var element in (Dictionary <object, object>)source)
                {
                    map.Insert(BuildResults(element.Key), BuildResults(element.Value));
                }

                return(map);
            }

            if (source is bool)
            {
                return(ValueFactory.Create(System.Convert.ToBoolean(source)));
            }

            if (source is sbyte ||
                source is byte ||
                source is short ||
                source is ushort ||
                source is int ||
                source is uint ||
                source is long ||
                source is ulong ||
                source is float ||
                source is double ||
                source is decimal
                )
            {
                return(ValueFactory.Create(System.Convert.ToDecimal(source)));
            }

            if (source is DateTime)
            {
                return(ValueFactory.Create(System.Convert.ToDateTime(source)));
            }

            // Строка или нечто другое
            return(ValueFactory.Create(System.Convert.ToString(source)));
        }
コード例 #4
0
        public ArrayImpl Get(bool deleteMessages, ArrayImpl ids, bool markAsRead)
        {
            if (markAsRead != true)
            {
                throw RuntimeException.InvalidArgumentValue();                 // TODO: Внятное сообщение
            }
            var result = new ArrayImpl();

            var processedMessages = GetMessagesList(ids);

            foreach (var i in processedMessages)
            {
                var mimeMessage = client.GetMessage(i);

                var iMessage = new InternetMailMessage(mimeMessage, client.GetMessageUid(i));
                result.Add(iMessage);
            }

            if (deleteMessages && processedMessages.Count > 0)
            {
                client.DeleteMessages(processedMessages);
                Relogon();
            }

            return(result);
        }
コード例 #5
0
        public ArrayImpl Get(bool deleteMessages, ArrayImpl ids, bool markAsRead)
        {
            var result            = new ArrayImpl();
            var processedMessages = GetMessagesList(ids);

            foreach (var i in processedMessages)
            {
                var mimeMessage = _currentFolder.GetMessage(i);
                var iMessage    = new InternetMailMessage(mimeMessage, UniqueIdToInternalId(i));
                result.Add(iMessage);
            }

            if (processedMessages.Count > 0)
            {
                if (deleteMessages)
                {
                    _currentFolder.AddFlags(processedMessages, MessageFlags.Deleted, silent: true);
                }
                else if (markAsRead)
                {
                    _currentFolder.AddFlags(processedMessages, MessageFlags.Seen, silent: true);
                }
            }

            return(result);
        }
コード例 #6
0
        public void Delete()
        {
            if (IsNew)
            {
                return;
            }

            var appUser = _userService.FindByIdAsync(UserId).Result;

            if (appUser == null)
            {
                throw new RuntimeException("Current user ID isn't in database");
            }

            var result = _userService.DeleteAsync(appUser).Result;

            if (!result.Succeeded)
            {
                var resultArr = new ArrayImpl();
                foreach (var identityError in result.Errors)
                {
                    var strValue = ValueFactory.Create($"{{{identityError.Code}}} - {identityError.Description}");
                    resultArr.Add(strValue);
                }

                throw new ParametrizedRuntimeException("Ошибка удаления пользователя", resultArr);
            }
        }
コード例 #7
0
        public void ArrayPresentation()
        {
            var obj = new ArrayImpl();

            obj.Add(ValueFactory.Create(1));
            obj.Add(ValueFactory.Create(2));

            var debuggerVar = Visualizer.GetVariable(Variable.Create(obj, "myArray"));

            Assert.That(debuggerVar.Presentation, Is.EqualTo("Массив"));
            Assert.That(debuggerVar.IsStructured, Is.True);

            var items = Visualizer.GetChildVariables(obj).ToArray();

            Assert.That(items, Has.Length.EqualTo(2));
            Assert.That(items[0].Name, Is.EqualTo("0"));
            Assert.That(items[1].Name, Is.EqualTo("1"));
        }
コード例 #8
0
        private void getColumns()
        {
            var cols = ((DataGridView)_item).Columns;

            foreach (DataGridViewColumn col in cols)
            {
                _columns.Add(new FormTableColumn(((DataGridView)_item), _columns.Count()));
            }
        }
コード例 #9
0
        private void getListViewColumns()
        {
            var cols = ((ListView)_item).Columns;

            foreach (ColumnHeader col in cols)
            {
                _columns.Add(new ListViewColumn(((ListView)_item), _columns.Count()));
            }
        }
コード例 #10
0
        private void getColumns()
        {
            var cols = _item.Columns;

            foreach (ColumnHeader col in cols)
            {
                _columns.Add(new FormTreeColumn(_item, col.Index));
            }
        }
コード例 #11
0
        ArrayImpl GetAllJobs()
        {
            ArrayImpl result = new ArrayImpl();

            foreach (System.Collections.Generic.KeyValuePair <Guid, WebBackgroundJob> ci in WebBackgroundJobsManager.Jobs)
            {
                result.Add(new WebBackgroundJobImpl(ci.Value));
            }

            return(result);
        }
コード例 #12
0
        public ArrayImpl ToArray()
        {
            ArrayImpl inArray = new ArrayImpl();

            IValue[] val = _stack.ToArray();
            foreach (var itm in val)
            {
                inArray.Add(itm);
            }
            return(inArray);
        }
コード例 #13
0
        public ArrayImpl UnloadColumn(IValue column)
        {
            ArrayImpl result = new ArrayImpl();

            foreach (ValueTableRow row in _rows)
            {
                result.Add(row.Get(column));
            }

            return(result);
        }
コード例 #14
0
        public ArrayImpl GetAsmTypes()
        {
            ArrayImpl types = new ArrayImpl();

            foreach (var itm in _asm.GetTypes())
            {
                AssemblyType type = new AssemblyType(itm);
                types.Add(type);
            }
            return(types);
        }
コード例 #15
0
        public ArrayImpl FindAll()
        {
            SearchResultCollection searchResultCollection = _directorySearcher.FindAll();
            ArrayImpl result = new ArrayImpl();

            foreach (SearchResult searchResult in searchResultCollection)
            {
                result.Add(new SearchResultImpl(searchResult));
            }
            return(result);
        }
        public ArrayImpl GetUsers()
        {
            var arr          = new ArrayImpl();
            var usersManager = _requestAccessor.HttpContext.RequestServices.GetRequiredService <UserManager <ApplicationUser> >();

            foreach (var sysUser in usersManager.Users.OrderBy(x => x.UserName).ToList())
            {
                arr.Add(HydrateUserContext(usersManager, sysUser));
            }

            return(arr);
        }
コード例 #17
0
        public void Write()
        {
            IdentityResult result;

            if (IsNew)
            {
                var appUser = new ApplicationUser
                {
                    UserName = Name,
                    Email    = Email
                };
                if (String.IsNullOrEmpty(Password))
                {
                    result = _userService.CreateAsync(appUser).Result;
                }
                else
                {
                    result = _userService.CreateAsync(appUser, Password).Result;
                }

                if (result.Succeeded)
                {
                    UserId = appUser.Id;
                }
            }
            else
            {
                var appUser = _userService.FindByIdAsync(UserId).Result;
                if (appUser == null)
                {
                    throw new RuntimeException("Current user ID isn't in database");
                }

                appUser.UserName     = Name;
                appUser.Email        = Email;
                appUser.PasswordHash = _userService.PasswordHasher.HashPassword(appUser, Password);

                result = _userService.UpdateAsync(appUser).Result;
            }

            if (!result.Succeeded)
            {
                var resultArr = new ArrayImpl();
                foreach (var identityError in result.Errors)
                {
                    var strValue = ValueFactory.Create($"{{{identityError.Code}}} - {identityError.Description}");
                    resultArr.Add(strValue);
                }

                throw new ParametrizedRuntimeException("Ошибка создания пользователя", resultArr);
            }
        }
コード例 #18
0
        public ArrayImpl GetBackgroundJobs(StructureImpl filter = default)
        {
            if (filter == default)
            {
                return(new ArrayImpl(_tasks.ToArray()));
            }

            var arr = new ArrayImpl();

            foreach (var task in _tasks)
            {
                var result = true;
                foreach (var filterItem in filter)
                {
                    switch (filterItem.Key.AsString().ToLower())
                    {
                    case "состояние":
                    case "state":
                        var enumval = filterItem.Value as CLREnumValueWrapper <TaskStateEnum>;
                        if (enumval == default)
                        {
                            continue;
                        }

                        result = result && task.State == enumval.UnderlyingValue;
                        break;

                    case "имяметода":
                    case "methodname":
                        result = result && task.MethodName.ToLower() == filterItem.Value.AsString();
                        break;

                    case "объект":
                    case "object":
                        result = result && task.Target.Equals(filterItem.Value);
                        break;

                    case "уникальныйидентификатор":
                    case "uuid":
                        result = result && task.Identifier.Equals(filterItem.Value);
                        break;
                    }
                }

                if (result)
                {
                    arr.Add(task);
                }
            }

            return(arr);
        }
コード例 #19
0
        public ArrayImpl GetMailboxes(bool subscribedOnly)
        {
            var result = new ArrayImpl();

            var allFolders = client.GetFolders(null, subscribedOnly);

            foreach (var folder in allFolders)
            {
                result.Add(ValueFactory.Create(folder.FullName));
            }

            return(result);
        }
コード例 #20
0
        public ArrayImpl GetRecurringJobsIDs()
        {
            List <RecurringJobDto> recurringJobs = JobStorage.Current.GetConnection().GetRecurringJobs();

            var arr = new ArrayImpl();

            foreach (var recurringJob in recurringJobs)
            {
                arr.Add(ValueFactory.Create(recurringJob.Id));
            }

            return(arr);
        }
コード例 #21
0
        public ArrayImpl GetList()
        {
            ArrayImpl array = new ArrayImpl();

            ServiceController[] scServices;
            scServices = ServiceController.GetServices();

            //Service srv = new Service();

            foreach (ServiceController srv in scServices)
            {
                array.Add(new Service(srv));
            }

            return(array);
        }
コード例 #22
0
        public InternetProxyContext(bool useDefault)
        {
            var emptyProxy = new WebProxy();

            _bypassLocal            = false;
            _bypassProxyOnAddresses = new ArrayImpl();

            if (useDefault)
            {
                if (System.Environment.OSVersion.Platform == System.PlatformID.Unix)
                {
                    var httpEnv = System.Environment.GetEnvironmentVariable(LINUX_ENV_HTTP);
                    _proxies[Uri.UriSchemeHttp] = httpEnv == null ? emptyProxy :
                                                  _proxies[Uri.UriSchemeHttp] = GetProxyFromEnvironmentVariable(httpEnv);

                    var httpsEnv = System.Environment.GetEnvironmentVariable(LINUX_ENV_HTTPS);
                    _proxies[Uri.UriSchemeHttps] = httpsEnv == null ? emptyProxy :
                                                   _proxies[Uri.UriSchemeHttps] = GetProxyFromEnvironmentVariable(httpEnv);

                    var noProxy    = System.Environment.GetEnvironmentVariable(LINUX_ENV_NO_PROXY) ?? string.Empty;
                    var separator  = new[] { ',', ' ' };
                    var byPassList = noProxy.Split(separator, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var uri in byPassList)
                    {
                        _bypassProxyOnAddresses.Add(ValueFactory.Create(uri));
                    }
                    foreach (var proxy in _proxies.Values.Cast <WebProxy>())
                    {
                        proxy.BypassList = byPassList;
                    }
                }
                else
                {
                    var defaultProxy = WebRequest.GetSystemWebProxy();
                    defaultProxy.Credentials = CredentialCache.DefaultNetworkCredentials;

                    _proxies[Uri.UriSchemeHttp]  = defaultProxy;
                    _proxies[Uri.UriSchemeHttps] = defaultProxy;
                }
            }
            else
            {
                _proxies[Uri.UriSchemeHttp]  = emptyProxy;
                _proxies[Uri.UriSchemeHttps] = emptyProxy;
            }
        }
コード例 #23
0
        public ArrayImpl GetFields()
        {
            ArrayImpl result = new ArrayImpl();
            var       list   = AsmType.GetFields();

            foreach (var itm in list)
            {
                StructureImpl strct = new StructureImpl();
                strct.Insert("Имя", ValueFactory.Create(itm.Name));
                strct.Insert("Тип", ValueFactory.Create(itm.FieldType.Name));
                strct.Insert("ЭтоЗакрытое", ValueFactory.Create(itm.IsPrivate));
                strct.Insert("ЭтоОткрытое", ValueFactory.Create(itm.IsPublic));

                result.Add(strct);
            }
            return(result);
        }
コード例 #24
0
        public ArrayImpl GetHeaders(StructureImpl filter)
        {
            var result = new ArrayImpl();

            if (client.Count > 0)
            {
                var allHeaders = client.GetMessageHeaders(0, client.Count);

                foreach (var headers in allHeaders)
                {
                    var mailMessage = new InternetMailMessage(headers);
                    result.Add(mailMessage);
                }
            }

            return(result);
        }
コード例 #25
0
        // В режиме Pop3 отбор filter игнорируется
        public ArrayImpl GetIdentifiers(ArrayImpl identifiers = null, StructureImpl filter = null)
        {
            var result  = new ArrayImpl();
            var allUids = client.GetMessageUids();

            foreach (var uid in allUids)
            {
                var Id = ValueFactory.Create(uid);

                if (identifiers == null || identifiers.Find(Id).DataType == DataType.Undefined)
                {
                    result.Add(Id);
                }
            }

            return(result);
        }
コード例 #26
0
        public ArrayImpl GetIdentifiers(ArrayImpl identifiers, StructureImpl filter)
        {
            var result  = new ArrayImpl();
            var allUids = GetHeaders(filter);

            foreach (var ivHeaderWithUid in allUids)
            {
                var headerWithUid = ivHeaderWithUid as InternetMailMessage;
                var Id            = headerWithUid.Uid.Get(0);

                if (identifiers == null || identifiers.Find(Id).DataType == DataType.Undefined)
                {
                    result.Add(Id);
                }
            }

            return(result);
        }
コード例 #27
0
 private IValue ResultValueCollectionAsIValue(ResultPropertyValueCollection values)
 {
     IValue result;
     if (values.Count == 1)
     {
         result = ValueFactory.Create(values[0].ToString());
     }
     else
     {
         ArrayImpl collection = new ArrayImpl();
         foreach (object value in values)
         {
             collection.Add(ValueFactory.Create(value.ToString()));
         }
         result = collection;
     }
     return result;
 }
コード例 #28
0
ファイル: ValueTable.cs プロジェクト: pauliv2/OneScript
        public ArrayImpl FindRows(IValue Filter)
        {
            if (!(Filter is StructureImpl))
            {
                throw RuntimeException.InvalidArgumentType();
            }

            ArrayImpl Result = new ArrayImpl();

            foreach (ValueTableRow row in _rows)
            {
                if (CheckFilterCriteria(row, Filter as StructureImpl))
                {
                    Result.Add(row);
                }
            }

            return(Result);
        }
コード例 #29
0
        public ArrayImpl GetAsmProperties()
        {
            ArrayImpl result = new ArrayImpl();
            var       list   = AsmType.GetProperties();

            foreach (var itm in list)
            {
                StructureImpl strct = new StructureImpl();
                strct.Insert("Имя", ValueFactory.Create(itm.Name));
                strct.Insert("Тип", ValueFactory.Create(itm.PropertyType.Name));
                strct.Insert("ДоступноЧтение", ValueFactory.Create(itm.CanRead));
                strct.Insert("ДоступнаЗапись", ValueFactory.Create(itm.CanWrite));

                //strct.Insert("ИмяМетодаЧтения", ValueFactory.Create(itm.GetMethod.Name));
                //strct.Insert("ИмяМетодаЗаписи", ValueFactory.Create(itm.SetMethod.Name));

                result.Add(strct);
            }
            return(result);
        }
コード例 #30
0
        public ArrayImpl FindRows(IValue filter)
        {
            var filterStruct = filter.GetRawValue() as StructureImpl;

            if (filterStruct == null)
            {
                throw RuntimeException.InvalidArgumentType();
            }

            ArrayImpl Result = new ArrayImpl();

            foreach (ValueTableRow row in _rows)
            {
                if (CheckFilterCriteria(row, filterStruct))
                {
                    Result.Add(row);
                }
            }

            return(Result);
        }