public async Task CreatePublisherAmazonAccount(PublisherAmazonAccount model) { try { await _connection.OpenAsync(); var cmd = new MySqlCommand("Create_PublisherAmazonAccount", _connection); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("PublisherIdVal", model.PublisherId); cmd.Parameters.AddWithValue("BucketNameVal", model.BucketName); cmd.Parameters.AddWithValue("AccessKeyVal", model.AccessKey); cmd.Parameters.AddWithValue("SecretKeyVal", model.SecretKey); cmd.Parameters.AddWithValue("IamUserNameVal", model.IamUsername); cmd.Parameters.AddWithValue("Actor", model.Actor); cmd.ExecuteNonQuery(); } catch { throw; } finally { await _connection.CloseAsync(); } }
public async Task <IActionResult> Create(PublisherModel model) { var username = ApplicationUtility.GetTokenAttribute(Request.Headers["Authorization"], "sub"); var service = new PublisherRepositoryService(connString); var pubId = await service.CreatePublisher(model, username); PublisherAmazonAccount amazonAccountModel; if (model.CloudAccountRequired) { var bucketSevice = new AmazonS3Service(); var bucketName = GetName(model.PublisherName); await bucketSevice.CreateBucketToS3(bucketName); var iamService = new AmazonIAMService(); var iamUserName = GetName(model.PublisherName); var accesKeyInfo = await iamService.CreateIAMUser("/", iamUserName); amazonAccountModel = new PublisherAmazonAccount() { AccessKey = accesKeyInfo.AccessKey, Actor = username, BucketName = bucketName, IamUsername = iamUserName, PublisherId = pubId, SecretKey = accesKeyInfo.SecurityKey }; await service.CreatePublisherAmazonAccount(amazonAccountModel); } var response = new GenericResponse <int>() { IsSuccess = true, Message = "Publisher created successfully.", ResponseCode = 200, Result = pubId }; return(Ok(response)); }