/// <summary>
        /// RegisterCommonService registers common components.
        /// </summary>
        /// <param name="services"></param>
        /// <returns></returns>
        public static IServiceCollection RegisterPolicies(this IServiceCollection services, IClaimApplication claimApplication)
        {
            var applicationClaim = new ApplicationClaim();

            services.AddAuthorization(async options =>
            {
                var ClaimList = await claimApplication.GetList(applicationClaim);
                foreach (var item in ClaimList)
                {
                    //Commented this code for Testing in development env:

                    //if (item.ClaimType == "Claim.GetList")
                    //{
                    options.AddPolicy(item.ClaimCode, policy => policy.RequireClaim(item.ClaimCode));


                    //}
                    //else
                    //{
                    //    options.AddPolicy(item.ClaimCode, policy => policy.RequireClaim(item.ClaimCode));
                    //}
                }
            });

            return(services);
        }
        /// <summary>
        /// Add Claims to a Role
        /// </summary>
        /// <param name="roleId">Role Id</param>
        /// <param name="claimId">Claim Id</param>
        /// <returns></returns>
        public IdentityResult AddClaims(string roleId, IEnumerable <string> claimIds)
        {
            using (ApplicationDbContext dbContext = ApplicationDbContext.Create())
            {
                try
                {
                    var role = dbContext.Roles.Find(roleId);
                    dbContext.Roles.Attach(role);

                    foreach (string claimId in claimIds)
                    {
                        var claim = new ApplicationClaim {
                            Id = claimId
                        };
                        dbContext.Claims.Attach(claim);
                        role.Claims.Add(claim);
                    }

                    dbContext.SaveChanges();
                }
                catch (Exception ex)
                {
                    return(IdentityResult.Failed("Error adding claim to role. ExceptionMessage:" + ex.Message));
                }
            }
            return(IdentityResult.Success);
        }
Пример #3
0
        public async Task <List <ClaimListResponseVM> > GetList([FromQuery] ClaimListRequestVM requestVM)
        {
            ApplicationClaim        request  = requestVM.Convert();
            bool                    language = base.UseDefaultLanguage;
            List <ApplicationClaim> response = await this.ClaimApplication.GetList(request);

            List <ClaimListResponseVM> responseVM = response.ConvertList(base.UseDefaultLanguage);

            return(responseVM);
        }
Пример #4
0
        /// <summary>
        /// GetAllClaimsWithRole fetch and returns queried list of items with specific fields from database by role.
        /// </summary>
        /// <param name="applicationRole"></param>
        /// <returns></returns>
        public async Task <List <ApplicationRole> > GetAllClaimsWithRole()
        {
            var             applicationRoles    = new List <ApplicationRole>();
            ApplicationRole applicationRoleItem = null;

            ApplicationRole currentRole = null;

            ApplicationClaim applicationClaim = null;

            var parameters = new List <DbParameter>
            {
                base.GetParameter(BaseInfrastructure.CurrentUserIdParameterName, 1)
            };

            using (var dataReader = await base.ExecuteReader(parameters, ClaimInfrastructure.GetAllClaimsWithRoleProcedureName, CommandType.StoredProcedure))
            {
                if (dataReader != null)
                {
                    while (dataReader.Read())
                    {
                        applicationRoleItem = new ApplicationRole
                        {
                            RoleId       = dataReader.GetUnsignedIntegerValue(ClaimInfrastructure.RoleIdColumnName),
                            RoleName     = dataReader.GetStringValue(ClaimInfrastructure.RoleNameColumnName),
                            RoleNameCode = dataReader.GetStringValue(ClaimInfrastructure.RoleNameCodeColumnName)
                        };

                        applicationRoles.Add(applicationRoleItem);
                    }
                    if (dataReader.NextResult())
                    {
                        while (dataReader.Read())
                        {
                            applicationClaim = new ApplicationClaim();

                            uint RoleId = dataReader.GetUnsignedIntegerValue(ClaimInfrastructure.RoleIdColumnName);

                            applicationClaim.ClaimCode = dataReader.GetStringValue(ClaimInfrastructure.ClaimCodeColumnName);

                            if (currentRole == null || currentRole.RoleId != RoleId)
                            {
                                currentRole = applicationRoles.FirstOrDefault(c => c.RoleId == RoleId);
                            }
                            currentRole?.ApplicationClaims.Add(applicationClaim);
                        }
                    }
                    if (!dataReader.IsClosed)
                    {
                        dataReader.Close();
                    }
                }
            }

            return(applicationRoles);
        }
Пример #5
0
        /// <summary>
        /// GetAll fetch and returns queried list of items from database.
        /// </summary>
        /// <param name="applicationClaim"></param>
        /// <returns></returns>
        public async Task <AllResponse <ApplicationClaim> > GetAll(AllRequest <ApplicationClaim> applicationClaim)
        {
            var result = new AllResponse <ApplicationClaim>
            {
                Data          = new List <ApplicationClaim>(),
                Offset        = applicationClaim.Offset,
                PageSize      = applicationClaim.PageSize,
                SortColumn    = applicationClaim.SortColumn,
                SortAscending = applicationClaim.SortAscending
            };

            ApplicationClaim applicationClaimItem = null;
            var totalRecordParamter = base.GetParameterOut(BaseInfrastructure.TotalRecordParameterName, SqlDbType.Int, result.TotalRecord);
            var parameters          = new List <DbParameter>
            {
                totalRecordParamter,
                base.GetParameter(BaseInfrastructure.OffsetParameterName, applicationClaim.Offset),
                base.GetParameter(BaseInfrastructure.PageSizeParameterName, applicationClaim.PageSize),
                base.GetParameter(BaseInfrastructure.SortColumnParameterName, applicationClaim.SortColumn),
                base.GetParameter(BaseInfrastructure.SortAscendingParameterName, applicationClaim.SortAscending),
                base.GetParameter(BaseInfrastructure.CurrentUserIdParameterName, applicationClaim.Data.CreatedById)
            };

            //TODO: Add other parameters.

            using (var dataReader = await base.ExecuteReader(parameters, ClaimInfrastructure.GetAllStoredProcedureName, CommandType.StoredProcedure))
            {
                if (dataReader != null && dataReader.HasRows)
                {
                    while (dataReader.Read())
                    {
                        applicationClaimItem = new ApplicationClaim
                        {
                            ClaimId               = dataReader.GetUnsignedIntegerValue(ClaimInfrastructure.ClaimIdColumnName),
                            ClaimType             = dataReader.GetStringValue(ClaimInfrastructure.ClaimTypeColumnName),
                            ClaimLabel            = dataReader.GetStringValue(ClaimInfrastructure.ClaimLabelColumnName),
                            ClaimLabelTranslation = dataReader.GetStringValue(ClaimInfrastructure.ClaimLabelTranslationColumnName)
                        };
                        //TODO: Add other Columns.

                        result.Data.Add(applicationClaimItem);
                    }

                    if (!dataReader.IsClosed)
                    {
                        dataReader.Close();
                    }

                    result.TotalRecord = Convert.ToUInt32(totalRecordParamter.Value);
                }
            }

            return(result);
        }
Пример #6
0
        public virtual async Task <ActionResult> Create(ApplicationClaim applicationClaim)
        {
            if (ModelState.IsValid)
            {
                await this.ClaimManager.CreateGroupAsync(applicationClaim);

                return(RedirectToAction("Index"));
            }

            return(View(applicationClaim));
        }
Пример #7
0
        /// <summary>
        /// Activate activate/deactivate provided record and returns true if action was successfull.
        /// </summary>
        /// <param name="applicationClaim"></param>
        /// <returns></returns>
        public async Task <bool> Activate(ApplicationClaim applicationClaim)
        {
            var parameters = new List <DbParameter>
            {
                base.GetParameter(ClaimInfrastructure.ClaimIdParameterName, applicationClaim.ClaimId),
                base.GetParameter(BaseInfrastructure.CurrentUserIdParameterName, applicationClaim.CreatedById)
            };

            var returnValue = await base.ExecuteNonQuery(parameters, ClaimInfrastructure.ActivateStoredProcedureName, CommandType.StoredProcedure);

            return(returnValue > 0);
        }
Пример #8
0
        public void Handle(AppClaimRemoved @event)
        {
            var appClaim = new ApplicationClaim()
            {
                AppId      = @event.AppId,
                ClaimType  = @event.ClaimType,
                ClaimValue = @event.ClaimValue
            };

            this.dbContext.Invoke().ApplicationClaims.Attach(appClaim);
            this.dbContext.Invoke().ApplicationClaims.Remove(appClaim);
            this.dbContext.Invoke().SaveChanges();
        }
        /// <summary>
        /// Convert converts object of RequestApplicationClaimVM type to ApplicationClaim type.
        /// </summary>
        /// <param name="vm"></param>
        /// <returns></returns>
        public static ApplicationClaim Convert(this ClaimListRequestVM vm)
        {
            var model = new ApplicationClaim
            {
                ClaimId      = vm.ClaimId,
                ClaimGroupId = vm.ClaimGroupId,
                ClaimType    = vm.ClaimType,
                ClaimLabel   = vm.ClaimLabel,
                CreatedById  = vm.CurrentUserId
            };

            return(model);
        }
Пример #10
0
        public void Handle(AppClaimAdded @event)
        {
            var repository = new Repository <ApplicationClaim>(this.dbContext);

            var appClaim = new ApplicationClaim()
            {
                AppId      = @event.AppId,
                ClaimType  = @event.ClaimType,
                ClaimValue = @event.ClaimValue
            };

            repository.Save(appClaim);
            repository.SaveChanges();
        }
Пример #11
0
        /// <summary>
        /// Update updates existing object in database and returns true if action was successfull.
        /// </summary>
        /// <param name="applicationClaim"></param>
        /// <returns></returns>
        public async Task <bool> Update(ApplicationClaim applicationClaim)
        {
            var parameters = new List <DbParameter>
            {
                base.GetParameter(ClaimInfrastructure.ClaimIdParameterName, applicationClaim.ClaimId),
                base.GetParameter(ClaimInfrastructure.ClaimGroupIdParameterName, applicationClaim.ClaimGroupId),
                base.GetParameter(ClaimInfrastructure.ClaimTypeParameterName, applicationClaim.ClaimType),
                base.GetParameter(ClaimInfrastructure.ClaimLabelParameterName, applicationClaim.ClaimLabel),
                base.GetParameter(ClaimInfrastructure.ClaimCodeParameterName, applicationClaim.ClaimCode),
                base.GetParameter(BaseInfrastructure.CurrentUserIdParameterName, applicationClaim.CreatedById)
            };
            //TODO: Add other parameters.

            var returnValue = await base.ExecuteNonQuery(parameters, ClaimInfrastructure.UpdateStoredProcedureName, CommandType.StoredProcedure);

            return(returnValue > 0);
        }
Пример #12
0
        /// <summary>
        /// Add adds new object in database and returns provided ObjectId.
        /// </summary>
        /// <param name="applicationClaim"></param>
        /// <returns></returns>
        public async Task <uint> Add(ApplicationClaim applicationClaim)
        {
            var claimIdParamter = base.GetParameterOut(ClaimInfrastructure.ClaimIdColumnName, SqlDbType.Int, applicationClaim.ClaimId);
            var parameters      = new List <DbParameter>
            {
                claimIdParamter,
                base.GetParameter(ClaimInfrastructure.ClaimGroupIdParameterName, applicationClaim.ClaimGroupId),
                base.GetParameter(ClaimInfrastructure.ClaimTypeParameterName, applicationClaim.ClaimType),
                base.GetParameter(ClaimInfrastructure.ClaimLabelParameterName, applicationClaim.ClaimLabel),
                base.GetParameter(ClaimInfrastructure.ClaimCodeParameterName, applicationClaim.ClaimCode),
                base.GetParameter(BaseInfrastructure.CurrentUserIdParameterName, applicationClaim.CreatedById)
            };
            //TODO: Add other parameters.

            await base.ExecuteNonQuery(parameters, ClaimInfrastructure.AddStoredProcedureName, CommandType.StoredProcedure);

            applicationClaim.ClaimId = Convert.ToUInt32(claimIdParamter.Value);

            return(applicationClaim.ClaimId);
        }
Пример #13
0
        public virtual async Task <ActionResult> Edit(int id)
        {
            if (id < 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ApplicationClaim applicationClaim = await this.ClaimManager.FindByIdAsync(id);

            if (applicationClaim == null)
            {
                return(HttpNotFound());
            }
            var model = new ClaimViewModel()
            {
                Id         = applicationClaim.Id,
                ExpireDate = applicationClaim.ExpireDate,
                Key        = applicationClaim.Key,
                Value      = applicationClaim.Value
            };

            return(View(model));
        }
Пример #14
0
        /// <summary>
        /// Get fetch and returns queried item from database.
        /// </summary>
        /// <param name="applicationClaim"></param>
        /// <returns></returns>
        public async Task <ApplicationClaim> Get(ApplicationClaim applicationClaim)
        {
            ApplicationClaim ApplicationClaimItem = null;
            var parameters = new List <DbParameter>
            {
                base.GetParameter(ClaimInfrastructure.ClaimIdParameterName, applicationClaim.ClaimId),
                base.GetParameter(BaseInfrastructure.CurrentUserIdParameterName, applicationClaim.CreatedById)
            };

            using (var dataReader = await base.ExecuteReader(parameters, ClaimInfrastructure.GetStoredProcedureName, CommandType.StoredProcedure))
            {
                if (dataReader != null && dataReader.HasRows)
                {
                    if (dataReader.Read())
                    {
                        ApplicationClaimItem = new ApplicationClaim
                        {
                            ClaimId               = dataReader.GetUnsignedIntegerValue(ClaimInfrastructure.ClaimIdColumnName),
                            ClaimType             = dataReader.GetStringValue(ClaimInfrastructure.ClaimTypeColumnName),
                            ClaimLabelTranslation = dataReader.GetStringValue(ClaimInfrastructure.ClaimLabelTranslationColumnName),
                            ClaimCode             = dataReader.GetStringValue(ClaimInfrastructure.ClaimCodeColumnName),
                            CreatedById           = dataReader.GetUnsignedIntegerValueNullable(BaseInfrastructure.CreatedByIdColumnName),
                            CreatedByName         = dataReader.GetStringValue(BaseInfrastructure.CreatedByNameColumnName),
                            CreatedDate           = dataReader.GetDateTimeValueNullable(BaseInfrastructure.CreatedDateColumnName),
                            ModifiedById          = dataReader.GetUnsignedIntegerValueNullable(BaseInfrastructure.ModifiedByIdColumnName),
                            ModifiedByName        = dataReader.GetStringValue(BaseInfrastructure.ModifiedByNameColumnName),
                            ModifiedDate          = dataReader.GetDateTimeValueNullable(BaseInfrastructure.ModifiedDateColumnName)
                        };
                    }
                    if (!dataReader.IsClosed)
                    {
                        dataReader.Close();
                    }
                }
            }

            return(ApplicationClaimItem);
        }
Пример #15
0
        /// <summary>
        /// GetListByRole fetch and returns queried list of items with specific fields from database by role.
        /// </summary>
        /// <param name="applicationRole"></param>
        /// <returns></returns>
        public async Task <List <ApplicationClaim> > GetListByRole(ApplicationRole applicationRole)
        {
            var applicationClaims = new List <ApplicationClaim>();
            ApplicationClaim applicationClaimItem = null;
            var parameters = new List <DbParameter>
            {
                base.GetParameter(RoleInfrastructure.RoleIdParameterName, applicationRole.RoleId),
                base.GetParameter(RoleInfrastructure.RoleCodeParameterName, applicationRole.RoleNameCode),
                base.GetParameter(BaseInfrastructure.CurrentUserIdParameterName, applicationRole.CreatedById)
            };

            using (var dataReader = await base.ExecuteReader(parameters, ClaimInfrastructure.GetListByRoleStoredProcedureName, CommandType.StoredProcedure))
            {
                if (dataReader != null)
                {
                    while (dataReader.Read())
                    {
                        applicationClaimItem = new ApplicationClaim
                        {
                            ClaimId = dataReader.GetUnsignedIntegerValue(ClaimInfrastructure.ClaimIdColumnName),
                            //ClaimGroupId = dataReader.GetUnsignedIntegerValue(ClaimInfrastructure.ClaimGroupIdColumnName),
                            ClaimLabelTranslation = dataReader.GetStringValue(ClaimInfrastructure.ClaimLabelTranslationColumnName),
                            ClaimLabel            = dataReader.GetStringValue(ClaimInfrastructure.ClaimLabelColumnName),
                            ClaimCode             = dataReader.GetStringValue(ClaimInfrastructure.ClaimCodeColumnName)
                        };

                        applicationClaims.Add(applicationClaimItem);
                    }
                    if (!dataReader.IsClosed)
                    {
                        dataReader.Close();
                    }
                }
            }

            return(applicationClaims);
        }
Пример #16
0
 /// <summary>
 /// GetList calls ApplicationClaimInfrastructure to fetch and returns queried list of items with specific fields from database.
 /// </summary>
 /// <param name="applicationClaim"></param>
 /// <returns></returns>
 public async Task <List <ApplicationClaim> > GetList(ApplicationClaim applicationClaim)
 {
     return(await this.ClaimInfrastructure.GetList(applicationClaim));
 }
Пример #17
0
 /// <summary>
 /// Activate calls ApplicationClaimInfrastructure to activate/deactivate provided record and returns true if action was successfull.
 /// </summary>
 /// <param name="applicationClaim"></param>
 /// <returns></returns>
 public async Task <bool> Activate(ApplicationClaim applicationClaim)
 {
     return(await this.ClaimInfrastructure.Activate(applicationClaim));
 }
Пример #18
0
 /// <summary>
 /// Add calls ApplicationClaimInfrastructure to adds new object in database and returns provided ObjectId.
 /// </summary>
 /// <param name="applicationClaim"></param>
 /// <returns></returns>
 public async Task <uint> Add(ApplicationClaim applicationClaim)
 {
     return(await this.ClaimInfrastructure.Add(applicationClaim));
 }
        /// <summary>
        /// GetAll executes provided stored procedure with provided parameters.
        /// </summary>
        /// <param name="applicationClaimGroup"></param>
        /// <param name="storedProcedureName"></param>
        /// <returns></returns>
        private async Task <AllResponse <ApplicationClaimGroup> > GetAll(AllRequest <ApplicationClaimGroup> applicationClaimGroup, string storedProcedureName)
        {
            var result = new AllResponse <ApplicationClaimGroup>
            {
                Data          = new List <ApplicationClaimGroup>(),
                Offset        = applicationClaimGroup.Offset,
                PageSize      = applicationClaimGroup.PageSize,
                SortColumn    = applicationClaimGroup.SortColumn,
                SortAscending = applicationClaimGroup.SortAscending
            };

            ApplicationClaimGroup applicationClaimGroupItem = null;
            ApplicationClaimGroup currentGroup         = null;
            ApplicationClaim      applicationClaimItem = null;
            var totalRecordParamter = base.GetParameterOut(BaseInfrastructure.TotalRecordParameterName, SqlDbType.Int, result.TotalRecord);
            var parameters          = new List <DbParameter>
            {
                totalRecordParamter,
                base.GetParameter(BaseInfrastructure.OffsetParameterName, applicationClaimGroup.Offset),
                base.GetParameter(BaseInfrastructure.PageSizeParameterName, applicationClaimGroup.PageSize),
                base.GetParameter(BaseInfrastructure.SortColumnParameterName, applicationClaimGroup.SortColumn),
                base.GetParameter(BaseInfrastructure.SortAscendingParameterName, applicationClaimGroup.SortAscending),
                base.GetParameter(BaseInfrastructure.CurrentUserIdParameterName, applicationClaimGroup.Data.CreatedById)
            };

            //TODO: Add other parameters.

            using (var dataReader = await base.ExecuteReader(parameters, storedProcedureName, CommandType.StoredProcedure))
            {
                if (dataReader != null && dataReader.HasRows)
                {
                    while (dataReader.Read())
                    {
                        applicationClaimGroupItem = new ApplicationClaimGroup
                        {
                            ClaimGroupId               = dataReader.GetUnsignedIntegerValue(ClaimGroupInfrastructure.ClaimGroupIdColumnName),
                            ClaimGroupLabel            = dataReader.GetStringValue(ClaimGroupInfrastructure.ClaimGroupLabelColumnName),
                            ClaimGroupLabelTranslation = dataReader.GetStringValue(ClaimGroupInfrastructure.ClaimGroupLabelTranslationColumnName),
                            ClaimGroupCode             = dataReader.GetStringValue(ClaimGroupInfrastructure.ClaimGroupCodeColumnName),
                            Claims = new List <ApplicationClaim>()
                        };
                        //TODO: Add other Columns.

                        result.Data.Add(applicationClaimGroupItem);
                    }

                    if (dataReader.NextResult())
                    {
                        while (dataReader.Read())
                        {
                            applicationClaimItem = new ApplicationClaim
                            {
                                ClaimId               = dataReader.GetUnsignedIntegerValue(ClaimInfrastructure.ClaimIdColumnName),
                                ClaimGroupId          = dataReader.GetUnsignedIntegerValue(ClaimInfrastructure.ClaimGroupIdColumnName),
                                ClaimType             = dataReader.GetStringValue(ClaimInfrastructure.ClaimTypeColumnName),
                                ClaimLabel            = dataReader.GetStringValue(ClaimInfrastructure.ClaimLabelColumnName),
                                ClaimLabelTranslation = dataReader.GetStringValue(ClaimInfrastructure.ClaimLabelTranslationColumnName),
                                ClaimCode             = dataReader.GetStringValue(ClaimInfrastructure.ClaimCodeColumnName),
                                Active = dataReader.GetBooleanValue(ClaimInfrastructure.ActiveColumnName)
                            };

                            if (currentGroup == null || currentGroup.ClaimGroupId != applicationClaimItem.ClaimGroupId)
                            {
                                currentGroup = result.Data.FirstOrDefault(c => c.ClaimGroupId == applicationClaimItem.ClaimGroupId);
                            }

                            currentGroup?.Claims.Add(applicationClaimItem);
                        }
                    }

                    if (!dataReader.IsClosed)
                    {
                        dataReader.Close();
                    }

                    result.TotalRecord = Convert.ToUInt32(totalRecordParamter.Value);
                }
            }

            return(result);
        }
Пример #20
0
        private void CreateClaims()
        {
            ApplicationDbContext context = new ApplicationDbContext();

            // create Claims
            ApplicationClaim claim01A = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Admin", ClaimValue = "Show", Description = "Show Admin Page"
            });

            ApplicationClaim claim01R = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Roles", ClaimValue = "Show", Description = "Show Roles"
            });
            ApplicationClaim claim02R = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Roles", ClaimValue = "Add", Description = "Add Roles"
            });
            ApplicationClaim claim03R = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Roles", ClaimValue = "Edit", Description = "Edit Roles"
            });
            ApplicationClaim claim04R = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Roles", ClaimValue = "Delete", Description = "Delete Roles"
            });

            ApplicationClaim claim01RC = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "RoleClaims", ClaimValue = "Show", Description = "Show Role Claims"
            });
            ApplicationClaim claim02RC = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "RoleClaims", ClaimValue = "Edit", Description = "Edit Role Claims"
            });

            ApplicationClaim claim01U = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Users", ClaimValue = "Show", Description = "Show Users"
            });
            ApplicationClaim claim02U = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Users", ClaimValue = "Add", Description = "Add Users"
            });
            ApplicationClaim claim03U = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Users", ClaimValue = "Edit", Description = "Edit Users"
            });
            ApplicationClaim claim04U = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Users", ClaimValue = "Delete", Description = "Delete Users"
            });

            ApplicationClaim claim01UR = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "UserRoles", ClaimValue = "Show", Description = "Show User Roles"
            });
            ApplicationClaim claim02UR = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "UserRoles", ClaimValue = "Edit", Description = "Edit User Roles"
            });

            ApplicationClaim claim01B = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Blogs", ClaimValue = "Show", Description = "Show Users"
            });
            ApplicationClaim claim02B = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Blogs", ClaimValue = "Add", Description = "Add Users"
            });
            ApplicationClaim claim03B = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Blogs", ClaimValue = "Edit", Description = "Edit Users"
            });
            ApplicationClaim claim04B = context.Claims.Add(new ApplicationClaim {
                Id = Guid.NewGuid().ToString(), ClaimType = "Blogs", ClaimValue = "Delete", Description = "Delete Users"
            });

            context.SaveChanges();
        }
Пример #21
0
        /// <summary>
        /// Get fetch and returns queried item from database.
        /// </summary>
        /// <param name="applicationRole"></param>
        /// <returns></returns>
        public async Task <ApplicationRole> Get(ApplicationRole applicationRole)
        {
            ApplicationRole       applicationRoleItem       = null;
            ApplicationClaimGroup applicationClaimGroupItem = null;
            ApplicationClaimGroup currentGroup         = null;
            ApplicationClaim      applicationClaimItem = null;
            var parameters = new List <DbParameter>
            {
                base.GetParameter(RoleInfrastructure.RoleIdParameterName, applicationRole.RoleId),
                base.GetParameter(BaseInfrastructure.CurrentUserIdParameterName, applicationRole.CreatedById)
            };

            using (var dataReader = await base.ExecuteReader(parameters, RoleInfrastructure.GetStoredProcedureName, CommandType.StoredProcedure))
            {
                if (dataReader != null && dataReader.HasRows)
                {
                    if (dataReader.Read())
                    {
                        applicationRoleItem = new ApplicationRole
                        {
                            RoleId              = dataReader.GetUnsignedIntegerValue(RoleInfrastructure.RoleIdColumnName),
                            RoleName            = dataReader.GetStringValue(RoleInfrastructure.RoleNameColumnName),
                            RoleNameTranslation = dataReader.GetStringValue(RoleInfrastructure.RoleNameTranslationColumnName),
                            RoleNameCode        = dataReader.GetStringValue(RoleInfrastructure.RoleNameCodeColumnName),
                            CreatedById         = dataReader.GetUnsignedIntegerValue(BaseInfrastructure.CreatedByIdColumnName),
                            CreatedDate         = dataReader.GetDateTimeValueNullable(BaseInfrastructure.CreatedDateColumnName),
                            ModifiedById        = dataReader.GetUnsignedIntegerValue(BaseInfrastructure.ModifiedByIdColumnName),
                            ModifiedDate        = dataReader.GetDateTimeValueNullable(BaseInfrastructure.ModifiedDateColumnName),
                            Active              = dataReader.GetBooleanValue(BaseInfrastructure.ActiveColumnName),
                            ClaimGroups         = new List <ApplicationClaimGroup>()
                        };

                        if (dataReader.NextResult())
                        {
                            while (dataReader.Read())
                            {
                                applicationClaimGroupItem = new ApplicationClaimGroup
                                {
                                    ClaimGroupId               = dataReader.GetUnsignedIntegerValue(ClaimGroupInfrastructure.ClaimGroupIdColumnName),
                                    ClaimGroupLabel            = dataReader.GetStringValue(ClaimGroupInfrastructure.ClaimGroupLabelColumnName),
                                    ClaimGroupLabelTranslation = dataReader.GetStringValue(ClaimGroupInfrastructure.ClaimGroupLabelTranslationColumnName),
                                    ClaimGroupCode             = dataReader.GetStringValue(ClaimGroupInfrastructure.ClaimGroupCodeColumnName),
                                    Claims = new List <ApplicationClaim>()
                                };

                                applicationRoleItem.ClaimGroups.Add(applicationClaimGroupItem);
                            }

                            if (dataReader.NextResult())
                            {
                                while (dataReader.Read())
                                {
                                    applicationClaimItem = new ApplicationClaim
                                    {
                                        ClaimId               = dataReader.GetUnsignedIntegerValue(ClaimInfrastructure.ClaimIdColumnName),
                                        ClaimGroupId          = dataReader.GetUnsignedIntegerValue(ClaimInfrastructure.ClaimGroupIdColumnName),
                                        ClaimType             = dataReader.GetStringValue(ClaimInfrastructure.ClaimTypeColumnName),
                                        ClaimLabel            = dataReader.GetStringValue(ClaimInfrastructure.ClaimLabelColumnName),
                                        ClaimLabelTranslation = dataReader.GetStringValue(ClaimInfrastructure.ClaimLabelTranslationColumnName),
                                        ClaimCode             = dataReader.GetStringValue(ClaimInfrastructure.ClaimCodeColumnName),
                                        Active = dataReader.GetBooleanValue(BaseInfrastructure.ActiveColumnName)
                                    };

                                    if (currentGroup == null || currentGroup.ClaimGroupId != applicationClaimItem.ClaimGroupId)
                                    {
                                        currentGroup = applicationRoleItem.ClaimGroups.FirstOrDefault(c => c.ClaimGroupId == applicationClaimItem.ClaimGroupId);
                                    }

                                    currentGroup?.Claims.Add(applicationClaimItem);
                                }
                            }
                        }
                    }

                    if (!dataReader.IsClosed)
                    {
                        dataReader.Close();
                    }
                }

                return(applicationRoleItem);
            }
        }
Пример #22
0
 /// <summary>
 /// Set adds new ApplicationClaim object in cache with key.
 /// </summary>
 /// <param name="ApplicationClaim"></param>
 /// <returns></returns>
 public async Task Set(ApplicationClaim applicationClaim)
 {
     await base.Set(applicationClaim.ClaimCode, applicationClaim);
 }
Пример #23
0
 /// <summary>
 /// Remove deletes ApplicationClaim object from cache.
 /// </summary>
 /// <param name="ApplicationClaim"></param>
 /// <returns></returns>
 public async Task Remove(ApplicationClaim applicationClaim)
 {
     await base.Remove(applicationClaim.ClaimCode);
 }
Пример #24
0
 /// <summary>
 /// Get gets ApplicationClaim object from cache and returns queried.
 /// </summary>
 /// <param name="ApplicationClaim"></param>
 /// <returns></returns>
 public async Task <ApplicationClaim> Get(ApplicationClaim applicationClaim)
 {
     return(await base.Get <ApplicationClaim>(applicationClaim.ClaimCode));
 }