Esempio n. 1
0
        CounterInfo IManagerCounter.GetCounters(Guid tenantId, string entityName)
        {
            IMetadataManager _iMetadataManager = new VPC.Framework.Business.MetadataManager.Contracts.MetadataManager();
            string           entityId          = _iMetadataManager.GetEntityContextByEntityName(entityName);

            return(_reviewCounter.GetCounters(tenantId, entityId));
        }
        private void GetValueAfterCloning(FieldModel field, Guid rootTenantId, Guid intialisedTenantId, Validator validator, string typeId)
        {
            if (field != null)
            {
                IMetadataManager _imetadataManager = new VPC.Framework.Business.MetadataManager.Contracts.MetadataManager();
                var fieldContext = _imetadataManager.GetEntityContextByEntityName(field.TypeOf, field.DataType.ToLower() == "picklist"?true:false);
                // if (!string.IsNullOrEmpty(fieldContext))
                // {
                //     var newId = (field.DataType.ToString().ToLower().Equals(VPC.Metadata.Business.DataAnnotations.DataType.PickList.ToString().ToLower())) ? GetPickListValue(field, rootTenantId, intialisedTenantId, validator.DefaultValue, fieldContext) : GetEntityValue(field, rootTenantId, intialisedTenantId, validator.DefaultValue, fieldContext);
                //     validator.DefaultValue = newId;
                // }

                dynamic newlyCreatedId = null;
                if (field.DataType.ToString().ToLower().Equals(VPC.Metadata.Business.DataAnnotations.DataType.PickList.ToString().ToLower()))
                {
                    newlyCreatedId = GetPickListValue(field, rootTenantId, intialisedTenantId, validator.DefaultValue, fieldContext);
                    if (newlyCreatedId != Guid.Empty)
                    {
                        validator.DefaultValue = newlyCreatedId;
                    }
                }
                else if (field.DataType.ToString().ToLower().Equals(VPC.Metadata.Business.DataAnnotations.DataType.Lookup.ToString().ToLower()))
                {
                    newlyCreatedId = GetEntityValue(field, rootTenantId, intialisedTenantId, validator.DefaultValue, fieldContext);
                    if (newlyCreatedId != Guid.Empty)
                    {
                        validator.DefaultValue = newlyCreatedId;
                    }
                }
            }
        }
Esempio n. 3
0
        bool IManagerCounter.Update(Guid tenantId, CounterInfo info)
        {
            IMetadataManager _iMetadataManager = new VPC.Framework.Business.MetadataManager.Contracts.MetadataManager();
            string           entityId          = _iMetadataManager.GetEntityContextByEntityName(info.EntityName);

            return(_adminCounter.Update(tenantId, info, entityId));
        }
Esempio n. 4
0
        protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, CustomRoleAuth requirement)
        {
            if (!context.User.Identity.IsAuthenticated)
            {
                return(Task.CompletedTask);
            }

            bool isSuperAdmin  = bool.Parse(context.User.Claims.FirstOrDefault(c => c.Type == "IsSuperAdmin").Value);
            bool isSystemAdmin = bool.Parse(context.User.Claims.FirstOrDefault(c => c.Type == "IsSystemAdmin").Value);

            if (isSuperAdmin || isSystemAdmin)
            {
                context.Succeed(requirement);
                return(Task.CompletedTask);
            }

            var userId   = new Guid(context.User.Claims.FirstOrDefault(c => c.Type == "UserId").Value);
            var tenantId = new Guid(context.User.Claims.FirstOrDefault(c => c.Type == "TenantId").Value);

            ISecurityCacheManager securityManager  = new SecurityCacheManager();
            IMetadataManager      iMetadataManager = new VPC.Framework.Business.MetadataManager.Contracts.MetadataManager();
            var entitySecurities = securityManager.SecurityCache(tenantId, userId, false).EntitySecurity;

            if (entitySecurities.Count == 0)
            {
                return(Task.CompletedTask);
            }
            int[] codes      = null;
            var   methodType = string.Empty;
            var   mvcContext = context.Resource as AuthorizationFilterContext;
            var   descriptor = mvcContext?.ActionDescriptor as ControllerActionDescriptor;

            if (descriptor != null)
            {
                methodType = mvcContext.HttpContext.Request.Method;
                var routeValueOfX = (string)mvcContext.HttpContext.GetRouteValue("entityName");
                if (routeValueOfX == null)
                {
                    // mvcContext.Result = new JsonResult("Entity name not matching.") { StatusCode = 418 };
                    return(Task.CompletedTask);
                }
                var entityId    = iMetadataManager.GetEntityContextByEntityName(routeValueOfX);
                var itsSecurity = (from entitySecurity in entitySecurities where entitySecurity.EntityId == entityId select entitySecurity).ToList();
                if (itsSecurity.Count > 0)
                {
                    codes = itsSecurity[0].SecurityCode.ToString().Select(t => int.Parse(t.ToString())).ToArray();
                }
            }

            if (codes == null)
            {
                return(Task.CompletedTask);
            }

            if (methodType.ToUpper().Equals("GET"))
            {
                if (codes[0] > 1)
                {
                    context.Succeed(requirement);
                }
            }

            else if (methodType.ToUpper().Equals("POST"))
            {
                if (codes[3] > 1)
                {
                    context.Succeed(requirement);
                }
            }
            else if (methodType.ToUpper().Equals("PUT") || methodType.ToUpper().Equals("PATCH"))
            {
                if (codes[4] > 1)
                {
                    context.Succeed(requirement);
                }
            }
            else if (methodType.ToUpper().Equals("DELETE"))
            {
                if (codes[5] > 1)
                {
                    context.Succeed(requirement);
                }
            }
            // if(!context.HasSucceeded)
            //         mvcContext.Result = new JsonResult("Need a custom message") { StatusCode = 418 };
            return(Task.CompletedTask);
        }
Esempio n. 5
0
        public DataTable GetRelations(Guid tenantId, string entityName, Guid id, string relationEntityName, string intersectFieldName, string intersectClassName)
        {
            IMetadataManager _metadaManager = new VPC.Framework.Business.MetadataManager.Contracts.MetadataManager();

            var tableName  = _metadaManager.GetTableNameByEntityname(relationEntityName);
            var primaryKey = _metadaManager.GetPrimaryKeyByEntityname(relationEntityName);

            var fields = _metadaManager.GetColumnNameByEntityName(relationEntityName, null);

            if (fields.Any())
            {
                IRelationQueryAdmin admin = new RelationQueryAdmin();

                var parentTableName = _metadaManager.GetTableNameByEntityname(entityName);
                var parentField     = fields.FirstOrDefault(t => t.ReferenceTableName.Equals(parentTableName));
                if (parentField == null)
                {
                    return(null);
                }

                //
                var childField = fields.FirstOrDefault(t => t.FieldName.Equals(intersectFieldName));
                if (childField == null)
                {
                    return(null);
                }
                var childTableName       = childField.ReferenceTableName;
                var childTablePrimaryKey = childField.ReferenceColumnName;

                var intersectContext = _metadaManager.GetEntityContextByEntityName(intersectClassName, false);
                var itemTableColumns = ItemHelper.GetItemSelectDetails(tenantId, intersectContext, 0);


                var selectQueryBuilder = new SelectQueryBuilder();
                selectQueryBuilder.SelectFromTable(tableName, fields[0].EntityPrefix);

                selectQueryBuilder.AddJoin(JoinType.InnerJoin, childTableName, "_tt", childTablePrimaryKey, Comparison.Equals, tableName, fields[0].EntityPrefix, childField.ColumnName);

                selectQueryBuilder.AddJoin(JoinType.InnerJoin, itemTableColumns[0].TableName, itemTableColumns[0].EntityPrefix, childTablePrimaryKey, Comparison.Equals, tableName, fields[0].EntityPrefix, childField.ColumnName);

                var queryColumns = new List <string> ();
                var toDict       = new Dictionary <string, string> ();
                foreach (var item in itemTableColumns)
                {
                    //  if(!item.IsIntersectProperties)continue;
                    // var columnName = !string.IsNullOrEmpty (item.ClientName) ? item.ClientName + "." + item.FieldName : item.FieldName;
                    if (item.ColumnName.Equals(item.PrimaryKey) || item.ColumnName.Equals("[Name]"))
                    {
                        queryColumns.Add(item.EntityPrefix + "." + item.ColumnName);
                        toDict.Add(item.EntityPrefix + "." + item.ColumnName, item.FieldName);
                    }
                }
                selectQueryBuilder.SelectColumns(queryColumns.ToArray());
                selectQueryBuilder.SelectColumnsAndAliases(toDict);

                selectQueryBuilder.AddWhere(parentField.ColumnName, Comparison.Equals, id.ToString(), 1);
                var selectQuery = selectQueryBuilder.BuildQuery();

                IRelationReview review = new RelationReview();
                return(review.GetResult(tenantId, tableName, selectQuery));
            }
            return(null);
            //return status;
        }