/// <summary> /// Método de pesquisa de estrelas pela distância. /// </summary> /// <param name="min"> Distância mínima. </param> /// <param name="max"> Distância máxima. </param> /// <param name="isAscending"> Ordem de ordenação. </param> /// <param name="fields"> Campo da estrela. </param> public void SearchByDist(double?min, double?max, bool isAscending, StarFields fields) { Facade.starList = filterByDyst; CheckField(fields); SecondField(fields); Console.WriteLine("Filter by distance."); facade.StarSortDyst(min, max, isAscending, filterByDyst, orderByFunc, secondOrderByFunc); }
/// <summary> /// Método de pesquisa de estrelas pela quantidade de planetas. /// </summary> /// <param name="min"> Número mínimo de planetas. </param> /// <param name="max"> Número máximo de planetas. </param> /// <param name="isAscending"> Ordem de ordenação. </param> /// <param name="fields"> Campo da estrela. </param> public void SearchByPlCount(int?min, int?max, bool isAscending, StarFields fields) { Facade.starList = filterByPlCount; CheckField(fields); SecondField(fields); Console.WriteLine("Filter by planet count."); facade.StarSortPlCount(min, max, isAscending, filterByPlCount, orderByFunc, secondOrderByFunc); }
/// <summary> /// Método de pesquisa de estrelas pela velocidade de rotação. /// </summary> /// <param name="min"> Velocidade mínima. </param> /// <param name="max"> Velocidade máxima. </param> /// <param name="isAscending"> Ordem de ordenação. </param> /// <param name="fields"> Campo da estrela. </param> public void SearchByVsin(double?min, double?max, bool isAscending, StarFields fields) { Facade.starList = filterByVsin; CheckField(fields); SecondField(fields); Console.WriteLine("Filter by rotation velocity."); facade.StarSortVsin(min, max, isAscending, filterByVsin, orderByFunc, secondOrderByFunc); }
/// <summary> /// Método de pesquisa de estrelas pelo período de rotação. /// </summary> /// <param name="min"> Período de rotação mínimo. </param> /// <param name="max"> Período do rotação máximo. </param> /// <param name="isAscending"> Ordem de ordenação. </param> /// <param name="fields"> Campo da estrela. </param> public void SearchByRotp(double?min, double?max, bool isAscending, StarFields fields) { Facade.starList = filterByRotp; CheckField(fields); SecondField(fields); Console.WriteLine("Filter by rotation period."); facade.StarSortRtop(min, max, isAscending, filterByRotp, orderByFunc, secondOrderByFunc); }
/// <summary> /// Método de pesquisa de estrelas pela massa. /// </summary> /// <param name="min"> Massa mínima. </param> /// <param name="max"> Massa máxima. </param> /// <param name="isAscending"> Ordem de ordenação. </param> /// <param name="fields"> Campo da estrela. </param> public void SearchByMass(double?min, double?max, bool isAscending, StarFields fields) { Facade.starList = filterByMass; CheckField(fields); SecondField(fields); Console.WriteLine("Filter by mass"); facade.StarSortMass(min, max, isAscending, filterByMass, orderByFunc, secondOrderByFunc); }
/// <summary> /// Método de pesquisa de estrelas pela temperatura. /// </summary> /// <param name="min"> Temperatura mínima. </param> /// <param name="max"> Temperatura máxima. </param> /// <param name="isAscending"> Ordem de ordenação. </param> /// <param name="fields"> Campo da estrela. </param> public void SearchByTeff(double?min, double?max, bool isAscending, StarFields fields) { Facade.starList = filterByTaff; CheckField(fields); SecondField(fields); Console.WriteLine("Filter by temperature."); facade.StarSortTeff(min, max, isAscending, filterByTaff, orderByFunc, secondOrderByFunc); }
/// <summary> /// Método de pesquisa de estrelas pelo ano de descoberta. /// </summary> /// <param name="min"> Ano mínimo. </param> /// <param name="max"> Ano máximo. </param> /// <param name="isAscending"> Ordem de ordenação. </param> /// <param name="fields"> Campo da estrela. </param> public void SearchByDiscoveryYear(int?min, int?max, bool isAscending, StarFields fields) { Facade.starList = filterByDiscoveryYear; // obrigatório!!!! CheckField(fields); SecondField(fields); Console.WriteLine("Filter by discovery year."); facade.StarSortDiscYear(min, max, isAscending, filterByDiscoveryYear, orderByFunc, secondOrderByFunc); }
/// <summary> /// Método de pesquisa de estrelas pelo método de descoberta. /// </summary> /// <param name="input"> Input do user. </param> /// <param name="isAscending"> Ordem de ordenação. </param> /// <param name="fields"> Campo da estrela. </param> public void SearchByDiscoveryMethod(string input, bool isAscending, StarFields fields) { Facade.starList = filterByDiscoveryMethod; CheckField(fields); SecondField(fields); Console.WriteLine("Filter by discovery method."); facade.StarSortDiscMethod(input, isAscending, filterByDiscoveryMethod, orderByFunc, secondOrderByFunc); }
/// <summary> /// Método de pesquisa de estrelas pelo nome. /// </summary> /// <param name="input"> Input do user. </param> /// <param name="isAscending"> Ordem de ordenação. </param> /// <param name="fields"> Campo da estrela. </param> public void SearchByName(string input, bool isAscending, StarFields fields) { Facade.starList = filterByName; CheckField(fields); SecondField(fields); Console.WriteLine("Filter by name"); facade.StarSortName(input, isAscending, filterByName, orderByFunc, secondOrderByFunc); }
public string CreateSql(Process process) { var builder = new StringBuilder(); builder.AppendFormat("CREATE VIEW {0} AS\r\n", process.OutputConnection.Enclose(process.Star)); builder.AppendFormat("SELECT\r\n d.TflKey,\r\n d.TflBatchId,\r\n b.TflUpdate,\r\n"); var l = process.OutputConnection.L; var r = process.OutputConnection.R; var typedFields = new StarFields(process).TypedFields(); builder.AppendLine(string.Concat(new FieldSqlWriter(typedFields[StarFieldType.Master]).Alias(l, r).PrependEntityOutput(process.OutputConnection, "d").Prepend(" ").Write(",\r\n"), ",")); if (typedFields[StarFieldType.Foreign].Any()) { builder.AppendLine(string.Concat(new FieldSqlWriter(typedFields[StarFieldType.Foreign]).Alias(l, r).PrependEntityOutput(process.OutputConnection, "d").IsNull().ToAlias(l, r).Prepend(" ").Write(",\r\n"), ",")); } if (typedFields[StarFieldType.Other].Any()) { builder.AppendLine(string.Concat(new FieldSqlWriter(typedFields[StarFieldType.Other]).Alias(l, r).PrependEntityOutput(process.OutputConnection).IsNull().ToAlias(l, r).Prepend(" ").Write(",\r\n"), ",")); } builder.TrimEnd("\r\n,"); builder.AppendLine(); builder.AppendFormat("FROM {0} d\r\n", process.OutputConnection.Enclose(process.MasterEntity.OutputName())); builder.AppendFormat("INNER JOIN TflBatch b ON (d.TflBatchId = b.TflBatchId AND b.ProcessName = '{0}')\r\n", process.Name); foreach (var entity in process.Entities.Where(e => !e.IsMaster())) { builder.AppendFormat("LEFT OUTER JOIN {0} ON (", entity.OutputName()); foreach (var join in entity.RelationshipToMaster.First().Join.ToArray()) { builder.AppendFormat( "d.{0} = {1}.{2} AND ", process.OutputConnection.Enclose(join.LeftField.Alias), entity.OutputName(), process.OutputConnection.Enclose(join.RightField.Alias)); } builder.TrimEnd(" AND "); builder.AppendLine(")"); } builder.Append(";"); return(builder.ToString()); }
/// <summary> /// Verificar qual é o método de ordenação primário. /// </summary> /// <param name="fields"> Enum do critério de ordenação. </param> private void CheckField(StarFields fields) { if (fields == StarFields.HostName) { orderByFunc = item => item.Value.HostName.Length; } if (fields == StarFields.DiscoveryMethod) { orderByFunc = item => item.Value.DiscoveryMethod.Length; } if (fields == StarFields.Disc_Year) { orderByFunc = item => item.Value.Disc_Year; } if (fields == StarFields.St_Teff) { orderByFunc = item => item.Value.St_Teff; } if (fields == StarFields.St_Rad) { orderByFunc = item => item.Value.St_Rad; } if (fields == StarFields.St_Mass) { orderByFunc = item => item.Value.St_Mass; } if (fields == StarFields.St_Age) { orderByFunc = item => item.Value.St_Age; } if (fields == StarFields.St_Vsin) { orderByFunc = item => item.Value.St_Vsin; } if (fields == StarFields.St_Rotp) { orderByFunc = item => item.Value.St_Rotp; } if (fields == StarFields.Sy_Dist) { orderByFunc = item => item.Value.Sy_Dist; } if (fields == StarFields.St_PlCount) { orderByFunc = item => item.Value.St_PlCount; } }
public string CreateSql(Process process) { var builder = new StringBuilder(); builder.AppendFormat("CREATE VIEW {0} AS\r\n", process.OutputConnection.Enclose(process.Star)); builder.AppendFormat("SELECT\r\n d.TflKey,\r\n d.TflBatchId,\r\n b.TflUpdate,\r\n"); var l = process.OutputConnection.L; var r = process.OutputConnection.R; var typedFields = new StarFields(process).TypedFields(); builder.AppendLine(string.Concat(new FieldSqlWriter(typedFields[StarFieldType.Master]).Alias(l, r).PrependEntityOutput(process.OutputConnection, "d").Prepend(" ").Write(",\r\n"), ",")); if (typedFields[StarFieldType.Foreign].Any()) builder.AppendLine(string.Concat(new FieldSqlWriter(typedFields[StarFieldType.Foreign]).Alias(l, r).PrependEntityOutput(process.OutputConnection, "d").IsNull().ToAlias(l, r).Prepend(" ").Write(",\r\n"), ",")); if (typedFields[StarFieldType.Other].Any()) builder.AppendLine(string.Concat(new FieldSqlWriter(typedFields[StarFieldType.Other]).Alias(l, r).PrependEntityOutput(process.OutputConnection).IsNull().ToAlias(l, r).Prepend(" ").Write(",\r\n"), ",")); builder.TrimEnd("\r\n,"); builder.AppendLine(); builder.AppendFormat("FROM {0} d\r\n", process.OutputConnection.Enclose(process.MasterEntity.OutputName())); builder.AppendFormat("INNER JOIN TflBatch b ON (d.TflBatchId = b.TflBatchId AND b.ProcessName = '{0}')\r\n", process.Name); foreach (var entity in process.Entities.Where(e => !e.IsMaster())) { builder.AppendFormat("LEFT OUTER JOIN {0} ON (", entity.OutputName()); foreach (var join in entity.RelationshipToMaster.First().Join.ToArray()) { builder.AppendFormat( "d.{0} = {1}.{2} AND ", process.OutputConnection.Enclose(join.LeftField.Alias), entity.OutputName(), process.OutputConnection.Enclose(join.RightField.Alias)); } builder.TrimEnd(" AND "); builder.AppendLine(")"); } builder.Append(";"); return builder.ToString(); }