 author is instead able to participate in a personal ritual of farewell and closure, a ritual that symbolizes her slowly strengthening ability to live her life on her own.
The book draws to a close with a final narration of a memory involving John—how he once told her that it was necessary and right for her to ride the tides and ways of life rather than struggling against them. This, the narrative suggests, is what the author has finally discovered she is able, and prepared, to do—drawing her "year of magical thinking" to a close.
More summaries and resources for teaching or studying The Year of Magical Thinking.
The Year of Magical Thinking from BookRags. (c)2020 BookRags, Inc. All rights reserved.Everyone goes to work even if they are millionaires or billionaires. Children need to go to school, and housekeepers need to go for shopping grocery or other necessities of life. Everybody has to travel at one point or the other. Some people like to drive themselves while others keep chauffeurs to avoid the fatigue of driving. These roads and routes that you take every day to go to your work, school, college, mall, or a friend’s house are filled with traffic regularly. To lessen a load of traffic on the main routes of transport, the government builds roads and flyovers all over the country. These routes are dedicated to the public transportation facility and often subject to repairs and construction upgrades for proper upkeep.
When you see a comprehensive intersection cutting into a narrow lane on the next turn, you are relived and prepare yourself for a relaxed driving experience. No one likes to drive to a heavily loaded truck with massive wheels and scary looking engine exhausts. For the most part, these gigantic machines take forever to pass through the busy routes of public traffic. If you are inside your car, you fear for your life. In case you opt for a Lamborghini car rental in Dubai, you fear for your car and your life at the same time. These massive trucks and containers are an important part of the economy. If you are ordering a package and it doesn’t arrive on time, you are stunned, and if you go to the supermarket and don’t find any fresh groceries there, you will wince with frustration. All these goods travel inside these heavy containers, but these heavy trucks have no place on the regular public routes. These routes are reserved for small cars and may give way to heavy-duty traffic. These delivery trucks have their paths, and they should adhere to it to avoid any unpleasant accidents.
The Middle East is a high lifestyle place that makes it possible for people to rent a Porsche Boxster in Dubai and, at the same time, not enough infrastructures to compensate for public and commercial transportation safety units. Even where there are allotted routes, truck drivers often bump into the available streets for want of a shortcut. There are safety passageways like steel rims, and pull-up bridges are planted on the road entrances to deal with these problems with a lot of success.﻿using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Storage;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;

namespace CoreApi.Repositories;

public class BaseRepository<T> : IRepository<T> where T : class
{
    private readonly DbContext coreDbContext;

    public DbSet<T> BaseDbSet { get; }

    public BaseRepository(CoreDbContext dbContext)
    {
        coreDbContext = dbContext;
        BaseDbSet = dbContext.Set<T>();
    }

    public async Task<bool> SaveChangesAsync() => await coreDbContext.SaveChangesAsync().ConfigureAwait(false) > 0;

    public IDbConnection GetDbConnection() => coreDbContext.Database.GetDbConnection();

    public IDbContextTransaction BeginTransaction() => coreDbContext.Database.BeginTransaction();

    public DbSet<TSource> GetDbSet<TSource>() where TSource : class
    {
        return coreDbContext.Set<TSource>();
    }

    public virtual async Task<(List<T>, int)> GetListAsync(Expression<Func<T, bool>> expression, int pageIndex, int pageSize, bool isNoTracking = true)
    {
        var query = BaseDbSet.Where(expression).Skip((pageIndex - 1) * pageSize).Take(pageSize);
        if (isNoTracking) query = query.AsNoTracking();

        var res = await query.ToListAsync().ConfigureAwait(false);
        var total = await query.CountAsync().ConfigureAwait(false);
        return (res, total);
    }

    public virtual async Task<T> GetOneAsync(Expression<Func<T, bool>> expression, bool isNoTracking = true)
    {
        var query = BaseDbSet.Where(expression);
        if (isNoTracking) query = query.AsNoTracking();
        return await query.FirstOrDefaultAsync().ConfigureAwait(false);
    }

    public virtual async Task<T> AddAsync(T entity)
    {
        BaseDbSet.Add(entity);
        var res = await SaveChangesAsync().ConfigureAwait(false);
        return res? entity : null;
    }

    public virtual async Task<bool> UpdateAsync(T entity)
    {
        BaseDbSet.Update(entity);
        return await SaveChangesAsync().ConfigureAwait(false);
    }

    public virtual async Task<bool> DeleteAsync(T entity)
    {
        BaseDbSet.Remove(entity);
        return await SaveChangesAsync().ConfigureAwait(false);
    }

    public virtual async Task<bool> AddRangeAsync(IEnumerable<T> entities)
    {
        BaseDbSet.AddRange(entities);
        return await SaveChangesAsync().ConfigureAwait(false);
    }

    public virtual async Task<bool> UpdateRangeAsync(IEnumerable<T> entities)
    {
        BaseDbSet.UpdateRange(entities);
        return await SaveChangesAsync().ConfigureAwait(false);
    }

    public virtual async Task<bool> DeleteRangeAsync(IEnumerable<T> entities)
    {
        BaseDbSet.RemoveRange(entities);
        return await SaveChangesAsync().ConfigureAwait(false);
    }

    public async Task<int> ExecuteSqlAsync(FormattableString sql)
    {
        return await coreDbContext.Database.ExecuteSqlInterpolatedAsync(sql).ConfigureAwait(false);
    }
}
If we decide to fight here, then I will definitely not gain victory.
There is also my decision to protect the village, but I’ve already sold away the demon slaying sacred sword in the first place.
If I don’t have it, then I won’t gain an advantage over the demon lord.
However, I never thought I would have another meeting with the demon lord in a place like this, so it was bound to be inevitable.
Who caused a stir in this situation was Dian who just came back from gathering a large quantity of medicinal plants in a basket that he is carrying on his back.
I decide to put away the sword I readied in haste and smooth this situation over for now.
Dian entered the village just like that and went towards his house.
Dang it, I missed out on requesting assistance.
I stare at the demon lord for a while and then sigh.
… Well, I guess there will be less damage if I deal with her instead of leaving her to another person.
I take Demon lord Isvel and return to the storehouse.
This place has also become the resting area for the gatekeeper and there are chairs and a desk prepared here.
I let her sit on the chair on the other side and then I sit down for the interview.
When I asked the full story from Demon lord Isvel, I’ve understood that she was given a similar treatment as me.
She was decided to be the Demon lord since she was born and they continued to have her wage war with the human country, she said.
It seems she came to dream of a free life inside the constantly bound life.
And then, in a conversation she heard by chance, she heard there was a village that welcomes people with hopes of retirement and so she has come to this village apparently.
What is she talking about so suddenly, this girl.
The demon lord said with a loud voice.
I was taken aback and was at a loss for words for a moment.
The demon lord is looking at me with round eyes.
That’s an unpleasant question.
The demon lord is the enemy of humans.
If I could bring her down, then the long lasting war would settle down.
I should manage even by putting my life on the line.
However, that is a subject if I was the me until now.
I, who have thrown away the position of a Hero including my responsibility and abandoned the humans, have no obligation of having to fight the demon lord.
Not to mention this village accepts demons, demihumans and humans.
I have no rights to discriminate