Пример #1
0
        //public async Task<HttpResponseMessage> GetUserMobileOperationAccess()
        //{
        //    var hasAccess = await SecurityManager.HasAccessAsync(BehshoResourceIds.Behsho_Security_MobileUser_View);
        //    var oprAccess = new OperationAccess() { CanView = hasAccess, CanUpdate = hasAccess };
        //    return Request.CreateResponse(HttpStatusCode.OK, new { resultCode = (int)ResultCode.Successful, data = oprAccess });
        //}
        public async Task <HttpResponseMessage> GetUserInfoAsync()
        {
            try
            {
                var userQuery = this.BusinessRule.Queryable();

                var userList = await userQuery.Select(user => new
                {
                    ID             = user.ID,
                    OrganizationId = user.OrganizationId,
                    FirstName      = user.FirstName,
                    LastName       = user.LastName,
                    UserName       = user.UserName
                }).ToListAsync();

                var result = userList.ConvertAll(user => new KeyValueVM
                {
                    Key   = user.ID,
                    Value = $"{user.FirstName} {user.LastName} | {user.UserName}"
                });

                return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = (int)ResultCode.Successful, data = result }));
            }
            catch (Exception ex)
            {
                return(await this.HandleExceptionAsync(ex));
            }
            finally
            {
                BusinessRule.Dispose();
            }
        }
Пример #2
0
        public async Task <HttpResponseMessage> GetDocType(GetDocTypeBusi getDocTypeBusi)
        {
            try
            {
                SecurityManager.ThrowIfUserContextNull();

                using (DocTypeRule noeDarkhastPayvastRule = new DocTypeRule())
                {
                    var noeTasvir = await noeDarkhastPayvastRule.GetDocType(getDocTypeBusi.noeDocID);

                    List <KeyValueVM> result = noeTasvir.Select(p => new KeyValueVM()
                    {
                        Key = p.ID, Value = p.DocName
                    }).ToList();

                    return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = (int)ResultCode.Successful, data = new { records = result } }));
                }
            }
            catch (Exception ex)
            {
                return(await this.HandleExceptionAsync(ex));
            }
            finally
            {
                BusinessRule.Dispose();
            }
        }
Пример #3
0
        public async Task <HttpResponseMessage> UsersByRole()
        {
            try
            {
                var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId);
                using (var uow = new UnitOfWork())
                {
                    var userInfosQuery = uow.Repository <UserInfo>().Queryable().Where(x => x.OrganizationId == organId);
                    var userRoleQuery  = uow.Repository <UserRole>().Queryable();
                    var roleQuery      = uow.Repository <Role>().Queryable();


                    var joinQuery = from userInfo in userInfosQuery
                                    join userRole in userRoleQuery
                                    on userInfo.ID equals userRole.UserId
                                    join role in roleQuery
                                    on userRole.RoleId equals role.ID
                                    select new
                    {
                        ID       = userInfo.ID,
                        Name     = userInfo.FirstName + " " + userInfo.LastName,
                        RoleId   = userRole.RoleId,
                        RoleName = role.Name,
                        //  DetailAccount = new DetailAccount { }
                    };

                    var nasabs = await joinQuery.Where(x => x.RoleId == 10).ToListAsync();

                    var chapkhanes = await joinQuery.Where(x => x.RoleId == 9).ToListAsync();

                    var tarahs = await joinQuery.Where(x => x.RoleId == 8).ToListAsync();

                    var bazaryabs = await joinQuery.Where(x => x.RoleId == 7).ToListAsync();

                    //var nasabs = await joinQuery.ToListAsync();
                    //var chapkhanes = await joinQuery.ToListAsync();
                    //var tarahs = await joinQuery.ToListAsync();
                    //var bazaryabs = await joinQuery.ToListAsync();


                    // UserInfoVM userInfoVm = null;
                    //  UserInfo userInfo = await BusinessRule.(userID);
                    //userInfoVm = TranslateEntityToCustomQueryEntity(userInfo);

                    return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = (int)ResultCode.Successful, data = new { nasabs, chapkhanes, tarahs, bazaryabs } }));
                }
            }
            catch (Exception ex)
            {
                return(await this.HandleExceptionAsync(ex));
            }
            finally
            {
                BusinessRule.Dispose();
            }
        }
Пример #4
0
        public async Task <HttpResponseMessage> UpdateOperations(PermisionUserVM permisionUser)
        {
            try
            {
                using (var operationBusiness = BusinessContext.GetBusinessRule <Operation>(this.BusinessRule.OperationAccess, this.BusinessRule.UnitOfWork))
                    using (var userOperationBusiness = BusinessContext.GetBusinessRule <UserOperation>(this.BusinessRule.OperationAccess, this.BusinessRule.UnitOfWork))
                    {
                        var operationQuery = operationBusiness.Queryable()
                                             .Where(opr => opr.OperationType != OperationType.Other);

                        var dbUserOperations = userOperationBusiness.Queryable()
                                               .Where(userOpr => userOpr.UserId == permisionUser.UserId);

                        var dbUserOperationsList = await(from opr in operationQuery
                                                         join userOpr in dbUserOperations
                                                         on opr.ID equals userOpr.OperationId
                                                         select userOpr).ToListAsync();

                        var currentUserOperationIds = permisionUser.OperationUsers.Select(s => s.OperationId);

                        var dbUserOprOperationIds        = dbUserOperationsList.Select(dbUserOpr => dbUserOpr.OperationId);
                        var userOprOperationIdsForDelete = dbUserOprOperationIds.Except(currentUserOperationIds);
                        foreach (var userOprOperaionID in userOprOperationIdsForDelete)
                        {
                            UserOperation userOperation = dbUserOperationsList.FirstOrDefault(dbUserOpr => dbUserOpr.OperationId == userOprOperaionID);
                            userOperationBusiness.Delete(userOperation);
                        }

                        var userOperationIdsForInsert = permisionUser.OperationUsers.Select(currentUserOpr => currentUserOpr.OperationId).Except(dbUserOprOperationIds);
                        foreach (var userOprIdForInsert in userOperationIdsForInsert)
                        {
                            UserOperation userOperationForInsert = new UserOperation()
                            {
                                OperationId = userOprIdForInsert, UserId = permisionUser.UserId
                            };
                            userOperationBusiness.Insert(userOperationForInsert);
                        }

                        await userOperationBusiness.SaveChangesAsync();

                        return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = (int)ResultCode.Successful, data = permisionUser.UserId }));
                    }
            }
            catch (Exception ex)
            {
                return(await this.HandleExceptionAsync(ex));
            }
            finally
            {
                BusinessRule.Dispose();
            }
        }
Пример #5
0
        public async Task <HttpResponseMessage> UpdateUserRole(AccessUserRoleVM accessUserRole)
        {
            try
            {
                using (var userRoleBusiness = BusinessContext.GetBusinessRule <UserRole>(this.BusinessRule.OperationAccess, this.BusinessRule.UnitOfWork))
                {
                    var dbUserRoles = await userRoleBusiness.Queryable().Where(userRole => userRole.UserId == accessUserRole.UserId).ToListAsync();

                    var currentUserRoleIds = accessUserRole.UserRoles.Select(s => s.RoleId);

                    var dbUserRoleIds        = dbUserRoles.Select(dbUserRole => dbUserRole.RoleId);
                    var userRoleIdsForDelete = dbUserRoleIds.Except(currentUserRoleIds);
                    foreach (var userRoleID in userRoleIdsForDelete)
                    {
                        UserRole userRole = dbUserRoles.FirstOrDefault(dbUserRole => dbUserRole.RoleId == userRoleID);
                        userRoleBusiness.Delete(userRole);
                    }

                    var userRoleIdsForInsert = accessUserRole.UserRoles.Select(currentUserRole => currentUserRole.RoleId).Except(dbUserRoleIds);
                    foreach (var userRoleIdForInsert in userRoleIdsForInsert)
                    {
                        UserRole userRoleForInsert = new UserRole()
                        {
                            RoleId = userRoleIdForInsert, UserId = accessUserRole.UserId
                        };
                        userRoleBusiness.Insert(userRoleForInsert);
                    }

                    await userRoleBusiness.SaveChangesAsync();

                    return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = (int)ResultCode.Successful, data = accessUserRole.UserId }));
                }
            }
            catch (Exception ex)
            {
                return(await this.HandleExceptionAsync(ex));
            }
            finally
            {
                BusinessRule.Dispose();
            }
        }
Пример #6
0
        public async Task <HttpResponseMessage> FindUserInfo(int userID)
        {
            try
            {
                UserInfoVM userInfoVm = null;
                UserInfo   userInfo   = await BusinessRule.FindAsync(userID);

                userInfoVm = TranslateEntityToCustomQueryEntity(userInfo);

                return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = (int)ResultCode.Successful, data = userInfoVm }));
            }
            catch (Exception ex)
            {
                return(await this.HandleExceptionAsync(ex));
            }
            finally
            {
                BusinessRule.Dispose();
            }
        }