示例#1
0
        public T Get <T>(string[] ids)
        {
            T dbRecord = default(T);

            string          tableName = GetTableName(typeof(T));
            Table           table     = Table.LoadTable(client, tableName);
            Task <Document> task;

            if (ids.Length <= 1)
            {
                task = table.GetItemAsync(ids[0]);
            }
            else
            {
                task = table.GetItemAsync(ids[0], ids[1]);
            }

            task.Wait(defaultTimeout);
            Document doc = task.Result;

            if (doc != null)
            {
                dbRecord = JsonTools.Deserialize <T>(doc.ToJson());
            }

            return(dbRecord);
        }
示例#2
0
        static void Main(string[] args)
        {
            mytest m = new mytest();

            m.Name    = "Theo";
            m.SurName = "Uys";

            List <mytest> m2 = new List <mytest>();

            m2.Add(m);

            string jsonString;

            jsonString = JsonSerializer.Serialize(m2);

            //jsonString = "[" + jsonString + "]";



            Console.Write(jsonString);



            IEnumerable <mytest> menum;
            JsonTools <mytest>   retObject = new JsonTools <mytest>();

            menum = retObject.Deserialize(jsonString);
            Console.ReadKey();
        }
示例#3
0
        public List <T> Export <T>()
        {
            List <T> records = new List <T>();

            string tableName = GetTableName(typeof(T));
            Table  table     = Table.LoadTable(client, tableName);

            ScanFilter              filter    = new ScanFilter();
            Search                  search    = table.Scan(filter);
            List <Document>         documents = new List <Document>();
            Task <List <Document> > task;

            do
            {
                task = search.GetNextSetAsync();
                task.Wait(defaultTimeout);
                documents = task.Result;
                int exportedCount = 0;
                foreach (Document document in documents)
                {
                    records.Add(JsonTools.Deserialize <T>(document.ToJson()));
                    exportedCount++;
                }
            } while (!search.IsDone);


            return(records);
        }
示例#4
0
        public void ModelToJsonTests()
        {
            var add = new Add <Book>(new Book {
                Id = 0, Title = "Book first."
            });
            var json          = JsonTools.Serialize(add);
            var convertedBack = JsonTools.Deserialize <Add <Book> >(json);

            Assert.AreEqual(add.Item.Title, convertedBack.Item.Title);
        }
        public string SignupStandardUser(string user)
        {
            string result = "";

            UserModel signupUser = JsonTools.Deserialize <UserModel>(user);

#warning PASSWORD MUST BE ENCRYPTED.  PREFERABLY THIS SHOULD BE DONE ON THE CLIENT

            SignupResultModel model = (SignupResultModel)DatabaseManager.Instance.SignupStandardUser(signupUser);

            //- Create json object based on the result type
            result = JsonTools.Serialize <SignupResultModel>(model);

            return(result);
        }
示例#6
0
        private void OnLoginTouchUpInside(object sender, EventArgs args)
        {
            string loginurl = _serverurl + "/authentication/loginstandarduser";

            string url = string.Format("{0}?uid={1}&pw={2}", loginurl, _username, _password);

            WebClient client = new WebClient();
            string    result = client.DownloadString(url);

            LoginResultModel model = JsonTools.Deserialize <LoginResultModel> (result);

            if (OnLoginCompleted != null)
            {
                OnLoginCompleted(this, model);
            }
        }
        /// <summary>
        /// Gets the user contacts.
        /// </summary>
        public async Task <List <UserModel> > GetUserContacts(string email, DateTime utcdate)
        {
            string usercontactsurl = string.Format(_serverurl + "/data/GetUserContacts?email={0}&utcdate={1}", email, utcdate.ToString());

            WebClient client = new WebClient();

            Task <List <UserModel> > usercontactstask = Task.Run(() => {
                string result = client.DownloadString(usercontactsurl);

                List <UserModel> contacts = JsonTools.Deserialize <List <UserModel> >(result);

                return(contacts);
            });

            return(await usercontactstask);
        }
        /// <summary>
        /// Retrieve complete user information from the server
        /// </summary>
        public async Task <UserModel> GetUserInfo(string email)
        {
            string userinfourl = string.Format(_serverurl + "/data/getuserinfo?email={0}", email);

            WebClient client = new WebClient();

            Task <UserModel> userinfotask = Task.Run(() => {
                string result = client.DownloadString(userinfourl);

                UserModel user = JsonTools.Deserialize <UserModel>(result);

                return(user);
            });

            return(await userinfotask);
        }
        private void OnSignupTouchUpInside(object sender, EventArgs args)
        {
            string data = JsonTools.Serialize <UserModel> (User);

            data = string.Format("user= {0}", data);
            WebClient client = new WebClient();

            client.Headers [HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
            string result = client.UploadString(_signupurl, data);             //client.UploadString (_signupurl, "{data: 'believe me!'}");//

            SignupResultModel model = JsonTools.Deserialize <SignupResultModel> (result);

            if (OnSignupCompleted != null)
            {
                OnSignupCompleted(this, model);
            }
        }
示例#10
0
        public void PatchModelToJsonTests()
        {
            var patch         = new Patch <Book, int, string>(nameof(Book.Id), 1, nameof(Book.Title), "Patched");
            var json          = JsonTools.Serialize(patch);
            var convertedBack = JsonTools.Deserialize <Patch <Book, int, string> >(json);
            var repo          = new CollectionRepository <Book>
            {
                new Book {
                    Id = 1, Title = "Book second."
                }
            };

            repo.ApplyChange(convertedBack);
            var only = repo.Single();

            Assert.AreEqual("Patched", only.Title);
        }
示例#11
0
        public void DropModelToJsonTests()
        {
            var drop          = new Drop <Book, int>(nameof(Book.Id), 1);
            var json          = JsonTools.Serialize(drop);
            var convertedBack = JsonTools.Deserialize <Drop <Book, int> >(json);
            var repo          = new CollectionRepository <Book>
            {
                new Book {
                    Id = 0, Title = "Book first."
                },
                new Book {
                    Id = 1, Title = "Book second."
                }
            };

            repo.ApplyChange(convertedBack);
            var only = repo.Single();

            Assert.AreEqual(0, only.Id);
        }
        public ExportImportReply ImportDatabase(ExportImportRequest request, ILambdaContext ctx)
        {
            processor.Logger = new LambdaLogger(ctx.Logger);
            processor.Logger.Info($"Version : {Version}");
            processor.Logger.Info(JsonTools.Serialize(request));

            string filename = Utils.GetValue(request.FileName, "DefaultExportImportFile", null);

            AwsClient  client = new AwsClient();
            ZephyrFile file   = new AwsS3ZephyrFile(client, filename);

            file.Open(AccessType.Read, false);
            string importText           = file.ReadAllText();
            List <ExportRecord> records = JsonTools.Deserialize <List <ExportRecord> >(importText);

            processor.ImportData(records, request.IncludeSignals);

            // Build Reply Message
            ExportImportReply reply = new ExportImportReply();

            reply.Action   = "Import";
            reply.FileName = filename;
            foreach (ExportRecord record in records)
            {
                if (!request.IncludeSignals && record.type == "SignalDbRecord")
                {
                    continue;
                }
                ExportImportType type = new ExportImportType();
                type.Type  = record.type;
                type.Count = record.records.Count;
                reply.Records.Add(type);
            }

            return(reply);
        }
示例#13
0
        public static void Main(string[] args)
        {
            /*** Export Database Records ***/
            DynamoDbEngine db        = new DynamoDbEngine();
            Processor      processor = new Processor(db);

            processor.Logger = new ConsoleLogger();

            /*** Export To S3 Bucket ***/
            //List<ExportRecord> export = processor.ExportData(false);
            //AwsClient client = new AwsClient();
            //ZephyrFile file = new AwsS3ZephyrFile(client, "s3://guywaguespack/export.json");
            //file.Create();
            //file.WriteAllText(JsonTools.Serialize(export, true));

            /*** Import From S3 Bucket ***/
            AwsClient  client = new AwsClient();
            ZephyrFile file   = new AwsS3ZephyrFile(client, "s3://guywaguespack/export.json");

            file.Open(AccessType.Read);
            string importText           = file.ReadAllText();
            List <ExportRecord> records = JsonTools.Deserialize <List <ExportRecord> >(importText);

            processor.ImportData(records, false);


            Console.WriteLine("Completed");


            /*** Send Signal Message ***/
            //int signalCount = 1;
            //TextReader reader = new StreamReader(new FileStream(@"/Users/guy/Documents/Source/syntinel.core.net/Syntinel.Tester/TestFiles/Signal-UsingTemplate.json", FileMode.Open));
            //string fileStr = reader.ReadToEnd();
            //Signal signal = JsonConvert.DeserializeObject<Signal>(fileStr);
            //Parallel.For(0, signalCount, index =>
            //{
            //    SignalReply reply = processor.ProcessSignal(signal);
            //    Console.WriteLine($"Status : {reply.StatusCode}");
            //    foreach (SignalStatus status in reply.Results)
            //        Console.WriteLine($"     {status.ChannelId} : {status.Code} - {status.Message}");
            //});


            /*** Send Teams Cue Response ***/
            //int cueCount = 1;
            //TextReader reader = new StreamReader(new FileStream(@"/Users/guy/Documents/Source/syntinel.core.net/Syntinel.Tester/TestFiles/Cue-Teams.json", FileMode.Open));
            //string fileStr = reader.ReadToEnd();
            //Dictionary<string, object> reply = JsonConvert.DeserializeObject<Dictionary<string, object>>(fileStr);
            //Cue cue = Teams.CreateCue(reply);
            //Parallel.For(0, cueCount, index =>
            // {
            //     string num = $"{index}".PadLeft(4, '0');
            //     CueReply cueReply = processor.ReceiveCue(cue);
            //     Console.WriteLine($"{num} - {JsonTools.Serialize(cueReply)}");
            // });


            /*** Stress Test Status Messages ***/
            //int statusCount = 1;
            //string signalId = "000000000";
            //string actionId = "0ZC6BJ28Z";

            //Parallel.For(1, statusCount, index =>
            //{
            //    Status status = new Status();
            //    status.Id = signalId;
            //    status.ActionId = actionId;
            //    status.NewStatus = StatusType.InProgress;
            //    string num = $"{index}".PadLeft(4, '0');
            //    status.Message = $"Message {num}";
            //    StatusReply reply = processor.ProcessStatus(status);
            //    Console.WriteLine($"{num} - {reply.StatusCode}");
            //});

            //Status status = new Status();
            //status.Id = signalId;
            //status.ActionId = actionId;
            //status.Message = "Last Message";
            //status.NewStatus = StatusType.Completed;
            //status.SendToChannels = false;
            //processor.ProcessStatus(status);


            /*** Test Syntinel.Version ***/
            //string[] vArgs = { "/Users/guy/Documents/Source/syntinel.core.net/Syntinel.Aws" };
            //Syntinel.Version.Program.Main(vArgs);
        }
 public static Task Monitor <T>(this WebSocket ws, Func <T, Task> onNewObject)
 {
     return(ws.Subscribe(rawJson => onNewObject(JsonTools.Deserialize <T>(rawJson))));
 }