private void SetChanges(VIRTUAL_PLANT_MAP origin, VIRTUAL_PLANT_MAP data, string userId)
        {
            var changesData = new Dictionary <string, bool>();

            changesData.Add("COMPANY_ID", origin.COMPANY_ID.Equals(data.COMPANY_ID));
            changesData.Add("IMPORT_PLANT_ID", origin.IMPORT_PLANT_ID.Equals(data.IMPORT_PLANT_ID));
            changesData.Add("EXPORT_PLANT_ID", origin.EXPORT_PLANT_ID.Equals(data.EXPORT_PLANT_ID));
            changesData.Add("IS_DELETED", origin.IS_DELETED.Equals(data.IS_DELETED));


            foreach (var listChange in changesData)
            {
                if (!listChange.Value)
                {
                    var changes = new CHANGES_HISTORY
                    {
                        FORM_TYPE_ID  = Core.Enums.MenuList.HeaderFooter,
                        FORM_ID       = data.VIRTUAL_PLANT_MAP_ID.ToString(),
                        FIELD_NAME    = listChange.Key,
                        MODIFIED_BY   = userId,
                        MODIFIED_DATE = DateTime.Now
                    };
                    switch (listChange.Key)
                    {
                    case "COMPANY_ID":
                        changes.OLD_VALUE = origin.COMPANY_ID;
                        changes.NEW_VALUE = data.COMPANY_ID;
                        break;

                    case "EXPORT_PLANT_ID":
                        changes.OLD_VALUE = origin.EXPORT_PLANT_ID;
                        changes.NEW_VALUE = data.EXPORT_PLANT_ID;
                        break;

                    case "IMPORT_PLANT_ID":
                        changes.OLD_VALUE = origin.IMPORT_PLANT_ID;
                        changes.NEW_VALUE = data.IMPORT_PLANT_ID;
                        break;

                    case "IS_DELETED":
                        changes.OLD_VALUE = origin.IS_DELETED.HasValue ? origin.IS_DELETED.Value.ToString() : "NULL";
                        changes.NEW_VALUE = data.IS_DELETED.HasValue ? data.IS_DELETED.Value.ToString() : "NULL";
                        break;
                    }
                    _changesHistoryBll.AddHistory(changes);
                }
            }
        }
        public bool Save(VIRTUAL_PLANT_MAP virtualPlant)
        {
            bool success = false;
            var  isexist = _repository.Get(x => x.COMPANY_ID == virtualPlant.COMPANY_ID && x.EXPORT_PLANT_ID == virtualPlant.EXPORT_PLANT_ID && x.IMPORT_PLANT_ID == virtualPlant.IMPORT_PLANT_ID).Count() > 0;

            if (!isexist && virtualPlant.VIRTUAL_PLANT_MAP_ID == 0)
            {
                _repository.Insert(virtualPlant);
                success = true;
            }
            else if (!isexist)
            {
                _repository.Update(virtualPlant);
                success = true;
            }

            //_repository.InsertOrUpdate(virtualPlant);
            _uow.SaveChanges();
            return(success);
        }
        private void SetChanges(VIRTUAL_PLANT_MAP origin, VirtualMappingPlantEditViewModel data, string userId)
        {
            var changesData = new Dictionary <string, bool>();

            changesData.Add("COMPANY_ID", origin.COMPANY_ID.Equals(data.CompanyId));
            changesData.Add("EXPORT_PLANT", origin.EXPORT_PLANT_ID.Equals(data.ExportPlantId));
            changesData.Add("IMPORT_PLANT", origin.IMPORT_PLANT_ID.Equals(data.ImportPlantId));

            foreach (var listChange in changesData)
            {
                if (listChange.Value == false)
                {
                    var changes = new CHANGES_HISTORY
                    {
                        FORM_TYPE_ID  = Core.Enums.MenuList.VirtualMappingPlant,
                        FORM_ID       = data.VirtualMapId.ToString(),
                        FIELD_NAME    = listChange.Key,
                        MODIFIED_BY   = userId,
                        MODIFIED_DATE = DateTime.Now
                    };
                    switch (listChange.Key)
                    {
                    case "COMPANY_ID":
                        changes.OLD_VALUE = origin.COMPANY_ID;
                        changes.NEW_VALUE = data.CompanyId;
                        break;

                    case "EXPORT_PLANT":
                        changes.OLD_VALUE = origin.EXPORT_PLANT_ID;
                        changes.NEW_VALUE = data.ExportPlantId;
                        break;

                    case "IMPORT_PLANT":
                        changes.OLD_VALUE = origin.IMPORT_PLANT_ID;
                        changes.NEW_VALUE = data.ImportPlantId;
                        break;
                    }
                    _changesHistoryBLL.AddHistory(changes);
                }
            }
        }