public async Task fnDeleteAsync <T>(T argObject) where T : BaseEntity, new()
        {
            try
            {
                using (var lcContext = new ADSReminderDBContext())
                {
                    var lcItem = await lcContext.Set <T>().Where(a => a.Id == argObject.Id).DeleteAsync();

                    //if (lcItem == null)
                    //    return;
                    //lcContext.Entry<T>(lcItem).State = EntityState.Deleted;
                    //await lcContext.Set<T>().RemoveAsync
                    await lcContext.SaveChangesAsync();
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <T> fnUpdateAsync <T>(T argObject) where T : BaseEntity, new()
        {
            try
            {
                using (var lcContext = new ADSReminderDBContext())
                {
                    lcContext.Entry(argObject).State = EntityState.Modified;
                    await lcContext.SaveChangesAsync();

                    return(argObject);
                }
            }
            catch (DbEntityValidationException ex)
            {
                throw fnValidateException(ex);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <T> fnInsertAsync <T>(T argObject) where T : BaseEntity, new()
        {
            try
            {
                using (var lcContext = new ADSReminderDBContext())
                {
                    lcContext.Set <T>().Add(argObject);
                    await lcContext.SaveChangesAsync();

                    return(argObject);
                }
            }
            catch (DbEntityValidationException ex)
            {
                throw fnValidateException(ex);
            }
            catch (Exception)
            {
                throw;
            }
        }