Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        /// <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);
        }
Exemplo n.º 7
0
        /// <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);
        }
Exemplo n.º 8
0
        /// <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);
        }
Exemplo n.º 9
0
        /// <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());
        }
Exemplo n.º 11
0
 /// <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();
        }