예제 #1
0
        public void putItemTable1(DynamoDBMasterItem1 masterItem, string TableName)
        {
            try
            {
                context.Logger.LogLine("DynamoDBHelper::putItemTable1()=> TableName = " + TableName);
                context.Logger.LogLine("DynamoDBHelper::putItemTable1()=> PKID =  " + masterItem.EmployeeID);

                if (getItem(masterItem.UniqueID, TableName) == null) // this item does not exist
                {
                    Table table = Table.LoadTable(client, TableName);

                    var clientItem = new Document();
                    clientItem["UniqueID"]   = masterItem.UniqueID;
                    clientItem["EmployeeID"] = masterItem.EmployeeID;
                    clientItem["Name"]       = masterItem.Name;
                    clientItem["Employee"]   = masterItem.Designation;
                    clientItem["Age"]        = masterItem.Age;
                    clientItem["Department"] = masterItem.Department;

                    table.PutItemAsync(clientItem).GetAwaiter().GetResult();
                    context.Logger.LogLine("DynamoDBHelper::PutItem() -- PutOperation succeeded");
                }
                else
                {
                    context.Logger.LogLine("DynamoDBHelper::putItemTable1()=> UniqueID = " + TableName);
                }
            }
            catch (Exception ex)
            {
                context.Logger.LogLine("DynamoDBHelper::PutItem() -- " + ex.Message);
                context.Logger.LogLine("DynamoDBHelper::PutItem() -- " + ex.StackTrace);
            }
        }
        public CloudFormationResponse LoadMasterData(LoadMasterDataCustomCloudformationEvent request, ILambdaContext context)
        {
            try
            {
                string UniqueIdGenerated  = SecurityHelper.GetSha256Hash($"{request.StackId}:{request.LogicalResourceId}");
                DynamoDBMasterItem1 item1 = new DynamoDBMasterItem1(
                    UniqueIdGenerated,
                    Convert.ToString(Guid.NewGuid()),
                    "Rohit Srivastava",
                    "Senior Consultant",
                    "29",
                    "Advisory");

                context.Logger.LogLine($"Input event invoked: {JsonConvert.SerializeObject(request)}");
                DynamoDBHelper dynamoDBHelper = new DynamoDBHelper(context, this.isLocalDebug);

                context.Logger.LogLine($"Custom cloudformation event request type: {request.RequestType}");
                //Since this is not basically creation of any custom resource , rather initial data load , we donot need
                //to care about anything other than the CREATE request type
                if (string.Equals(request.RequestType, Constants.CloudFormationCreateRequestType))
                {
                    dynamoDBHelper.putItemTable1(item1, request.ResourceProperties.TableName);

                    //Success - data inserted properly in the dynamoDB
                    CloudFormationResponse objResponse =
                        new CloudFormationResponse(
                            Constants.CloudformationSuccessCode,
                            "Custom Resource Creation Successful",
                            $"{request.StackId}-{request.LogicalResourceId}-DataLoad",
                            request.StackId,
                            request.RequestId,
                            request.LogicalResourceId,
                            item1
                            );

                    return(objResponse.CompleteCloudFormationResponse(request, context).GetAwaiter().GetResult());
                }
                else
                {
                    CloudFormationResponse objResponse =
                        new CloudFormationResponse(
                            Constants.CloudformationSuccessCode,
                            "Do nothing.Data will be pushed in only when stack event is Create",
                            context.LogStreamName,
                            request.StackId,
                            request.RequestId,
                            request.LogicalResourceId,
                            null
                            );
                    return(objResponse.CompleteCloudFormationResponse(request, context).GetAwaiter().GetResult());
                }
            }
            catch (Exception ex)
            {
                context.Logger.LogLine($"StartupProgram::LoadMasterData => {ex.Message}");
                context.Logger.LogLine($"StartupProgram::LoadMasterData => {ex.StackTrace}");

                //Error - log it into the cloudformation console
                CloudFormationResponse objResponse =
                    new CloudFormationResponse(
                        Constants.CloudformationErrorCode,
                        ex.Message,
                        context.LogStreamName,
                        request.StackId,
                        request.RequestId,
                        request.LogicalResourceId,
                        null
                        );

                return(objResponse.CompleteCloudFormationResponse(request, context).GetAwaiter().GetResult());
            }
        }