Esempio n. 1
0
        static void Main(string[] args)
        {
            // Aplicando o DIP, estamos invertendo a dependência, já que dentro de ClientBO
            // contém apenas uma abstração do comportamento de ClientRepository e estamos também
            // invertendo o controle, pois ele é  fornecido de fora da classe.
            ClientV2 ClientV2 = new ClientV2 {
                Name = "Zézinho"
            };

            ClientV2BO ClientV2Business = new ClientV2BO(new ClientV2Repository());

            ClientV2Business.SaveClientV2(ClientV2);
        }
Esempio n. 2
0
 public void SaveClientV2(ClientV2 ClientV2)
 {
     _ClientV2Repository.Save(ClientV2);
 }
Esempio n. 3
0
        public static void Main(string[] args)
        {
            var stopWatch = new Stopwatch();

            stopWatch.Start();

            var cmd = new CommandLineApplication();

            var helpOption = cmd.HelpOption("-? | -help");
            var argType    = cmd.Option("-type <value>",
                                        "Type of writer (default \"CLIENT_CSHARP_V1\"; CLIENT_CSHARP_V1, CLIENT_CSHARP_V2)",
                                        CommandOptionType.SingleValue);
            var argThreadsCount = cmd.Option("-threadsCount <value>", "how much Thread use to write into InfluxDB",
                                             CommandOptionType.SingleValue);
            var argSecondsCount = cmd.Option("-secondsCount <value>", "how long write into InfluxDB",
                                             CommandOptionType.SingleValue);
            var argLineProtocolsCount = cmd.Option("-lineProtocolsCount <value>", "how much data writes in one batch",
                                                   CommandOptionType.SingleValue);
            var argMeasurementName = cmd.Option("-measurementName <value>", "target measurement name",
                                                CommandOptionType.SingleValue);
            var argSkipCount = cmd.Option("-skipCount", "skip query count records on end of the benchmark",
                                          CommandOptionType.NoValue);
            var argInfluxDb1 = cmd.Option("-influxDb1 <value>", "URL of InfluxDB v1; default: 'http://localhost:8086'",
                                          CommandOptionType.SingleValue);
            var argInfluxDb2 = cmd.Option("-influxDb2 <value>", "URL of InfluxDB v2; default: 'http://localhost:9999'",
                                          CommandOptionType.SingleValue);

            var bufferSize    = cmd.Option("-batchSize", "batch size", CommandOptionType.SingleValue);
            var flushInterval = cmd.Option("-flushInterval", "flush interval", CommandOptionType.SingleValue);

            AbstractIotWriter writer = null;

            cmd.OnExecute(async() =>
            {
                var type = GetOptionValue(argType, "CLIENT_CSHARP_V2");

                Console.ForegroundColor = ConsoleColor.Blue;

                Console.WriteLine();
                Console.WriteLine("------------- " + type + " -------------");
                Console.WriteLine();

                Console.ResetColor();

                InfluxDbUrl  = GetOptionValue(argInfluxDb1, "http://localhost:8086");
                InfluxDb2Url = GetOptionValue(argInfluxDb2, "http://localhost:9999");

                if (argInfluxDb1.HasValue())
                {
                    WriteDestination(InfluxDbUrl);
                }

                if (argInfluxDb2.HasValue())
                {
                    WriteDestination(InfluxDb2Url);
                }

                try
                {
                    if (type.Equals("CLIENT_CSHARP_V1"))
                    {
                        writer = new ClientV1(cmd.Options);
                    }
                    else if (type.Equals("CLIENT_CSHARP_V2"))
                    {
                        writer = new ClientV2(cmd.Options);
                    }
                    else if (type.Equals("CLIENT_CSHARP_EMPTY"))
                    {
                        writer = new NullWritter(cmd.Options);
                    }

                    else
                    {
                        throw new CommandParsingException(cmd, "The: " + type + " is not supported");
                    }

                    await writer.Start();
                    writer.Verify();
                }
                catch (CommandParsingException e)
                {
                    Console.WriteLine(e);
                }

                return(0);
            });

            cmd.Execute(args);

            stopWatch.Stop();


            Console.WriteLine();
            Console.WriteLine("Total time: " + stopWatch.Elapsed);
            Console.WriteLine("-------------------------------------");
        }
Esempio n. 4
0
        public DepInjector()
        {
            #region Creating Catalog and Client objectys

            // Implements ICreateReadUpdateDelete
            CatalogV1 <T> catalogV1 = new CatalogV1 <T>();


            // Implements ICreate, IRead, IUpdate, IDelete
            CatalogV2 <T> catalogV2 = new CatalogV2 <T>();


            // OK, since catalogV1 implements ICreateReadUpdateDelete
            ClientV1 <T> clientV1catV1 = new ClientV1 <T>(catalogV1);


            // NOT OK, since catalogV2 doesn't implement ICreateReadUpdateDelete
            // ClientV1<T> clientV1catV2 = new ClientV1<T>(catalogV2);


            // NOT OK, since catalogV1 doesn't implement IDelete
            // ClientV2<T> clientV2catV1 = new ClientV2<T>(catalogV1);


            // OK, since catalogV2 implements IDelete
            ClientV2 <T> clientV2catV2 = new ClientV2 <T>(catalogV2);

            #endregion


            #region Using the Delete decorator

            // NOT OK,since catalogV1 doesn't implement IDelete
            // DeleteWithConfirmImpl<T> deleteImplV1 = new DeleteWithConfirmImpl<T>(catalogV1);


            // OK, since catalogV2 implements IDelete
            DeleteWithConfirmImpl <T> deleteImplV2 = new DeleteWithConfirmImpl <T>(catalogV2);


            // OK, since deleteImpl implements IDelete
            ClientV2 <T> clientV2deleteImpl = new ClientV2 <T>(deleteImplV2);

            #endregion


            #region Creating Adapted Catalog objects

            // OK, since AdaptedCatalog constructor takes no parameters
            AdaptedCatalog <T> adapCat = new AdaptedCatalog <T>();


            // OK... but no way to "decorate" catalog implementation
            ClientV1 <T> clientV1adapCat = new ClientV1 <T>(adapCat);

            #endregion


            #region Creating Decorated Catalog objects

            // NOT OK, since catalogV1 doesn't implement ICreate, IRead, IUpdate, IDelete
            // DecoratedCatalog<T> confCatalogV1 = new DecoratedCatalog<T>(catalogV1, catalogV1, catalogV1, catalogV1);


            // OK, since catalogV2 implements ICreate, IRead, IUpdate, IDelete
            DecoratedCatalog <T> decoCatalog = new DecoratedCatalog <T>(catalogV2, catalogV2, catalogV2, catalogV2);


            // ALSO OK; since catalogV2 implements ICreate, IRead, IUpdate, and deleteImpl implements IDelete
            DecoratedCatalog <T> decoCatalogMixed = new DecoratedCatalog <T>(catalogV2, catalogV2, catalogV2, deleteImplV2);

            #endregion


            #region Using Decorated Catalog objects

            // OK, since decoCatalogV2 implements ICreateReadUpdateDelete
            ClientV1 <T> clientV1decoCatV2 = new ClientV1 <T>(decoCatalog);


            // ALSO OK, since decoCatalogMixed implements ICreateReadUpdateDelete
            ClientV1 <T> clientV1decoCatMixed = new ClientV1 <T>(decoCatalogMixed);

            #endregion
        }
 public void Save(ClientV2 ClientV2)
 {
     //acesso ao banco
 }