private async Task CreateMessageSenders(EnvironmentSeed seed, string accessToken) { var defaultMessageSenders = new List <MessageSender>() { SeedConstants.BuyerEmails(_settings), SeedConstants.SellerEmails(_settings), SeedConstants.SuplierEmails(_settings) }; foreach (var sender in defaultMessageSenders) { var messageSender = await _oc.MessageSenders.SaveAsync(sender.ID, sender, accessToken); if (messageSender.ID == "BuyerEmails") { foreach (var buyer in seed.Buyers) { await _oc.MessageSenders.SaveAssignmentAsync(new MessageSenderAssignment { MessageSenderID = messageSender.ID, BuyerID = buyer.ID }, accessToken); } } else if (messageSender.ID == "SellerEmails") { try { await _oc.MessageSenders.SaveAssignmentAsync(new MessageSenderAssignment { MessageSenderID = messageSender.ID }, accessToken); } catch (Exception ex) { } } else if (messageSender.ID == "SupplierEmails") { foreach (var supplier in seed.Suppliers) { await _oc.MessageSenders.SaveAssignmentAsync(new MessageSenderAssignment { MessageSenderID = messageSender.ID, SupplierID = supplier.ID }, accessToken); } } } }
private async Task CreateMessageSenders(EnvironmentSeed seed, string accessToken) { var defaultMessageSenders = new List <MessageSender>() { SeedConstants.BuyerEmails(seed), SeedConstants.SellerEmails(seed), SeedConstants.SuplierEmails(seed) }; foreach (var sender in defaultMessageSenders) { var messageSender = await _oc.MessageSenders.SaveAsync(sender.ID, sender, accessToken); if (messageSender.ID == "BuyerEmails") { foreach (var buyer in seed.Buyers) { try { await _oc.MessageSenders.SaveAssignmentAsync(new MessageSenderAssignment { MessageSenderID = messageSender.ID, BuyerID = buyer.ID }, accessToken); } catch (OrderCloudException ex) { if (ex.HttpStatus != HttpStatusCode.Conflict) // this is a bug in the api https://four51.atlassian.net/browse/EX-2210 { throw ex; } } } } else if (messageSender.ID == "SellerEmails") { try { await _oc.MessageSenders.SaveAssignmentAsync(new MessageSenderAssignment { MessageSenderID = messageSender.ID }, accessToken); } catch (OrderCloudException ex) { if (ex.HttpStatus != HttpStatusCode.Conflict) // this is a bug in the api https://four51.atlassian.net/browse/EX-2210 { throw ex; } } } else if (messageSender.ID == "SupplierEmails") { foreach (var supplier in seed.Suppliers) { try { await _oc.MessageSenders.SaveAssignmentAsync(new MessageSenderAssignment { MessageSenderID = messageSender.ID, SupplierID = supplier.ID }, accessToken); } catch (OrderCloudException ex) { if (ex.HttpStatus != HttpStatusCode.Conflict) // this is a bug in the api https://four51.atlassian.net/browse/EX-2210 { throw ex; } } } } } }
private async Task CreateOrUpdateMessageSendersAndAssignments(EnvironmentSeed seed, string accessToken) { var defaultMessageSenders = new List <MessageSender>() { SeedConstants.BuyerEmails(seed), SeedConstants.SellerEmails(seed), SeedConstants.SuplierEmails(seed) }; var existingMessageSenders = await _oc.MessageSenders.ListAllAsync(accessToken : accessToken); foreach (var sender in defaultMessageSenders) { var messageSender = await GetOrCreateMessageSender(existingMessageSenders, sender, accessToken); if (messageSender.ID == "BuyerEmails") { var allBuyers = await _oc.Buyers.ListAllAsync(accessToken : accessToken); foreach (var buyer in allBuyers) { try { await _oc.MessageSenders.SaveAssignmentAsync(new MessageSenderAssignment { MessageSenderID = messageSender.ID, BuyerID = buyer.ID }, accessToken); } catch (OrderCloudException ex) { // this is a bug in the api PUTs should never return 409s so ignore those errors // https://four51.atlassian.net/browse/EX-2210 if (ex.HttpStatus != HttpStatusCode.Conflict) { throw ex; } } } } else if (messageSender.ID == "SellerEmails") { try { await _oc.MessageSenders.SaveAssignmentAsync(new MessageSenderAssignment { MessageSenderID = messageSender.ID }, accessToken); } catch (OrderCloudException ex) { // this is a bug in the api PUTs should never return 409s so ignore those errors // https://four51.atlassian.net/browse/EX-2210 if (ex.HttpStatus != HttpStatusCode.Conflict) { throw ex; } } } else if (messageSender.ID == "SupplierEmails") { var allSuppliers = await _oc.Suppliers.ListAllAsync(accessToken : accessToken); foreach (var supplier in allSuppliers) { try { await _oc.MessageSenders.SaveAssignmentAsync(new MessageSenderAssignment { MessageSenderID = messageSender.ID, SupplierID = supplier.ID }, accessToken); } catch (OrderCloudException ex) { // this is a bug in the api PUTs should never return 409s so ignore those errors // https://four51.atlassian.net/browse/EX-2210 if (ex.HttpStatus != HttpStatusCode.Conflict) { throw ex; } } } } } }