/// <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); }
/// <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); }
/// <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); } }