public async Task <MyParentEntity> UpdateAsync(MyParentEntity entity, CancellationToken token)
        {
            int            saveChangesAsyncValue = 0;
            MyParentEntity foundEntity           = await this.entityDbContext.MyParents.FirstOrDefaultAsync(item => item.MyParentKey == entity.MyParentKey, token);

            if (null != foundEntity)
            {
                foundEntity.MyParentName    = entity.MyParentName;
                foundEntity.UpdateDateStamp = entity.UpdateDateStamp == DateTime.MinValue ? DateTime.Now : entity.UpdateDateStamp;
                this.entityDbContext.Entry(foundEntity).State = EntityState.Modified;
                saveChangesAsyncValue = await this.entityDbContext.SaveChangesAsync(token);

                if (ExpectedAddSingleOrUpdateSingleOrDeleteSingleSaveChangesAsyncRowCount != saveChangesAsyncValue)
                {
                    throw new ArgumentOutOfRangeException(string.Format(ErrorMsgExpectedSaveChangesAsyncRowCount, saveChangesAsyncValue), (Exception)null);
                }
            }
            else
            {
                ArgumentOutOfRangeException argEx = new ArgumentOutOfRangeException(string.Format(ErrorMsgPrimaryEntityNotFound, entity.MyParentKey), (Exception)null);
                this.logger.LogError(argEx.Message, argEx);
                throw argEx;
            }

            return(foundEntity);
        }
        public async Task <MyParentEntity> UpdateAsync(MyParentEntity entity, CancellationToken token)
        {
            this.ValidateMyParentEntity(entity);
            MyParentEntity returnItem = await this.myParentDomainData.UpdateAsync(entity, token);

            return(returnItem);
        }
 public static void ShowMyParentEntity(string label, MyParentEntity item)
 {
     if (null != item)
     {
         Console.WriteLine("({0}) MyParentKey='{1}', MyParentName='{2}'", label, item.MyParentKey, item.MyParentName);
     }
 }
        public async Task PerformBasicCrudDemo()
        {
            IEnumerable <MyParentEntity> entities = await this.parentManager.GetAllAsync();

            ParentShower.ShowMyParentEntities("MyParentsGetAllAsync", entities.ToList());
            Console.WriteLine(string.Empty);

            Guid currentMaxKey = entities.Any() ? entities.Max(x => x.MyParentKey) : Guid.NewGuid();

            if (null != entities)
            {
                MyParentEntity firstMyParentEntity = entities.FirstOrDefault();
                MyParentEntity entity = await this.parentManager.GetSingleAsync(firstMyParentEntity.MyParentKey);

                ParentShower.ShowMyParentEntity("GetSingleAsync", entity);
                Console.WriteLine(string.Empty);

                entity = await this.parentManager.GetSingleAsync(Guid.Empty);

                ParentShower.ShowMyParentEntity("MyParentsGetSingleAsync", entity);
                Console.WriteLine(string.Empty);

                if (null != firstMyParentEntity)
                {
                    firstMyParentEntity.MyParentName = firstMyParentEntity.MyParentName.Length > MyParentValidationStringLengthConstants.MyParentNameMaxLength - 10 ? "MyParentName" + Convert.ToString(firstMyParentEntity.MyParentKey) + "Reset" : firstMyParentEntity.MyParentName + "***Edited";
                    MyParentEntity updateReturnValue = await this.parentManager.UpdateAsync(firstMyParentEntity);

                    Console.WriteLine(string.Format("updateReturnValue.MyParentKey='{0}'", updateReturnValue.MyParentKey));

                    entity = await this.parentManager.GetSingleAsync(firstMyParentEntity.MyParentKey);

                    ParentShower.ShowMyParentEntity("MyParentsGetSingleAsync.After.UpdateAsync", entity);
                    Console.WriteLine(string.Empty);
                }

                MyParentEntity newMyParentEntity = new MyParentEntity();
                newMyParentEntity.MyParentKey  = Guid.NewGuid();
                newMyParentEntity.MyParentName = "MyParentName" + Convert.ToString(newMyParentEntity.MyParentKey);
                MyParentEntity addReturnValue = await this.parentManager.AddAsync(newMyParentEntity);

                Console.WriteLine(string.Format("addReturnValue.MyParentKey='{0}'", addReturnValue.MyParentKey));

                entities = await this.parentManager.GetAllAsync();

                ParentShower.ShowMyParentEntities("MyParentsGetAllAsync.After.SingleAddAsync", entities.ToList());
                Console.WriteLine(string.Empty);
            }
        }
        public async Task <MyParentEntity> AddAsync(MyParentEntity entity, CancellationToken token)
        {
            if (entity.UpdateDateStamp == DateTime.MinValue)
            {
                entity.UpdateDateStamp = DateTime.Now;
            }

            this.entityDbContext.MyParents.Add(entity);
            int saveChangesAsyncValue = await this.entityDbContext.SaveChangesAsync(token);

            if (ExpectedAddSingleOrUpdateSingleOrDeleteSingleSaveChangesAsyncRowCount != saveChangesAsyncValue)
            {
                throw new ArgumentOutOfRangeException(string.Format(ErrorMsgExpectedSaveChangesAsyncRowCount, saveChangesAsyncValue), (Exception)null);
            }

            return(entity);
        }
        public async Task <int> DeleteAsync(Guid keyValue, CancellationToken token)
        {
            int            returnValue = 0;
            MyParentEntity foundEntity = await this.entityDbContext.MyParents.FirstOrDefaultAsync(item => item.MyParentKey == keyValue, token);

            if (null != foundEntity)
            {
                this.entityDbContext.Remove(foundEntity);
                returnValue = await this.entityDbContext.SaveChangesAsync(token);

                if (ExpectedAddSingleOrUpdateSingleOrDeleteSingleSaveChangesAsyncRowCount != returnValue)
                {
                    throw new ArgumentOutOfRangeException(string.Format(ErrorMsgExpectedSaveChangesAsyncRowCount, returnValue), (Exception)null);
                }
            }
            else
            {
                ArgumentOutOfRangeException argEx = new ArgumentOutOfRangeException(string.Format(ErrorMsgPrimaryEntityNotFound, keyValue), (Exception)null);
                this.logger.LogError(argEx.Message, argEx);
                throw argEx;
            }

            return(returnValue);
        }
        //// ********************************************************

        public async Task <MyParentEntity> GetSingleAsync(Guid keyValue, CancellationToken token)
        {
            MyParentEntity returnItem = await this.entityDbContext.MyParents.FindAsync(new object[] { keyValue }, token);

            return(returnItem);
        }
        public async Task <MyParentEntity> UpdateAsync(MyParentEntity entity)
        {
            MyParentEntity returnItem = await this.UpdateAsync(entity, CancellationToken.None);

            return(returnItem);
        }
        public async Task <MyParentEntity> GetSingleAsync(Guid keyValue, CancellationToken token)
        {
            MyParentEntity returnItem = await this.myParentDomainData.GetSingleAsync(keyValue, token);

            return(returnItem);
        }
        public async Task <MyParentEntity> GetSingleAsync(Guid keyValue)
        {
            MyParentEntity returnItem = await this.GetSingleAsync(keyValue, CancellationToken.None);

            return(returnItem);
        }
 private void ValidateMyParentEntity(MyParentEntity entity)
 {
     ////new MyParentValidator().ValidateSingle(entity);
 }