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);
                    }
                }
            }
        }
Пример #2
0
        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;
                            }
                        }
                    }
                }
            }
        }