Beispiel #1
0
        public ActionResult Edit(ConfigurationCreateViewModel model)
        {
            try
            {
                var reffID = model.ConfigModel.REFF_ID;
                var config = configService.GetConfigDataByID(reffID);
                var data   = new SYS_REFFERENCES();

                data.REFF_ID    = reffID;
                data.REFF_TYPE  = config.REFF_TYPE;
                data.REFF_NAME  = config.REFF_NAME;
                data.REFF_KEYS  = config.REFF_KEYS;
                data.REFF_VALUE = model.ConfigModel.REFF_VALUE;
                //data.REFF_VALUE = model.ConfigValue;
                data.CREATED_BY        = config.CREATED_BY;
                data.CREATED_DATE      = config.CREATED_DATE;
                data.LASTMODIFIED_BY   = CurrentUser.USER_ID;
                data.LASTMODIFIED_DATE = DateTime.Now;
                data.IS_ACTIVE         = model.ConfigModel.IS_ACTIVE;

                configService.UpdateSysReff(data, (int)Enums.MenuList.Configuration, (int)Enums.ActionType.Modified, (int)CurrentUser.UserRole, CurrentUser.USER_ID);
                AddMessageInfo("Success Update Configuration", Enums.MessageInfoType.Success);
            }
            catch (Exception ex)
            {
                AddMessageInfo("Save Failed : " + ex.Message, Enums.MessageInfoType.Error);
            }

            return(RedirectToAction("Index"));
        }
Beispiel #2
0
        /// <summary> Part of Changes Log Step which Mark All Available Changes </summary>
        /// <param name="old"></param>
        /// <param name="updated"></param>
        /// <returns></returns>
        private Dictionary <string, string[]> GetAllChanges(SYS_REFFERENCES old, SYS_REFFERENCES updated)
        {
            try
            {
                var changes = new Dictionary <string, string[]>();
                var columns = new string[]
                {
                    "REFF_NAME",
                    "REFF_TYPE",
                    "REFF_VALUE",
                    "IS_ACTIVE"
                };
                var oldProps = new Dictionary <string, object>();
                var props    = new Dictionary <string, object>();

                foreach (var prop in updated.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
                {
                    props.Add(prop.Name, prop.GetValue(updated, null));
                    if (old != null)
                    {
                        oldProps.Add(prop.Name, prop.GetValue(old, null));
                    }
                    else
                    {
                        oldProps.Add(prop.Name, null);
                    }
                }
                foreach (var item in props)
                {
                    var oldValue = (oldProps[item.Key] != null) ? oldProps[item.Key].ToString() : "N/A";
                    var newValue = (props[item.Key] != null) ? props[item.Key].ToString() : "N/A"; // updated value
                    //  var newValue = (item.Value != null) ? item.ToString() : "N/A"; // updated field and value

                    if (!columns.Contains(item.Key))
                    {
                        continue;
                    }

                    if (oldValue.Trim().ToUpper() != newValue.Trim().ToUpper())
                    {
                        changes.Add(item.Key, new string[] { oldValue, newValue });
                    }
                }
                return(changes);
            }
            catch (Exception ex)
            {
                throw this.HandleException("Exception occured on Configuration Service. See Inner Exception property to see details", ex);
            }
        }
Beispiel #3
0
 /// <summary> Part of Changes Log Step which Set All Changed Field into Table Changes Log </summary>
 /// <param name="context"></param>
 /// <param name="data"></param>
 /// <param name="changes"></param>
 /// <param name="formType"></param>
 /// <param name="actionType"></param>
 /// <param name="role"></param>
 /// <param name="actor"></param>
 /// <param name="comment"></param>
 private void LogsActivity(EMSDataModel context, SYS_REFFERENCES data, Dictionary <string, string[]> changes, int formType, int actionType, int role, string actor, string comment = null)
 {
     try
     {
         foreach (var map in changes)
         {
             refService.AddChangeLog(context, formType, data.REFF_ID.ToString(), map.Key, map.Value[0], map.Value[1], actor, DateTime.Now);
         }
         context.SaveChanges();
     }
     catch (Exception ex)
     {
         throw this.HandleException("Exception occured on Configuration Service. See Inner Exception property to see details", ex);
     }
 }
Beispiel #4
0
 /// <summary> Update Certain Field in Sys References also Create Changes Log </summary>
 /// <param name="data"></param>
 /// <param name="formType"></param>
 /// <param name="actionType"></param>
 /// <param name="role"></param>
 /// <param name="user"></param>
 /// <returns></returns>
 public SYS_REFFERENCES UpdateSysReff(SYS_REFFERENCES data, int formType, int actionType, int role, string user)
 {
     using (var context = new EMSDataModel())
     {
         using (var transaction = context.Database.BeginTransaction())
         {
             try
             {
                 var old = context.SYS_REFFERENCES.Find(data.REFF_ID);
                 Dictionary <string, string[]> changes = GetAllChanges(old, data);
                 context.Entry(old).CurrentValues.SetValues(data);
                 context.SaveChanges();
                 LogsActivity(context, data, changes, formType, actionType, role, user);
                 transaction.Commit();
             }
             catch (Exception ex)
             {
                 transaction.Rollback();
                 throw this.HandleException("Exception occured on Configuration Service. See Inner Exception property to see details", ex);
             }
         }
     }
     return(data);
 }
Beispiel #5
0
        /// <summary> Create New Entry of Configuration in Sys References also Create Changes Log </summary>
        /// <param name="data"></param>
        /// <param name="formType"></param>
        /// <returns></returns>
        public SYS_REFFERENCES CreateSysReff(SYS_REFFERENCES data, int formType, int actionType, int role, string user)
        {
            using (var context = new EMSDataModel())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        context.SYS_REFFERENCES.Add(data);
                        context.SaveChanges();

                        var changes = GetAllChanges(null, data);
                        LogsActivity(context, data, changes, formType, actionType, role, user);
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw this.HandleException("Exception occured on Configuration Service. See Inner Exception property to see details", ex);
                    }
                }
            }
            return(data);
        }
Beispiel #6
0
        public ActionResult Create(ConfigurationCreateViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    AddMessageInfo("Data not complete. Please fill required field !", Enums.MessageInfoType.Error);
                    return(RedirectToAction("Create"));
                }
                else
                {
                    var data = new SYS_REFFERENCES();

                    if (model.ConfigText == "UPLOAD_FILE_LIMIT" || model.ConfigText == "APPROVAL_STATUS" || model.ConfigText == "HINT_COMPONENT" || model.ConfigText == "REGULATION_BRAND_REGISTRATION" || model.ConfigText == "REGULATION_EXCISE_CREDIT")
                    {
                        var config = configService.FindDataByType(model.ConfigText);

                        if (model.ConfigText == "APPROVAL_STATUS" || model.ConfigText == "HINT_COMPONENT")
                        {
                            var tempConfig = configService.FindDataByName(model.ConfigName);
                            data.REFF_ID   = tempConfig.REFF_ID;
                            data.REFF_TYPE = tempConfig.REFF_TYPE;
                            data.REFF_NAME = tempConfig.REFF_NAME;
                            data.REFF_KEYS = tempConfig.REFF_KEYS;
                        }

                        if (model.ConfigText == "UPLOAD_FILE_LIMIT" || model.ConfigText == "REGULATION_BRAND_REGISTRATION" || model.ConfigText == "REGULATION_EXCISE_CREDIT")
                        {
                            data.REFF_ID   = config.REFF_ID;
                            data.REFF_TYPE = config.REFF_TYPE;
                            data.REFF_NAME = config.REFF_NAME;
                            data.REFF_KEYS = config.REFF_KEYS;
                        }

                        data.REFF_VALUE        = model.ConfigValue;
                        data.IS_ACTIVE         = model.IsActive;
                        data.CREATED_BY        = config.CREATED_BY;
                        data.CREATED_DATE      = config.CREATED_DATE;
                        data.LASTMODIFIED_BY   = CurrentUser.USER_ID;
                        data.LASTMODIFIED_DATE = DateTime.Now;

                        configService.UpdateSysReff(data, (int)Enums.MenuList.Configuration, (int)Enums.ActionType.Modified, (int)CurrentUser.UserRole, CurrentUser.USER_ID);
                        AddMessageInfo("Save Configuration Succeed", Enums.MessageInfoType.Success);
                    }
                    else
                    {
                        data.REFF_TYPE         = model.ConfigText;
                        data.REFF_NAME         = model.ConfigText;
                        data.REFF_KEYS         = model.ConfigText;
                        data.REFF_VALUE        = model.ConfigValue;
                        data.CREATED_BY        = CurrentUser.USER_ID;
                        data.CREATED_DATE      = DateTime.Now;
                        data.LASTMODIFIED_BY   = CurrentUser.USER_ID;
                        data.LASTMODIFIED_DATE = DateTime.Now;
                        data.IS_ACTIVE         = model.IsActive;

                        configService.CreateSysReff(data, (int)Enums.MenuList.Configuration, (int)Enums.ActionType.Created, (int)CurrentUser.UserRole, CurrentUser.USER_ID);
                        AddMessageInfo("Save Configuration Succeed", Enums.MessageInfoType.Success);
                    }
                }
            }
            catch (Exception ex)
            {
                AddMessageInfo("Save Failed : " + ex.Message, Enums.MessageInfoType.Error);
            }
            return(RedirectToAction("Index"));
        }