public async Task <int> AddChangePlanItemAsync(ChangePlanItem changePlanItem)
        {
            if (!await _dbContext.ChangePlanItems.AnyAsync(o => o.AssetId == changePlanItem.AssetId &&
                                                           o.ChangePlanId == changePlanItem.ChangePlanId &&
                                                           changePlanItem.ExecutionType.Equals("update")))
            {
                _dbContext.ChangePlanItems.Add(changePlanItem);
                return(await _dbContext.SaveChangesAsync());
            }

            var updatedChangePlan = await _dbContext.ChangePlanItems
                                    .Where(x => x.AssetId == changePlanItem.AssetId && x.ChangePlanId == changePlanItem.ChangePlanId)
                                    .AsNoTracking()
                                    .SingleOrDefaultAsync();

            updatedChangePlan.NewData = changePlanItem.NewData;

            return(await UpdateChangePlanItemAsync(updatedChangePlan));
        }
 public async Task <int> DeleteChangePlanItemAsync(ChangePlanItem changePlanItem)
 {
     _dbContext.ChangePlanItems.Remove(changePlanItem);
     return(await _dbContext.SaveChangesAsync());
 }
 public async Task <int> UpdateChangePlanItemAsync(ChangePlanItem changePlanItem)
 {
     _dbContext.ChangePlanItems.Update(changePlanItem);
     return(await _dbContext.SaveChangesAsync());
 }