Exemplo n.º 1
0
        private async Task SaveUser(string receiverId, string giverId)
        {
            Console.WriteLine("Save User started for " + receiverId + "  " + giverId);
            var client   = new AmazonDynamoDBClient();
            var response = await client.ScanAsync(new ScanRequest("user"));

            List <string> userList = new List <string>();

            //Add receiver id
            var userFromDb = response.Items?.Find(i => (i["id"].S == receiverId));

            if ((userFromDb == null) || userFromDb?.ToList().Count <= 0)
            {
                userList.Add(receiverId);
            }

            //Add giver id
            userFromDb = response.Items?.Find(i => (i["id"].S == giverId));
            if ((userFromDb == null) || userFromDb?.ToList().Count <= 0)
            {
                userList.Add(giverId);
            }

            if (userList.Count > 0)
            {
                //get user name from slack
                var slackMsg   = new SlackMessage(new DynamoRepository());
                var slackUsers = slackMsg.GetUsers(userList).Distinct().ToList();
                List <AwsDotnetCsharp.Models.User> users = new List <AwsDotnetCsharp.Models.User>();
                foreach (var slackUser in slackUsers)
                {
                    Console.WriteLine("Adding new user to db : Name " + slackUser.name);
                    var newUser = new Document
                    {
                        ["guid"]        = Guid.NewGuid().ToString(),
                        ["id"]          = slackUser.id,
                        ["name"]        = slackUser.name,
                        ["userimage"]   = slackUser.profile.image_72,
                        ["totalbevans"] = 0
                    };
                    var table = Table.LoadTable(client, "user");
                    await table.PutItemAsync(newUser);

                    Console.WriteLine("User saved");
                }
                ;
            }
        }