Exemple #1
0
        public bool Save(SRStatusEntity model, out string msg)
        {
            msg = string.Empty;
            bool succ = false;
            var  da   = new SrStatusDataAccess(_context);

            succ = da.SaveStatus(model, ref msg);
            return(succ);
        }
Exemple #2
0
        private bool chkDuplicate(SRStatusEntity model, ref string msg)
        {
            msg = string.Empty;
            var x = from a in _context.TB_C_SR_STATUS.AsNoTracking()
                    join b in _context.TB_C_SR_PAGE_STATUS on a.SR_STATUS_ID equals b.SR_STATUS_ID
                    where (model.SRStatusId <= 0 || a.SR_STATUS_ID != model.SRStatusId) &&
                    a.SR_STATUS_CODE == model.SRStatusCode && a.SR_STATUS_NAME == model.SRStatusName
                    select a;

            if (x.Any())
            {
                msg += $"Duplicate SR Status: Code [{model.SRStatusCode}] Name [{model.SRStatusName}].";
            }
            return(msg == string.Empty);
        }
Exemple #3
0
        private SRStatusViewModel loadDataToViewModel(SRStatusEntity st)
        {
            SRStatusViewModel model = new SRStatusViewModel();

            model.SRStatusId   = st.SRStatusId;
            model.SRStatusCode = st.SRStatusCode;
            model.SRStatusName = st.SRStatusName;
            model.SRStateId    = st.SRStateId;
            model.SRState      = st.SRState;

            model.Status   = st.Status;
            model.SendHP   = st.SendHP;
            model.SendRule = st.SendRule;

            model.CreateDate = st.CreateDate;
            model.CreateUser = st.CreateUser;
            model.UpdateDate = st.UpdateDate;
            model.UpdateUser = st.UpdateUser;

            return(model);
        }
Exemple #4
0
        public bool SaveStatus(SRStatusEntity model, ref string msg)
        {
            bool succ = chkDuplicate(model, ref msg);

            if (succ)
            {
                using (DbContextTransaction trans = _context.Database.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted))
                {
                    bool           isEdit = false;
                    DateTime       now    = DateTime.Now;
                    TB_C_SR_STATUS st     = null;
                    succ = false;
                    try
                    {
                        if (model.SRStatusId == 0)
                        {
                            st             = new TB_C_SR_STATUS();
                            st.CREATE_DATE = now;
                            st.CREATE_USER = model.CreateUser.UserId;
                        }
                        else
                        {
                            isEdit = true;
                            st     = _context.TB_C_SR_STATUS.Where(r => r.SR_STATUS_ID == model.SRStatusId).Single();
                            if (st == null)
                            {
                                msg = $"SR Status ID: {model.SRStatusId} does not exist in database.";
                                trans.Rollback();
                                return(false);
                            }
                        }

                        st.SR_STATUS_CODE       = model.SRStatusCode;
                        st.SR_STATUS_NAME       = model.SRStatusName;
                        st.SR_STATE_ID          = model.SRStateId;
                        st.STATUS               = model.Status;
                        st.SR_STATUS_SEND_TO_HP = model.SendHP;
                        st.SR_STATUS_RULE       = model.SendRule;

                        st.UPDATE_DATE = now;
                        st.UPDATE_USER = model.UpdateUser.UserId;

                        if (!isEdit)
                        {
                            _context.TB_C_SR_STATUS.Add(st);
                        }
                        else
                        {
                            SetEntryStateModified(st);
                        }

                        Save();

                        #region ยกเลิก Page_Status

                        ////Save Page Item
                        //List<int> delList = null;
                        //List<int> updList = null;
                        //List<int> addList = null;
                        //if (model.Old_SRPageIdList != null)
                        //{
                        //    delList = (from o in model.Old_SRPageIdList
                        //              join n in model.SRPageIdList on o equals n into grp
                        //              from d in grp.DefaultIfEmpty()
                        //              where d == 0
                        //              select o).ToList();

                        //    updList = (from o in model.Old_SRPageIdList
                        //              join n in model.SRPageIdList on o equals n
                        //              select o).ToList();

                        //    addList = (from n in model.SRPageIdList
                        //               join o in model.Old_SRPageIdList on n equals o into grp
                        //               from a in grp.DefaultIfEmpty()
                        //               where a == 0
                        //               select n).ToList();
                        //}
                        //else
                        //{
                        //    delList = new List<int>() { };
                        //    updList = new List<int>() { };
                        //    addList = model.SRPageIdList.AsEnumerable().ToList();
                        //}

                        //foreach (var del in delList)
                        //{
                        //    var d = _context.TB_C_SR_PAGE_STATUS.SingleOrDefault(x => x.SR_STATUS_ID == st.SR_STATUS_ID && x.SR_PAGE_ID == del);
                        //    if (d == null)
                        //    {
                        //        msg = $"Can not delete TB_C_SR_PAGE_STATUS ID [{del}] does not exist in database.";
                        //        trans.Rollback();
                        //        return false;
                        //    }
                        //    _context.TB_C_SR_PAGE_STATUS.Remove(d);
                        //}

                        //foreach (var upd in updList)
                        //{
                        //    var u = _context.TB_C_SR_PAGE_STATUS.SingleOrDefault(x => x.SR_STATUS_ID == st.SR_STATUS_ID && x.SR_PAGE_ID == upd);
                        //    if (u == null)
                        //    {
                        //        msg = $"Can not update TB_C_SR_PAGE_STATUS ID [{upd}] does not exist in database.";
                        //        trans.Rollback();
                        //        return false;
                        //    }
                        //    u.UPDATE_DATE = now;
                        //    u.UPDATE_USER = model.UpdateUser.UserId;
                        //    SetEntryStateModified(u);
                        //}

                        //foreach (var add in addList)
                        //{
                        //    var a = new TB_C_SR_PAGE_STATUS();
                        //    a.CREATE_DATE = now;
                        //    a.CREATE_USER = model.CreateUser.UserId;
                        //    a.UPDATE_DATE = now;
                        //    a.UPDATE_USER = model.UpdateUser.UserId;

                        //    a.SR_STATUS_ID = st.SR_STATUS_ID;
                        //    a.SR_PAGE_ID = add;
                        //    _context.TB_C_SR_PAGE_STATUS.Add(a);
                        //}

                        //Save();

                        #endregion

                        trans.Commit();
                        succ = true;
                    }
                    catch (Exception ex)
                    {
                        trans.Rollback();
                        msg = ex.ToString();
                    }
                }
            }
            return(succ);
        }