Example #1
0
 /// <summary>
 /// Save
 /// </summary>
 /// <param name="model">List of group setting model</param>
 /// <returns>ResponseStatusCodeHelper</returns>
 public ResponseStatusCodeHelper Save(List <GroupSettingModel> model)
 {
     try
     {
         using (var _context = new TDHEntities())
         {
             using (var trans = _context.Database.BeginTransaction())
             {
                 try
                 {
                     foreach (var item in model)
                     {
                         MN_GROUP_SETTING _md = _context.MN_GROUP_SETTING.FirstOrDefault(m => m.id == item.ID && !m.deleted);
                         if (_md == null)
                         {
                             throw new DataAccessException(FILE_NAME, "Save", item.CreateBy);
                         }
                         _md.percent_setting = item.PercentSetting;
                         _md.update_by       = item.UpdateBy;
                         _md.update_date     = DateTime.Now;
                         _context.MN_GROUP_SETTING.Attach(_md);
                         _context.Entry(_md).State = EntityState.Modified;
                         //
                         if (_md.year_month % 100 == DateTime.Now.Month)
                         {
                             var _gr = _context.MN_GROUP.FirstOrDefault(m => m.id == _md.group_id);
                             _gr.percent_setting = _md.percent_setting;
                             _context.MN_GROUP.Attach(_gr);
                             _context.Entry(_gr).State = EntityState.Modified;
                         }
                         _context.SaveChanges();
                     }
                     trans.Commit();
                 }
                 catch (DataAccessException fieldEx)
                 {
                     trans.Rollback();
                     throw fieldEx;
                 }
                 catch (Exception ex)
                 {
                     trans.Rollback();
                     throw ex;
                 }
             }
         }
     }
     catch (DataAccessException fieldEx)
     {
         throw fieldEx;
     }
     catch (Exception ex)
     {
         throw new ServiceException(FILE_NAME, "Save", model[0].CreateBy, ex);
     }
     Notifier.Notification(model[0].CreateBy, Message.UpdateSuccess, Notifier.TYPE.Success);
     return(ResponseStatusCodeHelper.Success);
 }
Example #2
0
 /// <summary>
 /// Save all group by month
 /// </summary>
 /// <param name="yearMonth">Year month</param>
 /// <param name="userID">The user identifier</param>
 /// <returns>ResponseStatusCodeHelper</returns>
 public ResponseStatusCodeHelper Save(decimal yearMonth, Guid userID)
 {
     try
     {
         using (var _context = new TDHEntities())
         {
             var _list = _context.MN_GROUP.Where(m => !m.deleted).ToList();
             using (var trans = _context.Database.BeginTransaction())
             {
                 try
                 {
                     foreach (var item in _list)
                     {
                         //Check if exists
                         var _stItem = _context.MN_GROUP_SETTING.FirstOrDefault(it => it.group_id == item.id && it.year_month == yearMonth && it.create_by == userID);
                         if (_stItem != null)
                         {
                             // Don't save new setting items if current is exists
                             continue;
                         }
                         MN_GROUP_SETTING _st = new MN_GROUP_SETTING()
                         {
                             id              = Guid.NewGuid(),
                             group_id        = item.id,
                             year_month      = yearMonth,
                             percent_current = 0,
                             percent_setting = 0,
                             money_current   = 0,
                             money_setting   = 0,
                             create_by       = userID,
                             create_date     = DateTime.Now
                         };
                         _context.MN_GROUP_SETTING.Add(_st);
                         _context.Entry(_st).State = EntityState.Added;
                         _context.SaveChanges();
                     }
                     trans.Commit();
                 }
                 catch (Exception ex)
                 {
                     trans.Rollback();
                     throw ex;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         throw new ServiceException(FILE_NAME, "Save", userID, ex);
     }
     return(ResponseStatusCodeHelper.Success);
 }
Example #3
0
 /// <summary>
 /// Get item
 /// </summary>
 /// <param name="model">Group setting model</param>
 /// <returns>GroupSettingModel</returns>
 public GroupSettingModel GetItemByID(GroupSettingModel model)
 {
     try
     {
         using (var _context = new TDHEntities())
         {
             MN_GROUP_SETTING _md = _context.MN_GROUP_SETTING.FirstOrDefault(m => m.id == model.ID && !m.deleted && m.create_by == model.CreateBy);
             if (_md == null)
             {
                 throw new DataAccessException(FILE_NAME, "GetItemByID", model.CreateBy);
             }
             var _group = _context.MN_GROUP.FirstOrDefault(m => m.id == _md.group_id);
             return(new GroupSettingModel()
             {
                 ID = _md.id,
                 GroupID = _md.group_id,
                 GroupName = _group.name,
                 YearMonth = _md.year_month,
                 PercentCurrent = _md.percent_current,
                 PercentSetting = _md.percent_setting,
                 MoneyCurrent = _md.money_current,
                 MoneyCurrentString = _md.money_current.NumberToString(),
                 MoneySetting = _md.money_setting,
                 MoneySettingString = _md.money_setting.NumberToString()
             });
         }
     }
     catch (DataAccessException fieldEx)
     {
         throw fieldEx;
     }
     catch (Exception ex)
     {
         throw new ServiceException(FILE_NAME, "GetItemByID", model.CreateBy, ex);
     }
 }