Exemplo n.º 1
0
        public UserInfo Add(UserInfo item)
        {
            if (item.Id == Guid.Empty)
            {
                item.Id = Guid.NewGuid();
            }

            AmazonDynamoDBClient client = DynamoUtilities.InitializeClient();

            using (client)
            {
                PutItemRequest request = CreatePutItemRequest(item);

                try
                {
                    client.PutItem(request);

                    return(item);
                }
                catch (AmazonDynamoDBException ex)
                {
                    throw new MissingFieldException(ex.Message);
                }
            }
        }
Exemplo n.º 2
0
        public DataInfo Get(DataInfo item)
        {
            AmazonDynamoDBClient client = DynamoUtilities.InitializeClient();

            using (client)
            {
                ScanRequest request = CreateScanRequest(item.DataId);
                if (request.ScanFilter.Count == 0)
                {
                    throw new InvalidOperationException(ErrorMessages.NoSearchCriteria);
                }

                ScanResponse response = client.Scan(request);

                if (response.Items == null)
                {
                    string errorMessage = string.Format(ErrorMessages.MisingResponseItem, "Get Data Info");
                    throw new MissingFieldException(errorMessage);
                }

                Dictionary <string, AttributeValue> userData = response.Items[0];

                var returnValue = DynamoUtilities.GetItemFromAttributeStore <DataInfo>(userData);

                return(returnValue);
            }
        }
Exemplo n.º 3
0
        public IEnumerable <Organization> GetAll()
        {
            List <Organization> returnValue = new List <Organization>();

            AmazonDynamoDBClient client = DynamoUtilities.InitializeClient();

            using (client)
            {
                ScanRequest request = CreateScanRequest();

                ScanResponse response = client.Scan(request);

                if (response.Items == null || response.Items.Any() == false)
                {
                    string errorMessage = string.Format(ErrorMessages.MisingResponseItem, "Get Organization");
                    throw new MissingFieldException(errorMessage);
                }

                foreach (Dictionary <string, AttributeValue> item in response.Items)
                {
                    Organization organization = DynamoUtilities.GetItemFromAttributeStore <Organization>(item);

                    returnValue.Add(organization);
                }
                return(returnValue);
            }
        }
Exemplo n.º 4
0
        private static ScanRequest CreateScanRequest(UserInfo searchCriteria)
        {
            ScanRequest request = new ScanRequest();

            request.TableName = ConfigurationManager.AppSettings["userTableName"];;

            request.ScanFilter = new Dictionary <string, Condition>();

            if (!string.IsNullOrEmpty(searchCriteria.EmailAddress))
            {
                Condition condition = new Condition();
                condition.ComparisonOperator = DynamoUtilities.DYNAMO_EQUALITY_OPERATOR;
                condition.AttributeValueList = new List <AttributeValue>()
                {
                    DynamoUtilities.GetItemAttributeStringValue(searchCriteria.EmailAddress.ToLower())
                };

                request.ScanFilter.Add(EMAIL_ADDRESS_COLUMN, condition);
            }

            if (!string.IsNullOrEmpty(searchCriteria.PasswordHash))
            {
                Condition condition = new Condition();
                condition.ComparisonOperator = DynamoUtilities.DYNAMO_EQUALITY_OPERATOR;
                condition.AttributeValueList = new List <AttributeValue>()
                {
                    DynamoUtilities.GetItemAttributeStringValue(searchCriteria.PasswordHash)
                };

                request.ScanFilter.Add(PASSWORD_COLUMN, condition);
            }

            if (!string.IsNullOrEmpty(searchCriteria.UserName))
            {
                Condition condition = new Condition();
                condition.ComparisonOperator = DynamoUtilities.DYNAMO_EQUALITY_OPERATOR;
                condition.AttributeValueList = new List <AttributeValue>()
                {
                    DynamoUtilities.GetItemAttributeStringValue(searchCriteria.UserName)
                };

                request.ScanFilter.Add(USER_NAME_COLUMN, condition);
            }

            if (searchCriteria.Id != Guid.Empty)
            {
                Condition condition = new Condition();
                condition.ComparisonOperator = DynamoUtilities.DYNAMO_EQUALITY_OPERATOR;
                condition.AttributeValueList = new List <AttributeValue>()
                {
                    DynamoUtilities.GetItemAttributeStringValue(searchCriteria.Id)
                };

                request.ScanFilter.Add(USER_ID_COLUMN, condition);
            }

            return(request);
        }
Exemplo n.º 5
0
        public void Remove(Organization item)
        {
            AmazonDynamoDBClient client = DynamoUtilities.InitializeClient();

            using (client)
            {
                DeleteItemRequest request = CreateDeleteItemRequest(item.OrganizationId);

                client.DeleteItem(request);
            }
        }
Exemplo n.º 6
0
        public void Remove(DataInfo item)
        {
            AmazonDynamoDBClient client = DynamoUtilities.InitializeClient();

            using (client)
            {
                DeleteItemRequest request = CreateDeleteItemRequest(item);

                client.DeleteItem(request);
            }
        }
Exemplo n.º 7
0
        private DeleteItemRequest CreateDeleteItemRequest(Guid id)
        {
            DeleteItemRequest request = new DeleteItemRequest();

            request.TableName = ConfigurationManager.AppSettings["organizationTableName"];
            request.Key       = new Dictionary <string, AttributeValue>()
            {
                { ORGANIZATION_ID_COLUMN, DynamoUtilities.GetItemAttributeStringValue(id) }
            };

            return(request);
        }
Exemplo n.º 8
0
        private PutItemRequest CreatePutItemRequest(Organization item)
        {
            PutItemRequest request = new PutItemRequest();

            request.TableName = ConfigurationManager.AppSettings["organizationTableName"];

            request.Item = new Dictionary <string, AttributeValue>();

            request.Item.Add(ORGANIZATION_ID_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.OrganizationId));
            request.Item.Add(DynamoUtilities.SERIALIZED_DATA_COLUMN, DynamoUtilities.GetItemAttributeSerializedValue(item));

            return(request);
        }
Exemplo n.º 9
0
        private static DeleteItemRequest CreateDeleteItemRequest(DataInfo item)
        {
            var request = new DeleteItemRequest();

            request.TableName = ConfigurationManager.AppSettings["dataInfoTableName"];;

            request.Key = new Dictionary <string, AttributeValue>
            {
                { DATA_ID_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.DataId) },
                { ORGANIZATION_ID, DynamoUtilities.GetItemAttributeStringValue(item.OrganizationId) }
            };

            return(request);
        }
Exemplo n.º 10
0
        private static GetItemRequest CreateGetItemRequest(UserInfo item)
        {
            GetItemRequest request = new GetItemRequest();

            request.TableName = ConfigurationManager.AppSettings["userTableName"];;

            request.Key = new Dictionary <string, AttributeValue>
            {
                { USER_ID_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.Id) },
                { ORGANIZATION_ID_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.OrganizationId) }
            };

            return(request);
        }
Exemplo n.º 11
0
        private static DeleteItemRequest CreateDeleteItemRequest(UserPaymentInfo item)
        {
            var request = new DeleteItemRequest();

            request.TableName = ConfigurationManager.AppSettings["userPaymentInfoTableName"];;

            request.Key = new Dictionary <string, AttributeValue>
            {
                { USER_ID_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.UserId) },
                { USER_PAYMENT_ID_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.UserPaymentInfoId) }
            };

            return(request);
        }
Exemplo n.º 12
0
        private static PutItemRequest CreatePutItemRequest(UserPaymentInfo item)
        {
            PutItemRequest request = new PutItemRequest();

            request.TableName = ConfigurationManager.AppSettings["userPaymentInfoTableName"];

            request.Item = new Dictionary <string, AttributeValue>();

            request.Item.Add(USER_PAYMENT_ID_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.UserPaymentInfoId));
            request.Item.Add(USER_ID_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.UserId));
            request.Item.Add(DynamoUtilities.SERIALIZED_DATA_COLUMN, DynamoUtilities.GetItemAttributeSerializedValue(item));

            return(request);
        }
Exemplo n.º 13
0
        private static PutItemRequest CreatePutItemRequest(UserInfo item)
        {
            PutItemRequest request = new PutItemRequest();

            request.TableName = ConfigurationManager.AppSettings["userTableName"];

            request.Item = new Dictionary <string, AttributeValue>();

            request.Item.Add(USER_ID_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.Id));
            request.Item.Add(ORGANIZATION_ID_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.OrganizationId));
            request.Item.Add(EMAIL_ADDRESS_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.EmailAddress));
            request.Item.Add(USER_NAME_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.UserName));
            request.Item.Add(PASSWORD_COLUMN, DynamoUtilities.GetItemAttributeStringValue(item.PasswordHash));
            request.Item.Add(DynamoUtilities.SERIALIZED_DATA_COLUMN, DynamoUtilities.GetItemAttributeSerializedValue(item));

            return(request);
        }
Exemplo n.º 14
0
        public Guid Add(Organization item)
        {
            if (item.OrganizationId == Guid.Empty)
            {
                item.OrganizationId = Guid.NewGuid();
            }

            AmazonDynamoDBClient client = DynamoUtilities.InitializeClient();

            using (client)
            {
                PutItemRequest request = CreatePutItemRequest(item);

                client.PutItem(request);
            }

            return(item.OrganizationId);
        }
Exemplo n.º 15
0
        public DataInfo Add(DataInfo item)
        {
            AmazonDynamoDBClient client = DynamoUtilities.InitializeClient();

            using (client)
            {
                PutItemRequest request = CreatePutItemRequest(item);

                try
                {
                    client.PutItem(request);

                    return(item);
                }
                catch (AmazonDynamoDBException ex)
                {
                    throw new MissingFieldException(ex.Message);
                }
            }
        }
Exemplo n.º 16
0
        private static ScanRequest CreateScanRequest(Guid userId)
        {
            ScanRequest request = new ScanRequest();

            request.TableName = ConfigurationManager.AppSettings["dataInfoTableName"];

            request.ScanFilter = new Dictionary <string, Condition>();

            Condition condition = new Condition();

            condition.ComparisonOperator = DynamoUtilities.DYNAMO_EQUALITY_OPERATOR;
            condition.AttributeValueList = new List <AttributeValue>()
            {
                DynamoUtilities.GetItemAttributeStringValue(userId)
            };

            request.ScanFilter.Add(DATA_ID_COLUMN, condition);

            return(request);
        }
Exemplo n.º 17
0
        public Organization Get(Guid id)
        {
            AmazonDynamoDBClient client = DynamoUtilities.InitializeClient();

            using (client)
            {
                GetItemRequest request = CreateGetItemRequest(id);

                GetItemResponse response = client.GetItem(request);

                if (response.Item == null)
                {
                    string errorMessage = string.Format(ErrorMessages.MisingResponseItem, "Get Organization");
                    throw new MissingFieldException(errorMessage);
                }

                Organization returnValue = DynamoUtilities.GetItemFromAttributeStore <Organization>(response.Item);

                return(returnValue);
            }
        }
Exemplo n.º 18
0
        /// <summary>
        /// This method will use whatever information is supplied to scan the table
        /// supported fields are:
        /// CustomerId
        /// UserName
        /// Password(Hash)
        /// EmailAddress
        /// </summary>
        /// <param name="searchCriteria"></param>
        /// <returns></returns>
        public IEnumerable <UserInfo> Search(UserInfo searchCriteria)
        {
            AmazonDynamoDBClient client = DynamoUtilities.InitializeClient();

            using (client)
            {
                ScanRequest request = CreateScanRequest(searchCriteria);
                if (request.ScanFilter.Count == 0)
                {
                    throw new InvalidOperationException(ErrorMessages.NoSearchCriteria);
                }

                List <UserInfo> returnValue = new List <UserInfo>();

                try
                {
                    ScanResponse response = client.Scan(request);

                    if (response.Items == null)
                    {
                        string errorMessage = string.Format(ErrorMessages.MisingResponseItem, "Search User");
                        throw new MissingFieldException(errorMessage);
                    }

                    foreach (Dictionary <string, AttributeValue> item in response.Items)
                    {
                        UserInfo user = DynamoUtilities.GetItemFromAttributeStore <UserInfo>(item);
                        returnValue.Add(user);
                    }
                }
                catch (AmazonDynamoDBException ex)
                {
                    //expected exception, 404
                }

                return(returnValue);
            }

            throw new NotImplementedException();
        }