public void AddItem(string _name, string _info) { GameObject _obj = Utils.Spawn(pfLocale, rect); RouteUnit _route = _obj.GetComponent <RouteUnit>(); _route.Init(_name, _info); }
public string ToString(RouteUnit routeUnit) { String actualTableName = GetLogicAndActualTables(routeUnit)[identifier.GetValue().ToLower()]; actualTableName = null == actualTableName?identifier.GetValue().ToLower() : actualTableName; var quoteCharacterEnum = identifier.GetQuoteCharacter(); return($"{QuoteCharacter.Get(quoteCharacterEnum).GetStartDelimiter()}{actualTableName}{QuoteCharacter.Get(quoteCharacterEnum).GetEndDelimiter()}"); }
private void AppendInsertValue(RouteUnit routeUnit, StringBuilder stringBuilder) { foreach (var insertValue in InsertValues) { if (IsAppend(routeUnit, (ShardingInsertValue)insertValue)) { stringBuilder.Append(insertValue).Append(", "); } } }
private void CancelButtonInteraction(RouteUnit _unit, int count) { if (_unit.IsInUse) { routeCancelButtons [count].CancelRouteButton.interactable = false; } else { routeCancelButtons [count].CancelRouteButton.interactable = true; } }
public string ToString(RouteUnit routeUnit) { StringBuilder result = new StringBuilder(); AppendInsertValue(routeUnit, result); if (result.Length > 2) { result.Remove(result.Length - 2, 2); } return(result.ToString()); }
private IDictionary <string, string> GetLogicAndActualTables(RouteUnit routeUnit) { ICollection <string> tableNames = sqlCommandContext.GetTablesContext().GetTableNames(); IDictionary <string, string> result = new Dictionary <string, string>(tableNames.Count); foreach (var tableMapper in routeUnit.TableMappers) { result.Add(tableMapper.LogicName.ToLower(), tableMapper.ActualName); result.AddAll(shardingRule.GetLogicAndActualTablesFromBindingTable(routeUnit.DataSourceMapper.LogicName, tableMapper.LogicName, tableMapper.ActualName, tableNames)); } return(result); }
private bool IsInSameDataNode(ICollection <DataNode> dataNodes, RouteUnit routeUnit) { if (dataNodes.IsEmpty()) { return(true); } foreach (var dataNode in dataNodes) { if (routeUnit.FindTableMapper(dataNode.GetDataSourceName(), dataNode.GetTableName()) != null) { return(true); } } return(false); }
private ICollection <RouteUnit> GetAllRouteUnits(ShardingRule shardingRule, String logicTableName) { ICollection <RouteUnit> result = new LinkedList <RouteUnit>(); TableRule tableRule = shardingRule.GetTableRule(logicTableName); foreach (var dataNode in tableRule.ActualDataNodes) { RouteUnit routeUnit = new RouteUnit(new RouteMapper(dataNode.GetDataSourceName(), dataNode.GetDataSourceName()), new List <RouteMapper>() { new RouteMapper(logicTableName, dataNode.GetTableName()) }); result.Add(routeUnit); } return(result); }
public string ToString(RouteUnit routeUnit) { StringBuilder result = new StringBuilder(); var quoteCharacterEnum = _identifier.GetQuoteCharacter(); var quoteCharacter = QuoteCharacter.Get(quoteCharacterEnum); result.Append(quoteCharacter.GetStartDelimiter()).Append(_identifier.GetValue()); IDictionary <string, string> logicAndActualTables = GetLogicAndActualTables(routeUnit); if (logicAndActualTables.Any()) { result.Append("_").Append(logicAndActualTables.Values.FirstOrDefault()); } result.Append(quoteCharacter.GetEndDelimiter()); return(result.ToString()); }
private bool IsAppend(RouteUnit routeUnit, ShardingInsertValue insertValueToken) { if (insertValueToken.GetDataNodes().IsEmpty() || null == routeUnit) { return(true); } foreach (var dataNode in insertValueToken.GetDataNodes()) { if (routeUnit.FindTableMapper(dataNode.GetDataSourceName(), dataNode.GetTableName()) != null) { return(true); } } return(false); }
private void UpdateRouteCancelButtons() { if (routePanel.activeSelf) { routesCount = Route.Instance.Routes.Count; routeList = Route.Instance.Routes; for (int i = 0; i < routeCancelButtons.Length; i++) { if (routesCount > i) { unit = RouteDictionary.Instance.PanelRoutes [routeList [i]]; routeCancelButtons [i].gameObject.SetActive(true); routeCancelButtons [i].RouteExistNumber = routeList [i]; routeCancelButtons [i].SetTextRouteNumber(unit.RouteStringName); CancelButtonInteraction(unit, i); } else { routeCancelButtons [i].gameObject.SetActive(false); } } } }
private ParameterContext GetParameterContext(IParameterBuilder parameterBuilder, RouteResult routeResult, RouteUnit routeUnit) { if (parameterBuilder is StandardParameterBuilder || routeResult.GetOriginalDataNodes().IsEmpty() || parameterBuilder.GetParameterContext().IsEmpty()) { return(parameterBuilder.GetParameterContext()); } var result = new ParameterContext(); int count = 0; foreach (var originalDataNode in routeResult.GetOriginalDataNodes()) { if (IsInSameDataNode(originalDataNode, routeUnit)) { result.AddParameters(((GroupedParameterBuilder)parameterBuilder).GetParameterContext(count).GetDbParameters()); } count++; } return(result); }
public async Task <string> RecalculateLength(int routeId) { const string profile = "driving"; var list = new List <(double lat, double longt)>(); var searchModel = new SearchModel() { Filter = new BinaryFilterUnit() { OperatorType = OperatorType.Equals, Unit1 = new ParameterFilterUnit() { PropertyName = "Id" }, Unit2 = new ConstFilterUnit() { Value = routeId }, } }; var paging = await Get(1, 1, searchModel); if (paging.Total != 1) { throw new InvalidOperationException(); } var ra = await GetLink <RouteAttraction>(paging.Items, opt => paging.Items.Select(t => t.Id).Contains(opt.RouteId)); var withAttr = ra.OrderBy(o => o.Order).ThenBy(o => o.Id).Where(w => w.RouteId == routeId) .Select(s => s.AttractionId).ToList(); var additionDurationMinutes = 0; foreach (var attractionId in withAttr) { var attr = await _attractionService.Get(attractionId); list.Add((double.Parse(attr.Latitude, CultureInfo.InvariantCulture), double.Parse(attr.Longitude, CultureInfo.InvariantCulture))); additionDurationMinutes += attr.Duration; } RouteUnit resultUnit; string returnValue; if (withAttr.Count < 2) { resultUnit = new RouteUnit { Distance = 0, Duration = 0 }; returnValue = "No traveling"; } else { using var client = new HttpClient(new HttpClientHandler()) { BaseAddress = new Uri("http://router.project-osrm.org/") }; var points = list.Select(s => $"{s.longt.ToString(CultureInfo.InvariantCulture)},{s.lat.ToString(CultureInfo.InvariantCulture)}"); var res = await client.GetAsync( $"route/v1/{profile}/{string.Join(';', points)}?alternatives=false&steps=false&overview=false&annotations=false"); var resp = JsonConvert.DeserializeObject <RouteResponse>(await res.Content.ReadAsStringAsync()); if (resp.Code != "Ok") { throw new InvalidOperationException(resp.Code); } resultUnit = resp.Routes.FirstOrDefault(); if (resultUnit == null) { throw new InvalidOperationException(resp.Code); } returnValue = await res.Content.ReadAsStringAsync(); } var distance = Convert.ToInt32(resultUnit.Distance / 1000); using var cp = ContextProviderFactory.Create(); await cp.GetTable <Route>() .Where(w => w.Id == routeId) .UpdateAsync(route => new Route() { Length = distance, Time = (distance <= 2) ? Convert.ToInt32(resultUnit.Distance * 60 / 5000) + additionDurationMinutes : Convert.ToInt32(TimeSpan.FromSeconds(Convert.ToInt32(resultUnit.Duration)).TotalMinutes) + additionDurationMinutes }); return(returnValue); }
private void Start() { Unit = RouteDictionary.Instance.PanelRoutes [RouteNumber]; }
public RouteSqlBuilder(SqlRewriteContext context, RouteUnit routeUnit) : base(context) { _routeUnit = routeUnit; }