예제 #1
0
        //1. Get database
        public GridBuilderModel GetGridBuilderInfo(string parameter)
        {
            if (!string.IsNullOrEmpty(parameter))
            {
                var splitPara = parameter.Split(',');
                if (splitPara.Length > 1)
                {
                    Guid userId;
                    Guid.TryParse(splitPara[0], out userId);
                    if (userId != Guid.Empty)
                    {
                        if (!string.IsNullOrEmpty(splitPara[1]))
                        {
                            var paraModel = new GridBuilderModel() { UserID = userId, GridControlName = splitPara[1], IsGet = true};
                            var service = new RestServiceClient<GridBuilderModel>(UserLogin);
                            var model = service.Post(_hrm_Hre_Service, "api/Sys_ColumnMode", paraModel);
                            if (model != null && !string.IsNullOrEmpty(model.StringXml))
                            {
                                model.StringXml = model.StringXml;
                                model.ID = model.ID;
                                model = GridBuilder(model, false);
                                return model;
                            }
                        }
                    }
                }
            }

            return null;
        }
예제 #2
0
        public GridBuilderModel Post(GridBuilderModel model)
        {
            if (model != null)
            {
                ActionService service = new ActionService(UserLogin);
                List<object> lstObj = new List<object>() { model.UserID, model.GridControlName };
                var status = string.Empty;
                var entity = service.GetDataByListParameter<Sys_ColumnModeEntity>(lstObj, ConstantSql.hrm_sys_sp_get_ColumnMode, ref status);
                model.ActionStatus = status;
                if (entity != null && model.IsGet)
                {
                    model = entity.CopyData<GridBuilderModel>();
                    model.StringXml = entity.ColumnMode;
                    return model;
                }

                if (!string.IsNullOrEmpty(model.StringXml))
                {
                    XmlDocument doc = JsonConvert.DeserializeXmlNode(model.StringXml);
                    var baseService = new BaseService();
                    Sys_ColumnModeEntity newEntity = new Sys_ColumnModeEntity()
                    {
                        UserInfoID = model.UserID,
                        GridControlName = model.GridControlName,
                        ColumnMode = doc.InnerXml + "|" + model.PageSize
                    };
                    if (entity != null)
                    {
                        newEntity.ID = entity.ID;
                        baseService.Edit<Sys_ColumnModeEntity>(newEntity);
                    }
                    else
                    {
                        baseService.Add<Sys_ColumnModeEntity>(newEntity);
                    }

                    return model;
                }
            }
            return model;
        }
예제 #3
0
        //public GridBuilderModel Put(GridBuilderModel model)
        //{
        //    if (model != null)
        //    {
        //        if (model.UserID != Guid.Empty && !string.IsNullOrEmpty(model.GridControlName))
        //        {
        //            ActionService service = new ActionService(UserLogin);
        //            List<object> lstObj = new List<object>() { model.UserID, model.GridControlName };
        //            var status = string.Empty;
        //            var entity = service.GetDataByListParameter<Sys_ColumnModeEntity>(lstObj,
        //                ConstantSql.hrm_sys_sp_get_ColumnMode, ref status);
        //            if (entity != null)
        //            {
        //                model = entity.CopyData<GridBuilderModel>();
        //                model.StringXml = entity.ColumnMode;
        //            }
        //            model.ActionStatus = status;
        //            return model;
        //        }
        //    }

        //    return null;
        //}
        public GridBuilderModel DeleteOrRemove(string id)
        {
            var model = new GridBuilderModel();
            if (!string.IsNullOrEmpty(id))
            {
                try
                {
                    var idItem = id.Split(',');
                    var userId = idItem[0];
                    var gridName = idItem[1];
                    var service = new BaseService();
                    if (userId != null && gridName != null && gridName != "" && userId != "")
                    {
                        model.ActionStatus = service.DeleteColumMode(new Guid(userId), gridName);
                    }
                }
                catch (Exception ex)
                {
                    model.ActionStatus = NotificationType.Error + "," + ex.Message;
                }
            }
            return model;
        }
예제 #4
0
 public GridBuilderModel GridBuilder(GridBuilderModel model, bool isDeser)
 {
     if (model != null && !string.IsNullOrEmpty(model.StringXml))
     {
         var columnMode = model.StringXml;
         XmlDocument doc = new XmlDocument();
         if (!isDeser)
         {
             var splitStringXml = model.StringXml.Split('|');
             columnMode = splitStringXml[0].ToString();
             if (splitStringXml.Length > 1)
             {
                 var strPageSize = splitStringXml[1].ToString();
                 var pageSize = 0;
                 int.TryParse(strPageSize, out pageSize);
                 model.PageSize = pageSize;
             }
             //Chuyển xml thành json để xử lý ajax
             doc.LoadXml(columnMode);
             model.StringXml = JsonConvert.SerializeXmlNode(doc);
         }
         else
         {
             doc = JsonConvert.DeserializeXmlNode(columnMode);
         }
         //Chuyển xml thành data table để xử lý hiển thị colum trên popup
         DataSet ds = new DataSet();
         var reader = new XmlNodeReader(doc);
         ds.ReadXml(reader);
         if (ds.Tables.Count > 0)
         {
             var table = ds.Tables[0];
             var listValueFields = new List<string>(); 
             var listLockeFields = new List<string>();
             var listGroupFields = new List<string>();
             var listSizeFields = new Dictionary<string, int>();
             var listDisplayFields = new Dictionary<string, string>();
             var listFilterFields = new Dictionary<string, bool>();
             DataColumnCollection columns = table.Columns;
             for (int i = 0; i < table.Rows.Count; i++)
             {
                 if (columns.Contains("ColumnName"))
                 {
                     var colum = table.Rows[i]["ColumnName"].ToString();
                     if (columns.Contains("Width"))
                     {
                         var value = table.Rows[i]["Width"].ToString();
                         if (!string.IsNullOrEmpty(value))
                         {
                             var width = int.Parse(value);
                             listSizeFields.Add(colum, width);
                         }
                     }
                     if (columns.Contains("Locke"))
                     {
                         var locke = bool.Parse(table.Rows[i]["Locke"].ToString());
                         if (locke)
                         {
                             listLockeFields.Add(colum);
                         }
                     }
                     if (columns.Contains("Group"))
                     {
                         var group = bool.Parse(table.Rows[i]["Group"].ToString());
                         if (group)
                         {
                             listGroupFields.Add(colum);
                         }
                     }
                     if (columns.Contains("Filter"))
                     {
                         var filter = bool.Parse(table.Rows[i]["Filter"].ToString());
                         listFilterFields.Add(colum, filter);
                     }
                     listValueFields.Add(colum);
                     listDisplayFields.Add(colum, colum.TranslateString());
                 }
             }
             model.ValueFields = listValueFields.ToArray();
             model.SizeFields = listSizeFields;
             model.DisplayFields = listDisplayFields;
             model.LockedFields = listLockeFields.ToArray();
             model.GroupFields = listGroupFields.ToArray();
             model.DisplayFields = listDisplayFields;
             model.FilterFields = listFilterFields;
         }
     }
     return model;
 }
예제 #5
0
        public GridBuilderModel PopUpChangeColum(GridBuilderModel model, Type objType)
        {
            if (model != null)
            {
                model = GridBuilder(model, true);
                var listValueFields = model.ValueFields;
                var properties = objType.GetProperties();
                var columns = new Dictionary<string, string>();
                foreach (var property in properties)
                {
                    if (listValueFields == null || !listValueFields.Contains(property.Name))
                    {
                        columns.Add(property.Name, property.Name.TranslateString());
                    }
                }

                model.Columns = columns;
            }
            return model;
        }
예제 #6
0
        public ActionResult Index(GridBuilderModel model)
        {
            if (model != null)
            {
                if (!string.IsNullOrEmpty(model.ObjectName))
                {
                    var objName = model.ObjectName;
                    string assembly = null;
                    if (objName.StartsWith("Hre"))
                    {
                        assembly = "HRM.Presentation.Hr.Models";
                    }
                    else if (objName.StartsWith("FIN"))
                    {
                        assembly = "HRM.Presentation.Hr.Models";
                    }
                    else if (objName.StartsWith("Att"))
                    {
                        assembly = "HRM.Presentation.Attendance.Models";
                    }
                    else if (objName.StartsWith("Cat"))
                    {
                        assembly = "HRM.Presentation.Category.Models";
                    }
                    else if (objName.StartsWith("Rec"))
                    {
                        assembly = "HRM.Presentation.Recruitment.Models";
                    }
                    else if (objName.StartsWith("Tra"))
                    {
                        assembly = "HRM.Presentation.Training.Models";
                    }
                    else if (objName.StartsWith("Sal"))
                    {
                        assembly = "HRM.Presentation.Payroll.Models";
                    }
                    else if (objName.StartsWith("Kai"))
                    {
                        assembly = "HRM.Presentation.Payroll.Models";
                    }
                    else if (objName.StartsWith("Ins"))
                    {
                        assembly = "HRM.Presentation.Insurance.Models";
                    }
                    else if (objName.StartsWith("Eva"))
                    {
                        assembly = "HRM.Presentation.Evaluation.Models";
                    }
                    Type objType = GetTypeByName(assembly, objName);
                    model = PopUpChangeColum(model, objType);
                }
            }

            return View(model);
        }
예제 #7
0
        public GridBuilderModel SaveGridBuilderInfo(Guid? userId, string gridColumnName, string columnMode, int pageSize)
        {

            if (userId != null && userId != Guid.Empty && !string.IsNullOrEmpty(gridColumnName))
            {
                GridBuilderModel model = new GridBuilderModel()
                {
                    UserID = (Guid)userId,
                    GridControlName = gridColumnName,
                    StringXml = columnMode,
                    PageSize = pageSize
                };
                var service = new RestServiceClient<GridBuilderModel>(UserLogin);
                return service.Post(_hrm_Hre_Service, "api/Sys_ColumnMode", model);
            }

            return null;
        }