private static void ResetSchema(TransactionContextCreator contextCreator)
 {
     try
     {
         using (var ctx = contextCreator.Create())
         {
             FeatureManager.DropSchema(ctx);
             ctx.Complete();
         }
     }
     catch (Exception _)
     {
     }
     try
     {
         using (var ctx = contextCreator.Create())
         {
             FeatureManager.CreateSchema(ctx);
             ctx.Complete();
         }
     }
     catch (Exception _)
     {
     }
 }
        public static void Replicate()
        {
            try
            {
                var contextCreator = new TransactionContextCreator(@"Data Source = C:\Users\PetarPetrov\Desktop\server.sqlite; Version = 3;");

                var clientData = new ClientData();
                clientData.Add(new Dictionary <string, FeatureContextRow>
                {
                    { @"Agenda", new FeatureContextRow(1, @"Agenda") }
                });
                clientData.Add(new[] { new FeatureExceptionRow(1, @"new exception : stack trace => ..."), });
                clientData.Add(new Dictionary <long, List <FeatureRow> >()
                {
                    { 1, new List <FeatureRow>()
                      {
                          new FeatureRow(1, @"Add Activity", 1),
                          new FeatureRow(2, @"Close Activity", 1),
                          new FeatureRow(3, @"Cancel Activity", 1),
                      } },
                });
                clientData.Add(new[]
                {
                    new FeatureEntryRow(2, "N/A", DateTime.Now),
                    new FeatureEntryRow(3, "Sick", DateTime.Now)
                });
                clientData.Add(new[]
                {
                    new FeatureExceptionEntryRow(1, DateTime.Today.AddDays(-1), 1),
                });

                //ResetSchema(contextCreator);

                var s = Stopwatch.StartNew();
                using (var ctx = contextCreator.Create())
                {
                    //FeatureServerManager.CreateSchema(ctx);

                    for (var i = 0; i < 1; i++)
                    {
                        FeatureManager.Replicate(ctx, @"BG900343", @"1.0.0.0", clientData.GetBytes());
                    }

                    ctx.Complete();
                }
                s.Stop();
                Console.WriteLine(s.ElapsedMilliseconds);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Exemple #3
0
        private static void GenerateData(string path)
        {
            var contextCreator = new TransactionContextCreator(GetSqliteConnectionString(path));

            var featureManager = new Atos.Client.Features.FeatureManager(() => contextCreator.Create());

            if (!File.Exists(path))
            {
                // Create the schema
                Atos.Client.Features.FeatureManager.CreateSchema(contextCreator.Create);
            }

            // TODO : !!!
            // Generate exceptions
            // Generate more scenarios
            var s = Stopwatch.StartNew();
            //var scenarios = new[]
            //{
            //	GetUploadImageFeature(),
            //	GetDownloadImageFeature(),
            //	GetLoadImagesAsync(),
            //	GetDeleteImageAsync(),
            //	GetSetAsDefaultAsync(),
            //	GetCreateActivityData(),
            //};
            //foreach (var data in scenarios)
            //{
            //	featureManager.MarkUsageAsync(data);
            //	//featureManager.Write(data);
            //}

            var f = new Feature(@"Images", @"Upload");

            try
            {
                throw new Exception(@"Unable to display feature");

                featureManager.Save(f);
            }
            catch (Exception ex)
            {
                featureManager.Save(f, ex);
            }

            s.Stop();

            Console.WriteLine(s.ElapsedMilliseconds);
        }
Exemple #4
0
        public static void Main(string[] args)
        {
            var freshDbPath  = @"C:\Users\PetarPetrov\Desktop\data.sqlite";
            var clientDbPath = @"C:\Users\PetarPetrov\Desktop\features.sqlite";
            var serverDbPath = @"C:\Users\PetarPetrov\Desktop\server.sqlite";

            try
            {
                var pth      = @"C:\Users\PetarPetrov\AppData\Local\Packages\FSAforWindows8_g87ygcespgq1j\LocalState\ifsa.sqlite";
                var data     = File.ReadAllBytes(pth);
                var dbString = Convert.ToBase64String(data);
                var l        = dbString.Length;
                //var rules = new[]
                //{
                //	new SourceCodeRule(@"Class must be sealed or abstract", cts =>
                //	{
                //		return cts.IndexOf(@"public class", 0, StringComparison.OrdinalIgnoreCase) >= 0;
                //	}),

                //	new SourceCodeRule(@"No structs", cts =>
                //	{
                //		return cts.IndexOf(@" struct ", 0, StringComparison.OrdinalIgnoreCase) >= 0;
                //	}),

                //	new SourceCodeRule(@"Interface must start with an 'I'", cts =>
                //	{
                //		var flag = @"public interface ";
                //		var index = cts.IndexOf(flag, StringComparison.OrdinalIgnoreCase);
                //		if (index >= 0)
                //		{
                //			var name = cts.Substring(index + flag.Length);
                //			return !name.StartsWith(@"I", StringComparison.OrdinalIgnoreCase);
                //		}
                //		return false;
                //	}),

                //	new SourceCodeRule(@"Only one class/enum/interface per file", cts =>
                //	{
                //		var definitions = 0;

                //		foreach (var flag in new[]
                //		{
                //			@"public sealed class ",
                //			@"public interface ",
                //			@"public enum ",
                //		})
                //		{
                //			definitions += Count(cts, flag);
                //			if (definitions > 1)
                //			{
                //				return true;
                //			}
                //		}

                //		return definitions > 1;
                //	}),
                //};


                var sw = Stopwatch.StartNew();

                var projectFile = @"C:\Sources\Atos\Atos.iFSA\Atos.iFSA.csproj";
                projectFile = @"C:\Sources\Atos\Atos.Client\Atos.Client.csproj";
                //projectFile = @"C:\Cchbc\PhoenixClient\Metro\iFSA Metro 8.1\iFSA Metro\iFSA.csproj";

                var rules         = SourceCodeRules.General;
                var sourceProject = GetSourceProject(projectFile);

                sourceProject.Apply(rules);


                sw.Stop();
                Console.WriteLine(sw.ElapsedMilliseconds);

                foreach (var rule in rules)
                {
                    Console.WriteLine(@" - " + rule.Name);
                    foreach (var violation in rule.Violations)
                    {
                        Console.WriteLine("\t- " + violation.Filename);
                    }
                    Console.WriteLine();
                }

                return;

                //var dataUser = default(User);

                //var c = Convert.ToBase64String(File.ReadAllBytes(@"C:\Users\PetarPetrov\Desktop\burn.jpg"));
                //Console.WriteLine(c);
                //var provider = UserDataProvider.GetUsers(null);
                //var h = DataHelper.GetTradeChannel(null, null, null);


                //public static TradeChannel GetTradeChannel(IDbContext context, DataCache cache, Outlet outlet)
                //{
                //	if (context == null) throw new ArgumentNullException(nameof(context));
                //	if (cache == null) throw new ArgumentNullException(nameof(cache));
                //	if (outlet == null) throw new ArgumentNullException(nameof(outlet));

                //	TradeChannel result;
                //	cache.GetValues<TradeChannel>(context).TryGetValue(-1, out result);

                //	return result ?? TradeChannel.Empty;
                //}

                //public static SubTradeChannel GetSubTradeChannel(IDbContext context, DataCache cache, Outlet outlet)
                //{
                //	if (context == null) throw new ArgumentNullException(nameof(context));
                //	if (cache == null) throw new ArgumentNullException(nameof(cache));
                //	if (outlet == null) throw new ArgumentNullException(nameof(outlet));

                //	SubTradeChannel result;
                //	cache.GetValues<SubTradeChannel>(context).TryGetValue(-1, out result);

                //	return result ?? SubTradeChannel.Empty;
                //}

                //FeatureDataReplicaSimulation.Replicate();

                //Console.WriteLine(ExtractContractField(@"comment"));
                //Console.WriteLine(ExtractContractField(@"h_t_outlets_name2"));
                //Console.WriteLine(ExtractContractField(@"h_atp_tax1_no"));
                //Console.WriteLine(ExtractContractField(@"contact_persons_2"));

                //Console.WriteLine(data);
                //foreach (var f in Directory.GetFiles(@"C:\Users\PetarPetrov\Desktop\HR_Refresher log"))
                //{
                //	if (f.IndexOf(".20170531", StringComparison.OrdinalIgnoreCase) < 0)
                //	{
                //		continue;
                //	}
                //	var contents = File.ReadAllText(f);
                //	var start = contents.IndexOf(@"Activation(", StringComparison.OrdinalIgnoreCase);
                //	if (start >= 0)
                //	{
                //		Console.WriteLine(f);
                //		//var end = contents.IndexOf(@"Alcohol Licenses", start, StringComparison.OrdinalIgnoreCase);
                //		//if (end >= 0)
                //		//{
                //		//	var val = contents.Substring(start, end - start);
                //		//}
                //	}
                //}
                //FeatureDataReplicaSimulation.Replicate();
                return;

                var imgAsString = File.ReadAllBytes(@"C:\Users\PetarPetrov\Desktop\signature.jpg");
                //imgAsString = File.ReadAllBytes(@"C:\Users\PetarPetrov\Desktop\signature.jpg");
                var b64 = Convert.ToBase64String(imgAsString);
                Console.WriteLine(b64.Length);


                using (var client = new TransactionContextCreator(GetSqliteConnectionString(@"C:\Users\PetarPetrov\Desktop\BG000956.sqlite")).Create())
                {
                    foreach (var name in client.Execute(new Query <string>(@"SELECT name FROM sqlite_master WHERE type='table' order by name", dr => dr.GetString(0))))
                    {
                        var localQuery = @"select count(*) from " + name + " where rec_status <> 1";
                        try
                        {
                            var v = client.Execute(new Query <int>(localQuery, r => r.GetInt32(0))).Single();
                            if (v != 0)
                            {
                                Console.WriteLine(name + " " + v);
                            }
                        }
                        catch
                        {
                            Console.WriteLine(name);
                        }
                    }

                    client.Complete();
                }


                return;

                //var addViewModel = new AddActivityViewModel(new ActivityCreator(), new ConsoleDialog());
                //using (var dbContext = new TransactionContextCreator(string.Empty).Create())
                //{
                //	var modelData = new AddActivityViewModelData(dbContext);
                //	modelData.Load();

                //	addViewModel.Load(modelData);

                //	dbContext.Complete();
                //}

                //var context = new AppContext((msg, level) => { Console.WriteLine(level + @":" + msg); }, () => new DbContext(GetSqliteConnectionString(freshDbPath)), new ConsoleDialog());

                //var module = new AppModule(context);
                //module.Init();
                //module.Load();

                //return;

                //if (!File.Exists(serverDbPath))
                //{
                //	CreateSchema(GetSqliteConnectionString(serverDbPath));
                //}
                //foreach (var date in new[]
                //{
                //	//DateTime.Today.AddDays(-10), DateTime.Today.AddDays(-9), DateTime.Today.AddDays(-8), DateTime.Today.AddDays(-7), DateTime.Today.AddDays(-6), DateTime.Today.AddDays(-5), DateTime.Today.AddDays(-4), DateTime.Today.AddDays(-3), DateTime.Today.AddDays(-2), DateTime.Today.AddDays(-1), DateTime.Today,
                //	DateTime.Today.AddDays(-10)
                //})
                //{
                //	ClientDataReplication.SimulateDay(serverDbPath, date);
                //}

                //return;


                return;

                //var fm = new FeatureManager();

                //fm.Load(null);

                //return;

                //GenerateData(clientDbPath);
                //return;

                //WeatherTest();
                //return;

                if (!File.Exists(serverDbPath))
                {
                    CreateSchema(GetSqliteConnectionString(serverDbPath));
                }

                var w = Stopwatch.StartNew();
                GenerateData(clientDbPath);

                Console.WriteLine(@"Load client data");
                var s = Stopwatch.StartNew();

                //ClientData clientData;
                //using (var client = new TransactionContextCreator(GetSqliteConnectionString(clientDbPath)).Create())
                //{
                //	clientData = FeatureAdapter.GetData(client);
                //	clientData.FeatureEntryRows.Clear();
                //	client.Complete();
                //}

                File.Delete(clientDbPath);

                s.Stop();
                Console.WriteLine(s.ElapsedMilliseconds);


                //while (true)
                //{
                //	s.Restart();
                //	Replicate(GetSqliteConnectionString(serverDbPath), clientData, serverData);
                //	s.Stop();
                //	Console.WriteLine(s.ElapsedMilliseconds);
                //	//Console.ReadLine();
                //}

                w.Stop();
                Console.WriteLine(w.ElapsedMilliseconds);
                return;


                //var viewModel =
                //	new ExceptionsViewModel(new TransactionContextCreator(GetSqliteConnectionString(serverDbPath)).Create,
                //		ExceptionsSettings.Default);

                for (var i = 0; i < 100; i++)
                {
                    //viewModel.Load(ExceptionsDataProvider.GetTimePeriods, ExceptionsDataProvider.GetVersions,
                    //	ExceptionsDataProvider.GetExceptions, ExceptionsDataProvider.GetExceptionsCounts);
                }


                return;
                //SearchSourceCode();
                //return;
                //DisplayHistogram();
                //return;


                //GenerateDayReport(serverDbPath);


                //
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return;


            //var c = @"Data Source = C:\Users\PetarPetrov\Desktop\ifsa.sqlite; Version = 3;";

            //ClientData data;
            //using (var client = new TransactionContextCreator(c).Create())
            //{
            //	data = FeatureAdapter.GetData(client);
            //	client.Complete();
            //}


            //data.FeatureEntryRows.Add(new DbFeatureEntryRow(@"#", DateTime.Today.AddDays(-1), -4));


            //var s = Stopwatch.StartNew();
            //var result = ClientDataPacker.Pack(data);

            //s.Stop();
            //Console.WriteLine(s.ElapsedMilliseconds);

            //s.Restart();
            //var back = ClientDataPacker.Unpack(result);
            //s.Stop();
            //Console.WriteLine(s.ElapsedMilliseconds);
            //Console.WriteLine(back);

            //Console.WriteLine();
            //Console.WriteLine();
            //Console.WriteLine();

            //Console.WriteLine(result.Length);


            return;


            //GenerateProject(PhoenixModel(), @"C:\temp\IfsaBuilder\IfsaBuilder\Phoenix");

            //GenerateProject(WordpressModel(), @"C:\temp\IfsaBuilder\IfsaBuilder\Wordpress");

            //var prj = new ClrProject();
            //prj.Save(@"C:\temp\IfsaBuilder\IfsaBuilder\", project);

            //var AppContext = new AppContext();
            //AppContext.DbContextCreator = new TransactionContextCreator(string.Empty);
            //AppContext.ModalDialog = new ConsoleDialog();
            //var viewModel = new LoginsViewModel(AppContext, new LoginAdapter());
            //try
            //{
            //	viewModel.InsertAsync(new Login(1, @"PPetrov", @"Password", DateTime.Now, false)).Wait();

            //	Console.WriteLine(@"Done");
            //}
            //catch (Exception ex)
            //{
            //	Console.WriteLine(ex);
            //}

            //return;


            //// Register helpers
            //var cache = AppContext.DataCache;
            //cache.Add(new BrandHelper());
            //cache.Add(new FlavorHelper());
            //cache.Add(new ArticleHelper());

            //try
            //{
            //	File.WriteAllText(@"C:\temp\diagnostics.txt", string.Empty);

            //	//var viewModel = new LoginsViewModel(AppContext, new LoginAdapter());
            //	//viewModel.LoadData();

            //	//var v = new ViewModel(new Login(1, @"PPetrov", @"QWE234!", DateTime.Now, true));
            //	//var dialog = new ConsoleDialog();
            //	//viewModel.AddAsync(v, dialog).Wait();
            //	//viewModel.AddAsync(v, dialog).Wait();
            //	//viewModel.ChangePasswordAsync(v, dialog, @"sc1f1r3hack").Wait();
            //	//viewModel.AddAsync(v, dialog).Wait();
            //	//viewModel.ChangePasswordAsync(v, dialog, @"sc1f1r3hackV2").Wait();

            //	//foreach (var login in viewModel.Logins)
            //	//{
            //	//	Console.WriteLine(login.Name + " " + v.Password);
            //	//}
            //}
            //catch (Exception e)
            //{
            //	Console.WriteLine(e);
            //}
        }