public List<EHistoryDataStoreConfig> GetVehicleStoreTableConfigList(IList<Guid> vehicleCodes)
        {
            if (vehicleCodes.IsNullOrEmpty())
                return null;

            List<EHistoryDataStoreConfig> res = null;
            string cmdText = string.Format("select RecordID, VehicleCode, StoreTable, ENABLE, CreateDate, remark from gps_historydatastoreconfig where VehicleCode in ('{0}')", vehicleCodes.JoinToString<Guid>("','"));
            using (MySqlDataReader sdr = MySqlDB.GetDataReader(CommandType.Text, cmdText))
            {
                if (sdr != null)
                {
                    res = new List<EHistoryDataStoreConfig>();
                    while (sdr.Read())
                    {
                        res.Add(new EHistoryDataStoreConfig
                        {
                            RecordID = sdr.GetGuid(0),
                            VehicleCode = sdr.GetGuid(1),
                            StoreTable = GetHisotryDataStoreTable(sdr.GetGuid(2)),
                            Enable = sdr.GetShort(3) == 1,
                            CreateDate = sdr.GetDateTimeExt(4),
                            Remark = sdr.GetStringExt(5)
                        });
                    }
                    sdr.Close();
                }
            }
            return res;
        }
		/// <summary>
		/// Serializes the list of active plugins to the permanent store.
		/// </summary>
		/// <returns>The ordered list of active plugins.</returns>
		public void SavePluginLog(IList<Plugin> p_lstActivePlugins)
		{
			if (p_lstActivePlugins.IsNullOrEmpty())
			{
				LoadOrderManager.SetActivePlugins(GameMode.OrderedCriticalPluginNames);
				return;
			}
			
			List<string> lstPlugins = new List<string>();
			foreach (Plugin plgPlugin in p_lstActivePlugins)
				lstPlugins.Add(plgPlugin.Filename);
			lstPlugins.Sort();

			List<string> lstActivePlugins = new List<string>();
			foreach (string strPlugin in GameMode.OrderedCriticalPluginNames)
			{
				lstPlugins.RemoveAll(x => x.Equals(strPlugin, StringComparison.CurrentCultureIgnoreCase));
				if (!lstActivePlugins.Contains(strPlugin, StringComparer.CurrentCultureIgnoreCase))
					lstActivePlugins.Add(strPlugin);
			}
			foreach (Plugin plgPlugin in PluginOrderLog.OrderedPlugins)
			{
				if (lstPlugins.Contains(plgPlugin.Filename, StringComparer.CurrentCultureIgnoreCase))
					if (!lstActivePlugins.Contains(plgPlugin.Filename, StringComparer.CurrentCultureIgnoreCase))
						lstActivePlugins.Add(plgPlugin.Filename);
			}
			LoadOrderManager.SetActivePlugins(lstActivePlugins.ToArray());
		}
Example #3
1
        public ConditionResolver(IList<Condition> conditions)
        {
            if (conditions.IsNullOrEmpty())
                throw new ArgumentNullException(nameof(conditions));

            _conditions = conditions;
        }
Example #4
1
        /// <summary>
        /// 统计停车次数,过滤停车时长小于指定值的次数
        /// </summary>
        /// <param name="ltVehicleCode"></param>
        /// <param name="beginTime"></param>
        /// <param name="endTime"></param>
        /// <param name="second"></param>
        /// <param name="tenantCode"></param>
        /// <returns></returns>
        public Dictionary<Guid, VCountStopCar> Count(IList<Guid> ltVehicleCode, DateTime beginTime, DateTime endTime, int second, string tenantCode)
        {
            if (ltVehicleCode.IsNullOrEmpty())
                return new Dictionary<Guid, VCountStopCar>();

            Dictionary<Guid, TimeSpan> totalTimes; //运行轨迹的总时长
            IList<VStopCarReport> list = SearchStop(ltVehicleCode, beginTime, endTime, second, tenantCode, out totalTimes);
            
            Dictionary<Guid, VCountStopCar> dic = new Dictionary<Guid, VCountStopCar>();
            if (list != null && list.Count > 0)
            { //合并停车明细
                VCountStopCar vCount;
                foreach (var item in list)
                {
                    if (dic.ContainsKey(item.VehicleCode))
                    {
                        vCount = dic[item.VehicleCode];
                        vCount.Count++;
                        vCount.CountTime += item.StopTimeSpan;
                        //vCount.TotalTime += item.TotalTimeSpan;
                    }
                    else
                    {
                        vCount = new VCountStopCar();
                        vCount.Count++;
                        vCount.CountTime = item.StopTimeSpan;
                        //vCount.TotalTime = item.TotalTimeSpan;
                        vCount.VehicleCode = item.VehicleCode;
                        vCount.LicenceNumber = item.LicenceNumber;
                        dic.Add(vCount.VehicleCode, vCount);
                    }
                }
            }
            foreach (var item in totalTimes)
            {
                if (dic.ContainsKey(item.Key))
                {
                    dic[item.Key].TotalTime = item.Value;
                }
                else
                {
                    dic.Add(item.Key, new VCountStopCar
                    {
                        VehicleCode = item.Key,
                        Count = 0,
                        CountTime = new TimeSpan(0),
                        TotalTime = item.Value
                    });
                }
            }

            return dic;
        }
        public Grid Build(IList<IPanelItem> items)
        {
            var grid = new Grid();

            var i = 1;

            while (!items.IsNullOrEmpty())
            {
                grid.Blocks.Add(GenerateBlock(items.Take(i)));

                items = items.Skip(i).ToList();

                if (items.IsNullOrEmpty())
                    break;

                i = i == 1 ? 4 : 1;

                grid.Blocks.Add(GenerateBlock(items.Take(i)));

                items = items.Skip(i).ToList();
            }

            return grid;
        }
        public void Delete(IList<Guid> vehicleCodes, Guid areaCode)
        {
            if (vehicleCodes.IsNullOrEmpty())
                return;
            using (IRepository repository = SessionManager.CreateRepository(typeof(ETraceAlertSetting)))
            {
                Query query = new Query(typeof(ETraceAlertSetting));
                Expression expression = null;
                ExpressionUtility<Guid>.AddExpression("VehicleCode", vehicleCodes, PolynaryOperatorType.In, ref expression);
                ExpressionUtility<Guid>.AddExpression("TracePoint.RecordID", areaCode, BinaryOperatorType.EqualTo, ref expression);

                query.Expression = expression;
                repository.DeleteBy(query);
            }
        }
 private static IList<ParameterInstances> Expand(IList<ParameterInstances> instancesList, IList<ParameterDefinition> definitions)
 {
     if (definitions.IsNullOrEmpty())
         return instancesList;
     var nextDefinition = definitions.First();
     var newInstancesList = new List<ParameterInstances>();
     foreach (var instances in instancesList)
         foreach (var value in nextDefinition.Values)
         {
             var items = new List<ParameterInstance>();
             items.AddRange(instances.Items);
             items.Add(new ParameterInstance(nextDefinition, value));
             newInstancesList.Add(new ParameterInstances(items));
         }
     return Expand(newInstancesList, definitions.Skip(1).ToArray());
 }
        public IList<EBreakOilLastRecord> Search(IList<Guid> vehicleCodes)
        {
            if (vehicleCodes.IsNullOrEmpty())
            {
                return null;
            }
            using (IRepository repository = SessionManager.CreateRepository(typeof(EBreakOilLastRecord)))
            {
                Query query = new Query(typeof(EBreakOilLastRecord));
                Expression expression = Expression.CreateExpression("VehicleCode", PolynaryOperatorType.In, vehicleCodes);
                query.Expression = expression;
        
                var list = repository.List<EBreakOilLastRecord>(query);

                return list;
            }
        }
        public IAsyncOperation<IList<SynchronizedType>> GetMultipleAsync(IList<string> typeIDs)
        {
            if (typeIDs.IsNullOrEmpty())
            {
                throw new ArgumentException("typeIDs");
            }

            return AsyncInfo.Run<IList<SynchronizedType>>(async cancelToken =>
            {
                List<SynchronizedType> sTypes = new List<SynchronizedType>();
                foreach(string typeID in typeIDs)
                {
                    SynchronizedType type = await this.Ensure(typeID, cancelToken);
                    sTypes.Add(type);
                }

                return sTypes;
            });
        }
Example #10
1
        static bool Target(IList<string> unparsed)
        {
            string url = command_url;
            if (false == unparsed.IsNullOrEmpty())
            {
                url = unparsed[0];
            }

            IVcapClient vc = new VcapClient();
            VcapClientResult rslt = vc.Target(url);
            if (rslt.Success)
            {
                Console.WriteLine(String.Format(Resources.Vmc_TargetDisplay_Fmt, rslt.Message));
            }
            else
            {
                Console.WriteLine(String.Format(Resources.Vmc_TargetNoSuccessDisplay_Fmt, rslt.Message));
            }

            return rslt.Success;
        }
        public IAsyncOperation<IList<RecordItemChange>> GetChangesForItemsAsync(IList<string> itemIDs)
        {
            if (itemIDs.IsNullOrEmpty())
            {
                throw new ArgumentException("itemID");
            }

            return AsyncInfo.Run<IList<RecordItemChange>>(async cancelToken =>
            {
                using (await CrossThreadLockScope.Enter(m_lock))
                {
                    List<RecordItemChange> changes = new List<RecordItemChange>();
                    foreach(string id in itemIDs)
                    {
                        RecordItemChange change = await this.GetChangeAsync(id);
                        if (change != null)
                        {
                            changes.Add(change);
                        }
                    }
                    return changes;
                }
            });
        }
Example #12
1
        public async Task SaveLocalItems(IList<ReaderItem> items)
        {
            await WriteItemsToDisk(items, SourceProvider.Local);

            if (!items.IsNullOrEmpty())
            {
                CacheCount.LocalCount = items.Count;
            }
            else
            {
                CacheCount.LocalCount = null;
            }

            WriteCountsToStorage().ConfigureAwait(false);
        }
        public IAsyncOperation<IList<SynchronizedView>> GetViewsAsync(IList<string> viewNames)
        {
            if (viewNames.IsNullOrEmpty())
            {
                throw new ArgumentException("viewNames");
            }

            return AsyncInfo.Run<IList<SynchronizedView>>(async cancelToken => 
            {
                LazyList<SynchronizedView> views = new LazyList<SynchronizedView>();
                foreach(string viewName in viewNames)
                {
                    SynchronizedView view = await this.GetViewAsync(viewName, cancelToken);
                    if (view != null)
                    {
                        views.Add(view);
                    }
                }

                return views.HasValue ? views.Value : null;
            });
        }
        public TernarySearchTree(IList <IEnumerable <TS> > searchObjects, IObservable <TS> streamToMatchAgainstTree)
        {
            if (searchObjects.IsNullOrEmpty())
            {
                throw new ArgumentOutOfRangeException("Nothing to build tree from!");
            }
            if (streamToMatchAgainstTree == null)
            {
                throw new ArgumentOutOfRangeException("Nothing to match against!");
            }
            CreateTree(searchObjects);
            Node currentNode = _root;

            streamToMatchAgainstTree.Subscribe(ts =>
            {
                if (_root == null)
                {
                    return;
                }
                MatchResult mr = currentNode.FindMatch(ts, out currentNode);
                if (mr.DeadEnd)
                {
                    currentNode = _root;
                    return;
                }
                if (mr.Hit)
                {
                    _observers.OnNext(mr.Match);
                }
            });
        }
Example #15
0
        public void SetOffer(long newCredit, IList <long> newItemEids)
        {
            State   = TradeState.Offer;
            _credit = newCredit;

            _items.Clear();

            var data = new Dictionary <string, object>
            {
                { k.characterID, owner.Id },
                { k.credit, _credit },
            };

            if (!newItemEids.IsNullOrEmpty())
            {
                var myContainer = owner.GetPublicContainerWithItems();

                foreach (var newItemEid in newItemEids)
                {
                    var item = myContainer.GetItem(newItemEid);
                    if (item == null)
                    {
                        continue;
                    }
                    _items.Add(new TradeItem(item));
                }

                var items = _items.ToDictionary <TradeItem, string, object>(item => "i" + item.itemEid, item => item.ToDictionary());
                data.Add(k.items, items);
            }

            Message.Builder.SetCommand(Commands.TradeOffer).WithData(data).ToCharacters(owner, trader).Send();
        }
Example #16
0
        public static void RemoveAll <T>(this IList <T> source, Func <T, bool> condition)
        {
            if (source.IsNullOrEmpty())
            {
                return;
            }

            var removed = default(IList <T>);

            foreach (var item in source)
            {
                if (condition(item))
                {
                    if (removed.IsNull())
                    {
                        removed = new List <T>();
                    }

                    removed.Add(item);
                }
            }

            if (!removed.IsNullOrEmpty())
            {
                foreach (var item in removed)
                {
                    source.Remove(item);
                }
            }
        }
 public static void AssertListIsNotNullOrEmpty <T>(this IList <T> list, string name)
 {
     if (list.IsNullOrEmpty())
     {
         throw new ArgumentNullException(name, ErrorMessageResource.ArgumentNullError);
     }
 }
Example #18
0
        public static IList <GameObject> gameObjects <T>(this IList <T> objs) where T : MonoBehaviour
        {
            if (objs.IsNullOrEmpty())
            {
                return(null);
            }

            var result = default(List <GameObject>);

            foreach (var item in objs)
            {
                if (item.IsNull())
                {
                    continue;
                }

                var newObj = item.gameObject;
                if (newObj.IsNull())
                {
                    continue;
                }

                if (result.IsNull())
                {
                    result = new List <GameObject>();
                }

                result.Add(newObj);
            }

            return(result);
        }
Example #19
0
 /// <summary>
 /// Helper function used to remove, and dispose of each IDisposable item, in a given list (using DisposeOfGivenObject).
 /// <para/>Removes all items from the list even if not all of them are IDisposable.
 /// </summary>
 /// <typeparam name="ObjType">Any type of ref object.  May be a type that is castable to IDisposable.</typeparam>
 public static void TakeAndDisposeOfGivenObjects <ObjType>(this IList <ObjType> objList) where ObjType : class
 {
     while (!objList.IsNullOrEmpty())
     {
         objList.SafeTakeFirst().DisposeOfGivenObject();
     }
 }
        /// <summary>
        /// 修改套餐模板方案
        /// </summary>
        /// <param name="schemeName">方案名称</param>
        /// <param name="cover">封面</param>
        /// <param name="description">描述</param>
        /// <param name="images">方案概况图片集</param>
        /// <param name="schemeDescription">方案概况描述</param>
        /// <param name="videoAudioLink">视频音频地址链接</param>
        /// <param name="videoAudioFileName">视频音频文件名称</param>
        /// <param name="videoAudioFileSize">视频音频文件大小</param>
        /// <param name="videoAudioFileId">视频音频文件Id</param>
        /// <param name="videoAudiogFileSuffix">视频音频文件扩展名</param>
        /// <param name="schemeSpaces">方案空间集</param>
        public void UpdateInfo(string schemeName, string cover, string description, IList <string> images, IList <string> schemeDescriptions, string videoAudioLink, string videoAudioFileSize, string videoAudioFileId, string videoAudiogFileSuffix, string videoAudioFileName, IEnumerable <DecorationPackSchemeSpace> schemeSpaces)
        {
            #region # 验证

            schemeSpaces = schemeSpaces == null ? new DecorationPackSchemeSpace[0] : schemeSpaces.ToArray();

            if (schemeSpaces.Count() != schemeSpaces.DistinctBy(x => x.PackSpaceId).Count())
            {
                throw new ArgumentOutOfRangeException("schemeSpaces", "套餐模板空间不可重复!");
            }

            #endregion

            base.Name                  = schemeName;
            this.Cover                 = cover;
            this.Description           = description;
            this.ImagesStr             = images.IsNullOrEmpty() ? null : images.ToJson();
            this.SchemeDescriptionsStr = schemeDescriptions.IsNullOrEmpty() ? null : schemeDescriptions.ToJson();
            this.VideoAudioLink        = videoAudioLink;
            this.VideoAudioFileId      = videoAudioFileId;
            this.VideoAudioFileName    = videoAudioFileName;
            this.VideoAudioFileSize    = videoAudioFileSize;
            this.VideoAudiogFileSuffix = videoAudiogFileSuffix;
            //先清空
            foreach (DecorationPackSchemeSpace schemeSpace in this.SchemeSpaces.ToArray())
            {
                this.SchemeSpaces.Remove(schemeSpace);
            }

            //再添加
            this.SchemeSpaces.AddRange(schemeSpaces);
        }
Example #21
0
        /// <summary>
        /// Kraken Downloader Toolbox Project For LEAN Algorithmic Trading Engine.
        /// By @matthewsedam
        /// </summary>
        public static void KrakenDownloader(IList <string> tickers, string resolution, DateTime startDate, DateTime endDate)
        {
            if (resolution.IsNullOrEmpty() || tickers.IsNullOrEmpty())
            {
                Console.WriteLine("KrakenDownloader ERROR: '--tickers=' or '--resolution=' parameter is missing");
                Console.WriteLine("--tickers=eg XXBTZUSD,XETHZUSD");
                Console.WriteLine("--resolution=Minute/Hour/Daily/Tick");
                Environment.Exit(1);
            }

            try
            {
                var castResolution = (Resolution)Enum.Parse(typeof(Resolution), resolution);

                // Load settings from config.json and create downloader
                var dataDirectory = Config.Get("data-directory", "../../../Data");
                var downloader    = new KrakenDataDownloader();

                foreach (var pair in tickers)
                {
                    // Download data
                    var pairObject = Symbol.Create(pair, SecurityType.Crypto, Market.Kraken);
                    var data       = downloader.Get(pairObject, castResolution, startDate, endDate);

                    // Write data
                    var writer = new LeanDataWriter(castResolution, pairObject, dataDirectory);
                    writer.Write(data);
                }
            }
            catch (Exception err)
            {
                Log.Error(err);
            }
        }
        /// <summary>
        /// 创建套餐模板方案构造器
        /// </summary>
        /// <param name="schemeName">方案名称</param>
        /// <param name="packId">套餐模板Id</param>
        /// <param name="cover">封面</param>
        /// <param name="description">描述</param>
        /// <param name="images">方案概况图片集</param>
        /// <param name="schemeDescriptions">方案概况描述集</param>
        /// <param name="videoAudioLink">视频音频地址链接</param>
        /// <param name="videoAudioFileName">视频音频文件名称</param>
        /// <param name="videoAudioFileSize">视频音频文件大小</param>
        /// <param name="videoAudioFileId">视频音频文件Id</param>
        /// <param name="videoAudiogFileSuffix">视频音频文件扩展名</param>
        /// <param name="isDefault">默认方案</param>
        /// <param name="schemeSpaces">方案空间集</param>
        public DecorationPackScheme(string schemeName, Guid packId, string cover, string description, IList <string> images, IList <string> schemeDescriptions, string videoAudioLink, string videoAudioFileSize, string videoAudioFileId, string videoAudiogFileSuffix, string videoAudioFileName, bool isDefault, IEnumerable <DecorationPackSchemeSpace> schemeSpaces)
            : this()
        {
            #region # 验证

            schemeSpaces = schemeSpaces == null ? new DecorationPackSchemeSpace[0] : schemeSpaces.ToArray();

            if (schemeSpaces.Count() != schemeSpaces.DistinctBy(x => x.PackSpaceId).Count())
            {
                throw new ArgumentOutOfRangeException("schemeSpaces", "套餐模板空间不可重复!");
            }

            #endregion

            base.Name                  = schemeName;
            this.PackId                = packId;
            this.Cover                 = cover;
            this.Description           = description;
            this.ImagesStr             = images.IsNullOrEmpty() ? null : images.ToJson();
            this.SchemeDescriptionsStr = schemeDescriptions.IsNullOrEmpty() ? null : schemeDescriptions.ToJson();
            this.VideoAudioLink        = videoAudioLink;
            this.VideoAudioFileId      = videoAudioFileId;
            this.VideoAudioFileName    = videoAudioFileName;
            this.VideoAudioFileSize    = videoAudioFileSize;
            this.VideoAudiogFileSuffix = videoAudiogFileSuffix;
            this.IsDefault             = isDefault;
            this.SchemeSpaces.AddRange(schemeSpaces);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="views">Views to synchronize</param>
        /// <returns>Subset of views acutually refreshed OR null if none</returns>
        public IAsyncOperation <IList <ISynchronizedView> > SynchronizeAsync(IList <ISynchronizedView> views)
        {
            if (views == null)
            {
                throw new ArgumentNullException("views");
            }

            return(AsyncInfo.Run <IList <ISynchronizedView> >(async cancelToken => {
                this.Reset();

                try
                {
                    IList <ISynchronizedView> synchronizableViews = await this.CollectSynchronizableViews(views);
                    if (!synchronizableViews.IsNullOrEmpty())
                    {
                        IList <ItemQueryResult> results = await this.ExecuteSyncQueries();
                        await this.UpdateViews(views, results);
                    }

                    return synchronizableViews;
                }
                finally
                {
                    this.Reset();
                }
            }));
        }
        /// <summary>
        /// Checks if an identifier in format of an uri is unique.
        /// The base uri is a special kind of identifier and is therefore checked separately.
        /// </summary>
        /// <param name="pidUriResults">All found entries with the same identifier</param>
        /// <param name="resource">Id of the entity to be checked</param>
        /// <param name="resourceId">Resource id of the main entry (parent entry id)</param>
        /// <returns></returns>
        private bool CheckIdentifierIsDuplicate(IList <DuplicateResult> pidUriResults, Entity resource, string resourceId, out bool orphaned)
        {
            string resourceType = resource.Properties.GetValueOrNull(Graph.Metadata.Constants.RDF.Type, true);

            orphaned = false;
            if (pidUriResults.IsNullOrEmpty())
            {
                return(false);
            }
            else if (pidUriResults.IsAnyDraftAndPublishedNull())
            {
                orphaned = true;
                return(true);
            }
            else if (string.IsNullOrWhiteSpace(resourceId))
            {
                return(true);
            }
            else if (pidUriResults.IsAnyDraftAndPublishedNotEqualToIdentifier(resourceId))
            {
                return(true);
            }
            else if (pidUriResults.IsAnyResultEqualToIdentifierAndHasDifferentType(resourceId, resourceType))
            {
                return(true);
            }

            return(false);
        }
        /// <summary>
        /// Sends request to Google Drive API, downloads file and reads it.
        /// </summary>
        /// <param name="storageName">Storage name on Google Drive with Things names.</param>
        /// <returns>Processed collection of Things names as strings.</returns>
        public List <string> ReadThingNames(string storageName)
        {
            var result = new List <string>();

            if (string.IsNullOrEmpty(storageName))
            {
                return(result);
            }

            // Get info from API, download file and read it.
            IList <GoogleDriveData.File> files = ListFiles(new GoogleDriveFilesListOptionalParams
            {
                Q = $"name contains '{storageName}'"
            }).Files;

            if (!files.IsNullOrEmpty())
            {
                foreach (GoogleDriveData.File file in files)
                {
                    if (storageName.IsEqualWithInvariantCulture(file.Name))
                    {
                        result = DownloadAndReadFile(storageName, file.Id);
                        break;
                    }
                }
            }
            else
            {
                _logger.Info($"No files found. Tried to find \"{storageName}\".");
            }

            return(result);
        }
Example #26
0
        private static void Start(IntPtr info)
        {
            NSJSFunctionCallbackInfo arguments   = NSJSFunctionCallbackInfo.From(info);
            HTTPApplication          application = GetApplication(arguments.This);

            if (application == null)
            {
                Throwable.ObjectDisposedException(arguments.VirtualMachine);
            }
            else
            {
                try
                {
                    IList <string> prefixes = ArrayAuxiliary.ToStringList(arguments.Length > 0 ? arguments[0] : null);
                    do
                    {
                        if (prefixes.IsNullOrEmpty())
                        {
                            Throwable.ArgumentNullException(arguments.VirtualMachine);
                            break;
                        }
                        application.Start(prefixes);
                        arguments.SetReturnValue(true);
                    } while (false);
                }
                catch (Exception e)
                {
                    Throwable.Exception(arguments.VirtualMachine, e);
                }
            }
        }
Example #27
0
        protected IList <IDictionary <string, string> > GetTestInstanceRun(Response response)
        {
            IList <IDictionary <string, string> > ret = null;

            try
            {
                if (!response.Data.IsNullOrWhiteSpace())
                {
                    ret = Xml.ToEntities($"{response}");
                }

                if (ret.IsNullOrEmpty())
                {
                    _logger.LogInfo($"Parse TestInstanceRuns from response XML got no result. Response: {response}");
                }
            }
            catch (ThreadInterruptedException)
            {
                throw;
            }
            catch (Exception ex)
            {
                _logger.LogError($"Failed to parse TestInstanceRuns response XML. Exception: {ex.Message}, XML: {response}");
            }

            return(ret);
        }
Example #28
0
        internal async Task CommitAsync(CancellationToken cancelToken)
        {
            bool hasPendingWork = true;

            while (hasPendingWork)
            {
                if (!m_workerController.BeginWork())
                {
                    return;
                }

                hasPendingWork = false;
                this.NotifyStarting();
                try
                {
                    IList <string> changedItems = await m_changeTable.GetChangeQueueAsync();

                    if (!changedItems.IsNullOrEmpty())
                    {
                        await this.CommitChangesAsync(changedItems);
                    }
                }
                catch (Exception ex)
                {
                    this.NotifyError(ex);
                    throw;
                }
                finally
                {
                    this.NotifyFinished();
                    hasPendingWork = m_workerController.CompleteWork();
                }
            }
        }
Example #29
0
        private void TestBulletPoints(IList <string> bulletPoints)
        {
            var jobAd = CreateJobAd(bulletPoints);

            Search(Keywords);
            var node = GetResult(jobAd.Id);

            node = node.SelectSingleNode(".//ul[@class='bulletpoints']");
            Assert.IsNotNull(node);
            var nodes = node.SelectNodes("./li");

            if (bulletPoints.IsNullOrEmpty())
            {
                Assert.IsTrue(nodes.IsNullOrEmpty());
            }
            else
            {
                Assert.AreEqual(bulletPoints.Count, nodes.Count);
                for (var index = 0; index < nodes.Count; ++index)
                {
                    Assert.AreEqual(bulletPoints[index], nodes[index].InnerText);
                }
            }

            var model = ApiSearch(Keywords);

            Assert.AreEqual(1, model.JobAds.Count);
            Assert.IsTrue(bulletPoints.NullableSequenceEqual(model.JobAds[0].BulletPoints));
        }
        /// <summary>
        /// Cryptoiq Downloader Toolbox Project For LEAN Algorithmic Trading Engine.
        /// </summary>
        public static void CryptoiqDownloader(IList <string> tickers, string exchange, DateTime startDate, DateTime endDate)
        {
            if (exchange.IsNullOrEmpty() || tickers.IsNullOrEmpty())
            {
                Console.WriteLine("CryptoiqDownloader ERROR: '--exchange=' or '--tickers=' parameter is missing");
                Environment.Exit(1);
            }

            try
            {
                // Load settings from config.json
                var dataDirectory = Config.Get("data-directory", "../../../Data");
                //todo: will download any exchange but always save as gdax
                // Create an instance of the downloader
                const string market     = Market.GDAX;
                var          downloader = new CryptoiqDownloader(exchange);

                foreach (var ticker in tickers)
                {
                    // Download the data
                    var symbolObject = Symbol.Create(ticker, SecurityType.Crypto, market);
                    var data         = downloader.Get(symbolObject, Resolution.Tick, startDate, endDate);

                    // Save the data
                    var writer = new LeanDataWriter(Resolution.Tick, symbolObject, dataDirectory, TickType.Quote);
                    writer.Write(data);
                }
            }
            catch (Exception err)
            {
                Log.Error(err);
            }
        }
Example #31
0
        public async Task <AccessTokenResponse> GenerateEncodedToken(User user, OAuth oAuth, IList <string> roles = null)
        {
            string id       = user.Id;
            string userName = user.UserName;
            string provider = oAuth.Provider.ToString();
            string picture  = oAuth.PictureUrl;
            string name     = oAuth.GivenName;

            var identity = GenerateClaimsIdentity(id, userName);
            var claims   = new[]
            {
                new Claim(JwtRegisteredClaimNames.Sub, userName),
                new Claim("provider", provider),
                new Claim("picture", picture),
                new Claim("name", name),
                new Claim("roles", roles.IsNullOrEmpty() ? "" : String.Join(",", roles)),
                new Claim(JwtRegisteredClaimNames.Jti, await _jwtOptions.JtiGenerator()),
                new Claim(JwtRegisteredClaimNames.Iat, ToUnixEpochDate(_jwtOptions.IssuedAt).ToString(), ClaimValueTypes.Integer64),
                identity.FindFirst(Helpers.Constants.Strings.JwtClaimIdentifiers.Rol),
                identity.FindFirst(Helpers.Constants.Strings.JwtClaimIdentifiers.Id)
            };

            // Create the JWT security token and encode it.
            var jwt = new JwtSecurityToken(
                _jwtOptions.Issuer,
                _jwtOptions.Audience,
                claims,
                _jwtOptions.NotBefore,
                _jwtOptions.Expiration,
                _jwtOptions.SigningCredentials);

            return(new AccessTokenResponse(_jwtTokenHandler.WriteToken(jwt), (int)_jwtOptions.ValidFor.TotalSeconds));
        }
        protected async Task GetTracksAsync(IList <string> artists, IList <string> genres, IList <AlbumViewModel> albumViewModels, TrackOrder trackOrder)
        {
            IList <Track> tracks = null;

            if (albumViewModels != null && albumViewModels.Count > 0)
            {
                // First, check Albums. They topmost have priority.
                tracks = await this.trackRepository.GetAlbumTracksAsync(albumViewModels.Select(x => x.AlbumKey).ToList());
            }
            else if (!artists.IsNullOrEmpty())
            {
                // Artists and Genres have the same priority
                tracks = await this.trackRepository.GetArtistTracksAsync(artists.Select(x => x.Replace(ResourceUtils.GetString("Language_Unknown_Artist"), string.Empty)).ToList());
            }
            else if (!genres.IsNullOrEmpty())
            {
                // Artists and Genres have the same priority
                tracks = await this.trackRepository.GetGenreTracksAsync(genres.Select(x => x.Replace(ResourceUtils.GetString("Language_Unknown_Genre"), string.Empty)).ToList());
            }
            else
            {
                tracks = await queuedTrackRepository.GetSavedQueuedTracksAsync();

                if (tracks.Count == 0)
                {
                    // Tracks have lowest priority
                    tracks = await this.trackRepository.GetTracksAsync();
                }
            }

            await this.GetTracksCommonAsync(await this.container.ResolveTrackViewModelsAsync(tracks), trackOrder);
        }
Example #33
0
        /// <summary>
        /// Sends request to Google Drive API, downloads file and reads it.
        /// </summary>
        /// <param name="storageName">Storage name on Google Drive with Things names.</param>
        /// <returns>Processed collection of Things names as strings.</returns>
        public IReadOnlyList <string> ReadThingNames(string storageName)
        {
            if (string.IsNullOrEmpty(storageName))
            {
                return(new List <string>());
            }

            // Get info from API, download file and read it.
            IList <GoogleDriveData.File> files = ListFiles(new GoogleDriveFilesListOptionalParams
            {
                Q = $"name contains '{storageName}'"
            }).Files;

            if (!files.IsNullOrEmpty())
            {
                foreach (GoogleDriveData.File file in files)
                {
                    if (string.Equals(storageName, file.Name,
                                      StringComparison.InvariantCultureIgnoreCase))
                    {
                        return(DownloadAndReadFile(storageName, file.Id));
                    }
                }
            }
            else
            {
                _logger.Info($"No files found. Tried to find \"{storageName}\".");
            }

            return(new List <string>());
        }
        private bool AreAeTitlesValid(string source, IList <ClaraApplicationEntity> aeTitles, bool readAeTitlesFromCrd)
        {
            bool valid = true;

            if (!readAeTitlesFromCrd && aeTitles.IsNullOrEmpty())
            {
                _logger.Log(LogLevel.Error, "No AE Titles defined in {0}.", source);
                valid = false;
                return(valid);
            }
            else if (readAeTitlesFromCrd)
            {
                aeTitles.Clear();
                _logger.Log(LogLevel.Information, "Local AE Titles will be read from Kubernetes Custom Resource.");
            }

            foreach (var app in aeTitles)
            {
                valid &= IsClaraAeTitleValid(aeTitles, source, app);
                if (!valid)
                {
                    break;
                }
            }
            return(valid);
        }
Example #35
0
        public IDictionary <string, bool> CheckTableSourcesExist(params string[] tableSourcesNames)
        {
            DatabaseInfo dbInfo = DatabaseServices.ObjectFactory.CreateLocalDatabaseInfo() as DatabaseInfo;

            if (dbInfo == null)
            {
                return(null);
            }

            HashSet <string> tableSourcesFound    = new HashSet <string>();
            IList <string>   tableSourceNamesList = tableSourcesNames.ToList();

            if (tableSourceNamesList.IsNullOrEmpty())
            {
                return(null);
            }

            using (IDbConnection conn = DatabaseServices.TransactionService.CreateConnection()) {
                string tableCondition;
                string paramPrefix = DatabaseServices.ExecutionService.ParameterPrefix;
                if (tableSourceNamesList.Count == 1)
                {
                    tableCondition = "=" + paramPrefix + "tablename";
                }
                else
                {
                    tableCondition = " IN ('" + tableSourceNamesList.StrCat("','").ToUpper() + "')";
                }
                string sql = string.Format(@"(SELECT TABLE_NAME 
                                              FROM {0}.INFORMATION_SCHEMA.TABLES 
                                              WHERE TABLE_NAME {1})
                                             UNION
                                             (SELECT TABLE_NAME 
                                              FROM {0}.INFORMATION_SCHEMA.VIEWS
                                              WHERE TABLE_NAME {1})", DMLIdentifiers.EscapeIdentifierInner(dbInfo.Catalog), tableCondition);

                using (IDbCommand cmd = DatabaseServices.ExecutionService.CreateCommand(conn, sql)) {
                    if (tableSourceNamesList.Count == 1)
                    {
                        DatabaseServices.ExecutionService.CreateParameter(cmd,
                                                                          paramPrefix + "tablename", DbType.String, tableSourceNamesList.First().ToUpper());
                    }
                    cmd.CommandTimeout = QueryTimeout;
                    using (IDataReader reader = DatabaseServices.ExecutionService.ExecuteReader(cmd)) {
                        while (reader.Read())
                        {
                            tableSourcesFound.Add(Convert.ToString(reader["TABLE_NAME"]).ToUpper());
                        }
                    }
                }
            }

            IDictionary <string, bool> result = new Dictionary <string, bool>();

            foreach (var tableSource in tableSourceNamesList)
            {
                result.Add(tableSource, tableSourcesFound.Contains(tableSource.ToUpper()));
            }
            return(result);
        }
Example #36
0
        protected async Task GetTracksAsync(IList <string> artists, IList <string> genres, IList <AlbumViewModel> albumViewModels, TrackOrder trackOrder)
        {
            IList <Track> tracks = null;

            if (albumViewModels != null && albumViewModels.Count > 0)
            {
                // First, check Albums. They topmost have priority.
                tracks = await this.trackRepository.GetAlbumTracksAsync(albumViewModels.Select(x => x.AlbumKey).ToList());
            }
            else if (!artists.IsNullOrEmpty())
            {
                // Artists and Genres have the same priority
                tracks = await this.trackRepository.GetArtistTracksAsync(artists);
            }
            else if (!genres.IsNullOrEmpty())
            {
                // Artists and Genres have the same priority
                tracks = await this.trackRepository.GetGenreTracksAsync(genres);
            }
            else
            {
                // Tracks have lowest priority
                tracks = await this.trackRepository.GetTracksAsync();
            }

            await this.GetTracksCommonAsync(await this.container.ResolveTrackViewModelsAsync(tracks), trackOrder);
        }
        /// <summary>
        /// Checks if file with specified name exists on Google Drive and in this regard decides to
        /// upload or update results which saved in local file.
        /// </summary>
        /// <param name="path">Local file path to upload.</param>
        /// <param name="storageName">Local filename to save on Google Drive.</param>
        /// <returns><c>true</c> if procedure was successful, <c>false</c> otherwise.</returns>
        private bool ReadFileAndUploadOrUpdate(string path, string storageName)
        {
            if (string.IsNullOrEmpty(path) || string.IsNullOrEmpty(storageName))
            {
                return(false);
            }

            String storageNameWithoutExtension = Path.GetFileNameWithoutExtension(storageName);
            IList <GoogleDriveData.File> files = ListFiles(new GoogleDriveFilesListOptionalParams
            {
                Q = $"name contains '{storageNameWithoutExtension}'"
            }).Files;

            bool result = false;

            if (!files.IsNullOrEmpty())
            {
                foreach (GoogleDriveData.File file in files)
                {
                    if (storageNameWithoutExtension == file.Name)
                    {
                        // Need full filename because we will read file and upload it.
                        result = UpdateFile(file.Id, path);
                        break;
                    }
                }
            }
            else
            {
                result = UploadFile(path, storageName);
            }
            return(result);
        }
Example #38
0
        public async Task <List <TeamAgentModel> > GetAgentsInTeams(IList <string> teamIds)
        {
            LoggingService.Trace("Querying TeamAgentsDatabase.GetAgentsInTeams");

            if (teamIds.IsNullOrEmpty())
            {
                return(new List <TeamAgentModel>());
            }

            var databaseConnection = await GetDatabaseConnection <TeamAgentDatabaseModel>().ConfigureAwait(false);

            var dbLock = databaseConnection.GetConnection().Lock();

            try
            {
                var teamAgentDatabaseModels = databaseConnection.GetConnection().GetAllWithChildren <TeamAgentDatabaseModel>();

                return(teamAgentDatabaseModels?
                       .Where(x => teamIds.Any(id => x.Teams.Any(t => t.TeamId.Equals(id))))
                       .Select(x => TeamAgentDatabaseModel.ToTeamAgentModel(x))
                       .ToList() ?? new List <TeamAgentModel>());
            }
            catch (Exception e)
            {
                LoggingService.Error(e, "Error Querying TeamAgentsDatabase.GetAgentsInTeams");

                return(new List <TeamAgentModel>());
            }
            finally
            {
                dbLock.Dispose();
            }
        }
Example #39
0
 /// <summary>
 ///     Creates a series of instances of <see cref="IBindingBuilder" />.
 /// </summary>
 /// <param name="target">The specified binding target.</param>
 /// <param name="bindingExpression">The specified binding expression.</param>
 /// <param name="sources">The specified sources, if any.</param>
 /// <returns>An instance of <see cref="IBindingBuilder" />.</returns>
 public IList <IBindingBuilder> CreateBuildersFromString(object target, string bindingExpression, IList <object> sources = null)
 {
     Should.NotBeNull(target, "target");
     Should.NotBeNullOrWhitespace(bindingExpression, "bindingExpression");
     try
     {
         var parserResult = Parser.Parse(bindingExpression, sources.IsNullOrEmpty()
             ? DataContext.Empty
             : new DataContext(1)
         {
             { BindingBuilderConstants.RawSources, sources }
         });
         var result = new IBindingBuilder[parserResult.Count];
         for (int index = 0; index < parserResult.Count; index++)
         {
             var builder = new BindingBuilder(parserResult[index]);
             builder.Add(BindingBuilderConstants.Target, target);
             builder.Add(BindingBuilderConstants.BuildDelegate, _buildDelegate);
             result[index] = builder;
         }
         return(result);
     }
     catch (Exception exception)
     {
         exception = new InvalidOperationException(exception.Message, exception);
         var builder = new BindingBuilder();
         builder.Add(BindingBuilderConstants.Target, target);
         builder.Add(ProviderConstant, this);
         builder.Add(ExceptionConstant, exception);
         builder.Add(BindingBuilderConstants.BuildDelegate, CreateInvalidaDataBindingDelegate);
         return(new IBindingBuilder[] { builder });
     }
 }
Example #40
0
    private void PopulateListObject <T>(IList <T> list, GameObject gameObjectList)
    {
        while (gameObjectList.transform.childCount > 1)
        {
            DestroyImmediate(gameObjectList.transform.GetChild(1).gameObject);
        }

        GameObject element = gameObjectList.transform.GetChild(0).gameObject;

        if (list.IsNullOrEmpty())
        {
            SetText("", element);
            return;
        }

        SetText(list[0], element);

        for (int i = 1; i < list.Count; i++)
        {
            GameObject instance = Instantiate(element);
            instance.transform.SetParent(gameObjectList.transform);
            instance.transform.localScale = Vector3.one;
            SetText(list[i], instance);
        }
    }
Example #41
0
 protected void WriteArray(JsonWriter writer, IList list)
 {
     writer.WriteStartArray();
     if (list.IsNullOrEmpty())
     {
         writer.WriteEndArray();
         return;
     }
     for (int i = 0; i < list.Count; i++)
     {
         var value = list[i];
         if (value is INamedList)
         {
             WriteNamedList(writer, value as INamedList);
         }
         else if (value is IList)
         {
             WriteArray(writer, value as IList);
         }
         else
         {
             writer.WriteValue(value);
         }
     }
     writer.WriteEndArray();
 }
Example #42
0
        public bool Save(object fieldValue, ConfigNode node, OperationContext context)
        {
            node.ThrowIfNullArgument(nameof(node));
            fieldValue.EnsureArgumentType(listType, nameof(fieldValue));

            IList list = (IList)fieldValue;

            if (list.IsNullOrEmpty())
            {
                return(false);
            }

            foreach (object value in list)
            {
                if (value.IsNull())
                {
                    continue;
                }
                string formattedValue = parser.Format(value);
                if (formattedValue.IsNotNull())
                {
                    node.AddValue(name, formattedValue);
                }
            }

            return(true);
        }
Example #43
0
 public LoggingInfo(IList list)
 {
     if (list.IsNullOrEmpty()) return;
     Levels = list.Cast<string>().ToList();
 }
        /// <summary>
        /// Adds the metric current metric read data.
        /// </summary>
        /// <param name="process">The process.</param>
        /// <param name="metric">The metric.</param>
        /// <param name="groupingFieldsList">The grouping fields list.</param>
        /// <returns>System.String.</returns>
        private static string AddMetricCurrentMetricReadData(IProcessDefinition process, IMetricDefinition metric, IList<string> groupingFieldsList)
        {
            string readDataFirstInfoObject = null;
            var columnType = GetMetricOrderByFieldType(process, metric, groupingFieldsList);

            Action getReadDataFirstInfoObject = () =>
            {
                if (columnType.HasValue && (columnType.Value == ColumnTypes.Approval || columnType.Value == ColumnTypes.Boolean))
                {
                    readDataFirstInfoObject = "item.Value.First()";
                    return;
                }

                if (!groupingFieldsList.Any())
                {
                    return;
                }

                if (metric.MetricFieldSystemName == metric.OrderByMetricField || (metric.SummaryType == SummaryTypes.Count && metric.OrderByMetricField == string.Empty))
                {
                    readDataFirstInfoObject = "item.Key";
                    return;
                }

                if (!string.IsNullOrWhiteSpace(metric.OrderByMetricField))
                {
                    readDataFirstInfoObject = "item.Source.First()";
                    return;
                }

                readDataFirstInfoObject = "item.ToList().First()";
            };

            getReadDataFirstInfoObject();

            string metricinfoClass;

            if (columnType.HasValue && (columnType.Value == ColumnTypes.Approval || columnType.Value == ColumnTypes.Boolean))
            {
                metricinfoClass = "Value.First()";
            }
            else
                if (!string.IsNullOrWhiteSpace(metric.OrderByMetricField) && metric.MetricFieldSystemName != metric.OrderByMetricField)
                {
                    metricinfoClass = "Source.First()";
                }
                else
                {
                    metricinfoClass = "Key";
                }

            var groupByFieldValuesList = new List<string>();

            foreach (var groupedField in groupingFieldsList)
            {
                var field = GetField(process, groupedField);
                var groupFieldPath = groupedField;
                if (!string.IsNullOrWhiteSpace(metric.OrderByMetricField) && metric.MetricFieldSystemName != metric.OrderByMetricField)
                {
                    groupFieldPath = field.Key;
                }

                if (groupedField == field.Value.SystemName)
                {
                    var variable = string.Format("var {0}_value = ", groupedField);

                    switch (field.Value.ColumnType)
                    {
                        case ColumnTypes.DateTime:
                            variable += string.Format(@"dtConverter.Convert({0}.{1}, null, ""{2}"", null);"
                                                      , readDataFirstInfoObject
                                                      , field.Key
                                                      , field.Value.DateTimeFormat);
                            break;
                        case ColumnTypes.Approval:
                            if (metric.OrderByMetricField == field.Value.SystemName)
                            {
                                variable += "item.Key;";
                            }
                            else
                            {
                                variable += string.Format(@"approvalConvertMethod.Invoke(approvalInstance, new object[] {{ item.{0}.{1}, null, null, null }});", metricinfoClass, groupFieldPath);
                            }
                            break;
                        case ColumnTypes.Boolean:
                            var result = field.Value.NameValuesList["IsSwitchToggle"];
                            if (Convert.ToBoolean(result))
                            {
                                if (metric.OrderByMetricField == field.Value.SystemName)
                                {
                                    variable += "item.Key;";
                                }
                                else
                                {
                                    var converterParameter = string.Format("{0}~{1}~{2}",
                                  ((string)field.Value.NameValuesList["UndefinedLabel"]).Replace("\"", null),
                                  ((string)field.Value.NameValuesList["FalseLabel"]).Replace("\"", null),
                                  ((string)field.Value.NameValuesList["TrueLabel"]).Replace("\"", null))
                          .ToLiteral();
                                    variable += string.Format(@"boolConverter.Convert(item.{0}.{1}, null, {2}, CultureInfo.InvariantCulture);", metricinfoClass, groupFieldPath, converterParameter);
                                }
                            }
                            else
                            {
                                goto default;
                            }
                            break;

                        default:
                            variable += string.Format("item.{0}.{1};", metricinfoClass, groupFieldPath);
                            break;
                    }

                    variable += Environment.NewLine;

                    groupByFieldValuesList.Add(variable);
                }
            }



            return string.Format(@"
                var currentMetric = new {0}Metric_{1}();

                {2}

                currentMetric.ReadData(Convert.ToDecimal({3}) {4}{5});

                Add(currentMetric);"
                    , process.Name
                    , metric.Guid.ToString().Replace("-", string.Empty)
                    , string.Join(string.Empty, groupByFieldValuesList)
                    , metric.MetricFieldSystemName == metric.OrderByMetricField || readDataFirstInfoObject == "item.Key" ? "item.Value" : "result"
                    , readDataFirstInfoObject != null ? ", " + readDataFirstInfoObject : null
                    , groupingFieldsList.IsNullOrEmpty() ? null : ", " + string.Join(",", groupingFieldsList.Select(f => string.Format("{0}_value", f))));
        }
        /// <summary>
        /// Synchronize multiple types with a single roundtrip
        /// </summary>
        /// <param name="typeIDs">TypeIds to sync</param>
        /// <param name="maxAgeInSeconds">View age</param>
        /// <returns>A list of type ids actually synchronized</returns>
        public IAsyncOperation<IList<string>> SynchronizeTypesAsync(IList<string> typeIDs, int maxAgeInSeconds)
        {
            if (typeIDs.IsNullOrEmpty())
            {
                throw new ArgumentException("typeIDs");
            }
            if (maxAgeInSeconds < 0)
            {
                throw new ArgumentException("maxAgeInSeconds");
            }

            return AsyncInfo.Run<IList<string>>(async cancelToken =>
            {
                IList<SynchronizedType> sTypes = await this.GetMultipleAsync(typeIDs);
                SynchronizedViewSynchronizer synchronizer = new SynchronizedViewSynchronizer(m_recordStore.Record, maxAgeInSeconds);
                synchronizer.MaxAgeInSeconds = maxAgeInSeconds;

                IList<ISynchronizedView> synchronized = await synchronizer.SynchronizeAsync(sTypes.Cast<ISynchronizedView>().ToList());
                if (synchronized.IsNullOrEmpty())
                {
                    return null;
                }
                
                string[] syncedIDs = (from view in synchronized
                        select ((SynchronizedType) view).TypeID).ToArray();

                return syncedIDs;
            });
        }
Example #46
0
        static bool Login(IList<string> unparsed)
        {
            bool failed = true;
            ushort tries = 0;

            while (failed && tries < 3)
            {
                string email = command_email;
                if (false == unparsed.IsNullOrEmpty())
                {
                    email = unparsed[0];
                }
                if (prompt_ok && email.IsNullOrWhiteSpace())
                {
                    Console.Write(Resources.Vmc_EmailPrompt_Text);
                    email = Console.ReadLine();
                }

                string password = command_password;
                if (prompt_ok && password.IsNullOrWhiteSpace())
                {
                    Console.Write(Resources.Vmc_PasswordPrompt_Text);
                    password = readPassword();
                }

                Console.WriteLine();

                if (email.IsNullOrWhiteSpace())
                {
                    Console.Error.WriteLine(Resources.Vmc_NeedEmailPrompt_Text);
                    return false;
                }

                if (password.IsNullOrWhiteSpace())
                {
                    Console.Error.WriteLine(Resources.Vmc_NeedPasswordPrompt_Text);
                    return false;
                }

                IVcapClient vc = new VcapClient();
                try
                {
                    VcapClientResult rslt = vc.Login(email, password);
                    if (rslt.Success)
                    {
                        Console.WriteLine(String.Format(Resources.Vmc_LoginSuccess_Fmt, vc.CurrentUri));
                        failed = false;
                    }
                    else
                    {
                        Console.Error.WriteLine(String.Format(Resources.Vmc_LoginFail_Fmt, vc.CurrentUri));
                    }
                }
                catch (Exception e)
                {
                    Console.Error.WriteLine(String.Format(Resources.Vmc_LoginError_Fmt, vc.CurrentUri, e.Message));
                }

                ++tries;
            }

            return false == failed;
        }
        internal ItemQuery CreateRefreshQueryForKeys(IList<ItemKey> keys, IList<string> typeVersions)
        {
            ItemQuery query = ItemQuery.QueryForKeys(keys);
            query.View.SetSections(SectionsToFetch);
            if (!typeVersions.IsNullOrEmpty())
            {
                query.View.TypeVersions.AddRange(typeVersions);
            }

            return query;
        }
        async Task UpdateViews(IList<ISynchronizedView> views, IList<ItemQueryResult> queryResults)
        {
            int iResult = 0;
            for (int i = 0, count = views.Count; i < count; ++i)
            {
                ItemQuery query = m_syncQueries[i];
                if (query != null)
                {
                    ItemQueryResult queryResult = null;
                    if (!queryResults.IsNullOrEmpty())
                    {
                        queryResult = queryResults[iResult++];
                    }

                    await this.UpdateKeys(views[i], queryResult);
                }                
            }
        }
Example #49
0
 protected void WriteArray(JsonWriter writer, IList list)
 {
     writer.WriteStartArray();
     if (list.IsNullOrEmpty())
     {
         writer.WriteEndArray();
         return;
     }
     for (int i = 0; i < list.Count; i++)
     {
         var value = list[i];
         if (value is INamedList)
             WriteNamedList(writer, value as INamedList);
         else if (value is IList)
             WriteArray(writer, value as IList);
         else
             writer.WriteValue(value);
     }
     writer.WriteEndArray();
 }
Example #50
0
        public IList<EGPSCurrentInfo> GetCurrentInfoList(IList<Guid> ltVehicleCode)
        {   
            //Query query = new Query(typeof(EGPSCurrentInfo));
            //query.Expression = Expression.CreateExpression("VehicleCode", PolynaryOperatorType.In, ltVehicleCode);
            //using (IRepository repository = SessionManager.CreateRepository(typeof(EGPSCurrentInfo)))
            //{
            //    return repository.List<EGPSCurrentInfo>(query);
            //}

            //优化
            if (ltVehicleCode.IsNullOrEmpty())
                return null;

            List<EGPSCurrentInfo> list = null;
            string sqlText = string.Format(@"SELECT ID,GPSCode,Longitude,Latitude,Speed,Direction,ReportTime,OilState,ACCState,Mileage,PowerState,
StarkMileage,AntennaState,OilBearing,DoorStatus,PhotoPath,VehicleCode,PlunderState,Detector1,Detector2,Detector3,Detector4,CoolerStatus
 FROM gps_currentinfo WHERE VehicleCode in ('{0}')", ltVehicleCode.JoinToString<Guid>("','"));

            using (MySqlDataReader sdr = MySqlDB.GetDataReader(CommandType.Text, sqlText))
            {
                if (sdr != null)
                {
                    list = new List<EGPSCurrentInfo>();
                    while (sdr.Read())
                    {
                        list.Add(new EGPSCurrentInfo
                        {
                            ID = sdr.GetGuid(0),
                            GPSCode = sdr.GetString(1),
                            Longitude = sdr.GetDouble(2),
                            Latitude = sdr.GetDouble(3),
                            Speed = sdr.GetDouble(4),
                            Direction = sdr.GetDouble(5),
                            ReportTime = sdr.GetDateTime(6),
                            OilState = sdr.GetInt(7),
                            ACCState = sdr.GetInt(8),
                            Mileage = sdr.GetDouble(9),
                            PowerState = sdr.GetInt(10),
                            StarkMileage = sdr.GetDouble(11),
                            AntennaState = sdr.GetInt(12),
                            OilBearing = sdr.GetDoubleExt(13),
                            DoorStatus = sdr.GetInt(14),
                            PhotoPath = sdr.GetStringExt(15),
                            VehicleCode = sdr.GetGuidExt(16),
                            PlunderState = sdr.GetInt16(17),
                            Detector1 = sdr.GetFloatNull(18),
                            Detector2 = sdr.GetFloatNull(19),
                            Detector3 = sdr.GetFloatNull(20),
                            Detector4 = sdr.GetFloatNull(21),
                            CoolerStatus = sdr.GetInt(22)
                        });
                    }
                    sdr.Close();
                }
            }

            return list;
        }
        public IAsyncAction PutViewsAsync(IList<SynchronizedView> views)
        {
            if (views.IsNullOrEmpty())
            {
                throw new ArgumentException("views");
            }

            return AsyncInfo.Run(async cancelToken => 
            {
                foreach(SynchronizedView view in views)
                {
                    view.ValidateRequired("view");
                    await this.PutViewAsync(view, cancelToken);
                }
            });
        }
Example #52
0
        public async Task<IResult> DeleteCustomFieldsAsync(IList<CustomField> customFields)
        {
            IResult result = null;

            if (customFields.IsNullOrEmpty())
            {
                result = new ShopTimeResult()
                {
                    Error = new Error() { Message = "customFields can't be null or empty."}
                };
            }

            try
            {
                foreach (var customField in customFields)
                {
                    customField.IsDeleted = true;
                }

                await _customFieldRepo.UpdateAsync(customFields)
                    .Error(err =>
                    {
                        result = new ShopTimeResult() { Error = err};
                    })
                    .Success(() =>
                    {
                        result = new ShopTimeResult();
                    });

            }
            catch (Exception ex)
            {
                result = new ShopTimeResult()
                {
                    Error = new Error() { CodeNumber = 500, Message = ex.Message }
                };
            }

            return result;
        }
Example #53
0
        /// <summary>
        /// The get kpi gadget data.
        /// </summary>
        /// <param name="processName">
        /// The process name.
        /// </param>
        /// <param name="parameters">
        /// The parameters.
        /// </param>
        /// <returns>
        /// The <see cref="IList"/>.
        /// </returns>
        public IList<KpiItem> GetKpiGadgetData(string processName, IList<KpiParameters> parameters)
        {
            if (string.IsNullOrWhiteSpace(processName)) return null;
            if (parameters.IsNullOrEmpty()) return null;
            _selectedKPIList.Clear();
            if (parameters != null)
            {
                foreach (var parameter in parameters)
                {
                    var random = Guid.NewGuid();
                    var kpiinfo = this.DynamicTypeManager.GetGadgetAggregateInfo(processName, parameter.KpiGuid, random);

                    if (!IconList.Any())
                    {
                        var items = this.DynamicTypeManager.GetInfoList<IIcon>(Constants.IconProcessName, string.Empty, 0, int.MaxValue);
                        if (items != null)
                            IconList.AddRange(items);
                    }

                    var icon = IconList.FirstOrDefault(x => x.Id == kpiinfo.CurrentIconID);
                    var iconName = icon != null ? icon.name : kpiinfo.CurrentIconURL;

                    this._selectedKPIList.Add(new KpiItem(kpiinfo.Id, kpiinfo.Name, kpiinfo.Guid, kpiinfo.CurrentValue, iconName));
                }
            }

            return _selectedKPIList;
        }
Example #54
0
        private void PrepareGroups(IList<string> groupsNames)
        {
            var groupsDict = CreateProperties()
                .GroupBy(x => x.GroupName)
                .ToDictionary(x => x.Key);

            Groups = new List<GroupProperties>();
            if (groupsNames.IsNullOrEmpty())
            {
                foreach (var group in groupsDict)
                {
                    Groups.Add(new GroupProperties
                    {
                        GroupName = group.Key,
                        Properties = group.Value.ToList()
                    });
                }
            }
            else
            {
                foreach (var groupName in groupsNames)
                {
                    var trimedGroupName = groupName.TrimEnd('*');
                    if (!groupsDict.ContainsKey(trimedGroupName)) continue;

                    var group = groupsDict[trimedGroupName];

                    Groups.Add(new GroupProperties
                    {
                        GroupName = @group.Key,
                        Properties = @group.ToList(),
                        IsCollapsed = groupName.EndsWith("*")
                    });
                }
            }
        }
Example #55
0
        private Dictionary<EHisotryDataStoreTables, IList<Guid>> GroupByStoreTable(
            IList<EHistoryDataStoreConfig> ltTableConfig)
        {
            if (ltTableConfig.IsNullOrEmpty())
            {
                return null;
            }

            Dictionary<EHisotryDataStoreTables, IList<Guid>> dic = new Dictionary<EHisotryDataStoreTables, IList<Guid>>();            
            IList<Guid> ltVehicleCode;
            foreach (var item in ltTableConfig)
            {
                if (dic.ContainsKey(item.StoreTable))
                {
                    ltVehicleCode = dic[item.StoreTable];
                }
                else
                {
                    ltVehicleCode = new List<Guid>();
                    dic.Add(item.StoreTable, ltVehicleCode);
                }
                ltVehicleCode.Add(item.VehicleCode);
            }
            return dic;
        }
Example #56
0
        private bool CheckCommandCondition(IList<EGPSCurrentInfo> ltCurrent, CommandResultViewModel vm,
            EnumOilCommandType commandType)
        {
            if (ltCurrent.IsNullOrEmpty())
            {
                vm.Msg = "车辆已经离线,无法操作";
                vm.CommandResult = EnumCommandResult.MisMatchCondition;
                return false;
            }
            TimeSpan timeSpan = DateTime.Now.Subtract(ltCurrent[0].ReportTime);
            if (timeSpan.TotalMinutes > Param_OffLineTime)
            {
                vm.Msg = "车辆已经离线,无法操作";
                vm.CommandResult = EnumCommandResult.MisMatchCondition;
                return false;
            }
            if (commandType == EnumOilCommandType.BreakOil)
            {
                if (ltCurrent[0].OilState != 1)          //1 表示油电路正常
                {
                    vm.Msg = "车辆油电路已经断开";
                    vm.CommandResult = EnumCommandResult.MisMatchCondition;
                    return false;
                }
                if (ltCurrent[0].Speed >= 30)
                {
                    vm.Msg = "此操作在速度30公里/时才能操作";
                    vm.CommandResult = EnumCommandResult.MisMatchCondition;
                    return false;
                }
            }
            else if (commandType == EnumOilCommandType.Support)
            {
                if (ltCurrent[0].OilState == 1)          //1 表示油电路正常
                {
                    vm.Msg = "车辆油电路已正常";
                    vm.CommandResult = EnumCommandResult.MisMatchCondition;
                    return false;
                }
            }

            return true;
        }
Example #57
0
 /// <summary>
 /// 获取所有准确历史数据时只获取IsGPSOverFlow=0;
 /// </summary>
 private IList<EGPSHistoryInfo> GetGPSHistoryInfoList(EHisotryDataStoreTables table , IList<Guid> ltVehicleCode, DateTime beginTime, DateTime endTime)
 {
     if (table == null || ltVehicleCode.IsNullOrEmpty())
         return null;
     string codes = string.Join("','", ltVehicleCode.Select(s => s.ToString()).ToArray());
     codes = " ('" + codes + "') ";
     string sqlText = string.Format("select * from {0} where VehicleCode in {1} and reporttime between '{2}' and '{3}' and IsGPSOverFlow=0  order by ReportTime asc ",
         table.TableName, codes, beginTime, endTime);
     return List(table.SelectConnStr, sqlText);
 }
        /// <summary>
        /// Receives messages from source queue and puts them into destination queues.
        /// </summary>
        /// <param name="sourceQueue"></param>
        /// <param name="inboundMessages"></param>
        private void RelayMessagesInternal(CloudQueue sourceQueue, IList<CloudQueueMessage> inboundMessages)
        {
            if (inboundMessages.IsNullOrEmpty())
                return;

            if (this.DestinationQueues.IsNullOrEmpty())
                throw new Exception("Cannot relay queue messages because destination queue(s) are not specified.");

            this.LogInformation("Received {0} messages from queue \"{1}\". Dispatching them to {2} destination queues.", inboundMessages.Count, sourceQueue.Name, this.DestinationQueues.Count);
            //messages.ForEach(msg => this.LogInformation("Received message at {0}:\r\n\"{1}\"\r\n", DateTimeOffset.Now, msg.AsString));

            var stopWatch = new Stopwatch();
            stopWatch.Start();

            inboundMessages = this.TransformInboundMessages(inboundMessages, stopWatch);

            this.ForwardMessages(inboundMessages.Count, inboundMessages, stopWatch);

            this.DeleteSourceMessages(sourceQueue, inboundMessages, stopWatch);
        }
Example #59
0
 /// <summary>
 /// Constructs a new course for this fleet from the <c>vectorCourse</c> provided.
 /// </summary>
 /// <param name="vectorCourse">The vector course.</param>
 private void ConstructApCourse(IList<Vector3> vectorCourse) {
     if (vectorCourse.IsNullOrEmpty()) {
         D.Error("{0}'s vectorCourse contains no course to {1}.", DebugName, ApTarget.DebugName);
         return;
     }
     ApCourse.Clear();
     int destinationIndex = vectorCourse.Count - 1;  // no point adding StationaryLocation for Destination as it gets immediately replaced
     for (int i = 0; i < destinationIndex; i++) {
         ApCourse.Add(new StationaryLocation(vectorCourse[i]));
     }
     ApCourse.Add(ApTarget); // places it at course[destinationIndex]
     HandleApCourseChanged();
 }