Ejemplo n.º 1
0
 internal virtual CoreResult DeleteBase(KeyType primaryKey, int userID)
 {
     try
     {
         if (mossHospitalEntities == null || !CheckAutoDetectChanges(mossHospitalEntities))
         {
             throw new ArgumentNullException(string.Format("\"MossHospitalEntities\": NULL hoặc \"AutoDetectChanges\" = \"false\"."));
         }
         else
         {
             var model = mossHospitalEntities.Set <T>().Find(primaryKey);
             if (model != null)
             {
                 if (DeleteTemp)
                 {
                     GetValuesUpdateWhenDelete();
                     valuesDeletes.Add("userIDUpdated", userID);
                     SetValuesDelete(model);
                     mossHospitalEntities.Set <T>().Attach(model);
                     mossHospitalEntities.Entry <T>(model).State = EntityState.Modified;
                     var result = DbSaveChanges();
                     return(new CoreResult {
                         StatusCode = result, Message = GetMessageByCoreStatusCode(result, ActionType.Delete), Data = primaryKey
                     });
                 }
                 else
                 {
                     mossHospitalEntities.Set <T>().Attach(model);
                     mossHospitalEntities.Entry <T>(model).State = EntityState.Deleted;
                     var result = DbSaveChanges();
                     return(new CoreResult {
                         StatusCode = result, Message = GetMessageByCoreStatusCode(result, ActionType.Delete), Data = primaryKey
                     });
                 }
             }
             else
             {
                 return(new CoreResult {
                     StatusCode = CoreStatusCode.NotFound, Message = GetMessageByCoreStatusCode(CoreStatusCode.NotFound, ActionType.Delete), Data = primaryKey
                 });
             }
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
 internal Tuple <CoreStatusCode, T> SaveChange(KeyType id, T item)
 {
     try
     {
         using (var db = new  MossHospitalEntities())
         {
             var model = db.Set <T>().Find(id);
             if (model != null)
             {
                 //db.Entry<T>(model).State = EntityState.Detached;
                 db.Entry <T>(item).State = EntityState.Modified;
                 int counter = db.SaveChanges();
                 db.Entry <T>(item).GetDatabaseValues();
                 if (_useCache)
                 {
                     if (counter > 0)
                     {
                         this.RefreshCache();
                         return(Tuple.Create(CoreStatusCode.OK, item));
                     }
                     else
                     {
                         return(Tuple.Create(CoreStatusCode.Failed, item));
                     }
                 }
                 return(Tuple.Create(counter >= 0 ? CoreStatusCode.OK : CoreStatusCode.Failed, item));
             }
             else
             {
                 return(Tuple.Create(CoreStatusCode.NotFound, item));
             }
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }