Esempio n. 1
0
        public void DoPOProfileAction(enumActionItem action, POEntity item)
        {
            DatabaseClass <POEntity> dbc = new DatabaseClass <POEntity>();

            switch (action)
            {
            case enumActionItem.Edit:
                dbc.DoDBAction(item, enumActionItem.Edit);
                break;

            case enumActionItem.Insert:
                dbc.DoDBAction(item, enumActionItem.Insert);
                break;

            case enumActionItem.Delete:
                dbc.DoDBAction(item, enumActionItem.Delete, item.POID);
                break;
            }
        }
Esempio n. 2
0
        public void DoDBAction(T item, enumActionItem action, params object[] keyValues)
        {
            var        entry = ef.Entry <T>(item);
            IDbSet <T> DbSet;

            DbSet = ef.Set <T>();
            if (entry.State == System.Data.Entity.EntityState.Detached)
            {
                if (keyValues.Count() > 0)
                {
                    T attachedEntity = DbSet.Find(keyValues);

                    if (attachedEntity != null)
                    {
                        var attachedEntry = ef.Entry(attachedEntity);
                        switch (action)
                        {
                        case enumActionItem.Delete:
                            attachedEntry.State = EntityState.Deleted;
                            break;

                        case enumActionItem.Edit:
                            attachedEntry.CurrentValues.SetValues(item);
                            break;
                        }
                    }
                    else
                    {
                        switch (action)
                        {
                        case enumActionItem.Insert:
                            entry.State = EntityState.Added;
                            break;

                        case enumActionItem.Delete:
                            entry.State = EntityState.Deleted;
                            break;

                        case enumActionItem.Edit:
                            entry.State = EntityState.Modified;
                            break;
                        }
                    }
                }
                else
                {
                    switch (action)
                    {
                    case enumActionItem.Insert:
                        entry.State = EntityState.Added;
                        break;

                    case enumActionItem.Delete:
                        entry.State = EntityState.Deleted;
                        break;

                    case enumActionItem.Edit:
                        entry.State = EntityState.Modified;
                        break;
                    }
                }
            }
            ef.SaveChanges();
        }