public async Task <IActionResult> CreateAmazonAccount(int id) { var username = ApplicationUtility.GetTokenAttribute(Request.Headers["Authorization"], "sub"); var service = new InstituteRepositoryService(connString); var institute = (await service.GetInstituteById(id)).Name; var bucketSevice = new AmazonS3Service(); var bucketName = GetName(institute); await bucketSevice.CreateBucketToS3(bucketName); var iamService = new AmazonIAMService(); var iamUserName = GetName(institute); var accesKeyInfo = await iamService.CreateIAMUser("/", iamUserName); var amazonAccountModel = new InstituteAmazonAccount() { AccessKey = accesKeyInfo.AccessKey, Actor = username, BucketName = bucketName, IamUsername = iamUserName, InstituteId = id, SecretKey = accesKeyInfo.SecurityKey }; await service.CreateInstituteAmazonAccount(amazonAccountModel); var response = new GenericResponse <string>() { IsSuccess = true, Message = "Cloud account created successfully.", ResponseCode = 200, Result = "Success" }; return(Ok(response)); }
public async Task CreateInstituteAmazonAccount(InstituteAmazonAccount model) { try { await _connection.OpenAsync(); var cmd = new MySqlCommand("Create_InstituteAmazonAccount", _connection); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("InstituteIdVal", model.InstituteId); 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); var dr = cmd.ExecuteNonQuery(); } catch { throw; } finally { await _connection.CloseAsync(); } }