Esempio n. 1
0
        public async Task <T> AddAsync(T entity)
        {
            await Context.Set <T>().AddAsync(entity);

            await Context.SaveChangesAsync();

            return(entity);
        }
        public static async Task SeedAsync(OrderContext orderContext, ILoggerFactory loggerFactory, int retry = 0)
        {
            int retryForAvailability = retry;

            try
            {
                await orderContext.Database.MigrateAsync(); // migration ro anjam mide

                if (!await orderContext.Orders.AnyAsync())  // agar dadeyi nabud yeseri pishfarz ezafe mikonim
                {
                    await orderContext.Orders.AddRangeAsync(GetPreConfiguredOrders());

                    await orderContext.SaveChangesAsync();
                }
            }
            catch (Exception e)
            {
                if (retryForAvailability < 5) // try it 5 times
                {
                    retryForAvailability++;
                    var log = loggerFactory.CreateLogger <OrderContextSeed>();
                    log.LogError(e.Message);

                    System.Threading.Thread.Sleep(2000);

                    await SeedAsync(orderContext, loggerFactory, retryForAvailability);
                }
                else
                {
                    throw;
                }
            }
        }