Пример #1
0
        public bool RevokeUserAccess(GuidEntity entity, Guid groupId)
        {
            var task     = AvoidAsyncDeadlock(() => RevokeUserAccessAsync(entity, groupId));
            var response = task.Result;

            return(response.StatusCode == HttpStatusCode.OK);
        }
Пример #2
0
        public void Multi_Type_Entity_Test()
        {
            var intEntity = new IntEntity()
            {
                Id = 1
            };
            var longEntity = new LongEntity()
            {
                Id = 1
            };
            var stringEntity = new StringEntity()
            {
                Id = "A"
            };
            var guidEntity = new GuidEntity()
            {
                Id = new Guid()
            };
            var userEntity = new UserEntity()
            {
                Id = { No = 1, Code = "AA" }
            };

            Assert.NotNull(intEntity);
            Assert.NotNull(longEntity);
            Assert.NotNull(stringEntity);
            Assert.NotNull(guidEntity);
            Assert.NotNull(userEntity);
        }
Пример #3
0
        public Access GetAccess(GuidEntity entity)
        {
            var task     = AvoidAsyncDeadlock(() => GetAccessAsync(entity));
            var response = task.Result;

            return(response.Data);
        }
Пример #4
0
        /// <summary>
        /// Get user or groups access permissions.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        public Task <MojioResponse <Access> > GetAccessAsync(GuidEntity entity)
        {
            string controller = Map[typeof(Access)];
            var    request    = GetRequest(Request(controller, entity.Type, entity.Id), Method.GET);

            return(RequestAsync <Access>(request));
        }
Пример #5
0
        public bool GrantUserAccess(GuidEntity entity, Guid userId, Permissions flags = Permissions.View)
        {
            var task     = AvoidAsyncDeadlock(() => GrantUserAccessAsync(entity, userId, flags));
            var response = task.Result;

            return(response.StatusCode == HttpStatusCode.OK);
        }
Пример #6
0
        /// <summary>
        /// 根据id获取数据
        /// </summary>
        /// <param name="ContentId">内容id</param>
        /// <returns></returns>
        public async System.Threading.Tasks.Task <CL_Content> GetInfo(GuidEntity ContentId)
        {
            string             sql     = $"SELECT * FROM {ReName($"{Prefix}Content")} WHERE {ReName("ContentId")}=@ContentId;";
            List <DbParameter> parlist = new List <DbParameter>();

            parlist.Add(CreateParam("@ContentId", ContentId));
            return(await QueryInfo(sql, $"GetInfo:{ContentId}", DataReader, parlist.ToArray()));
        }
Пример #7
0
        /// <summary>
        /// 删除数据
        /// </summary>
        /// <param name="ContentId">内容id</param>
        /// <returns></returns>
        public async System.Threading.Tasks.Task <bool> Delete(GuidEntity ContentId)
        {
            string             sql     = $"DELETE FROM {ReName($"{Prefix}Content")} WHERE {ReName("ContentId")}=@ContentId;";
            List <DbParameter> parlist = new List <DbParameter>();

            parlist.Add(CreateParam("@ContentId", ContentId));
            return(await ExecuteNonQueryMem(sql, parlist.ToArray()));
        }
Пример #8
0
 //TODO:: allow end users to add more events to the throttle than the default
 // battery and fuel events.
 public bool hasThrottle(GuidEntity entity)
 {
     return  (EventTypes.Contains(EventType.LowBattery) &&
             ((Event)entity).EventType == EventType.LowBattery) 
             ||
             (EventTypes.Contains(EventType.LowFuel) &&
             ((Event)entity).EventType == EventType.LowFuel);
 }
Пример #9
0
        public void Equalses()
        {
            Guid       nid = Guid.NewGuid();
            GuidEntity a   = new GuidEntity(nid);
            GuidEntity b   = new GuidEntity(nid);

            Assert.True(a == b);
        }
Пример #10
0
 /// <summary>
 /// 更新内容id
 /// </summary>
 /// <param name="ContentId">内容id</param>
 /// <returns></returns>
 public async System.Threading.Tasks.Task <bool> UpdateWithContentId(GuidEntity ContentId)
 {
     if (IsEmpty())
     {
         return(false);
     }
     entity.ContentId = ContentId;
     return(await Update());
 }
Пример #11
0
        /// <summary>
        /// 根据id获取数据
        /// </summary>
        /// <param name="serviceProvider">依赖注入接口</param>
        /// <param name="ContentId">内容id</param>
        /// <returns></returns>
        public static async System.Threading.Tasks.Task <ContentContext> GetInfo(
            IServiceProvider serviceProvider,
            GuidEntity ContentId)
        {
            Culture.BusyData.Content  db     = new Culture.BusyData.Content(serviceProvider);
            Culture.Entity.CL_Content entity = await db.GetInfo(ContentId);

            return(new ContentContext(serviceProvider, entity, db));
        }
Пример #12
0
        /// <summary>
        /// Revoke user access to entity.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <param name="groupId">The group or user identifier.</param>
        /// <returns></returns>
        public Task <MojioResponse> RevokeUserAccessAsync(GuidEntity entity, Guid groupId)
        {
            string action  = Map[typeof(Access)];
            var    request = GetRequest(Request(action, entity.Type, entity.Id, "users"), Method.DELETE);

            request.AddParameter("userId", groupId);

            return(RequestAsync(request));
        }
Пример #13
0
        /// <summary>
        /// 处理函数
        /// </summary>
        /// <param name="serviceProvider">依赖注入接口</param>
        /// <param name="ContentId">内容id</param>
        /// <param name="Title">标题</param>
        /// <param name="Image">首图</param>
        /// <param name="Content">内容</param>
        /// <param name="Status">状态 0:未审核 1:审核通过 2:拒绝</param>
        /// <param name="Updated">更新时间</param>
        /// <param name="CreateUid">创建用户</param>
        /// <param name="CreateIP">建立IP</param>
        /// <param name="CreateDate">建立时间</param>
        /// <param name="Introduce">介绍</param>
        public static async System.Threading.Tasks.Task <ContentContext> Sub(
            IServiceProvider serviceProvider,
            GuidEntity ContentId
            , StringEntity Title
            , StringEntity Image
            , StringEntity Content
            , short Status
            , System.DateTime Updated
            , GuidEntity CreateUid
            , StringEntity CreateIP
            , System.DateTime CreateDate
            , StringEntity Introduce
            )
        {
            ContentContext operinfo = await GetInfo(serviceProvider, ContentId);

            if (operinfo.IsEmpty())
            {
                Culture.Entity.CL_Content info = new Culture.Entity.CL_Content
                {
                    ContentId  = operinfo.CreateGuid(),
                    Title      = Title,
                    Image      = Image,
                    Content    = Content,
                    Status     = Status,
                    Recycle    = 0,
                    Updated    = Updated,
                    CreateUid  = CreateUid,
                    CreateIP   = CreateIP,
                    CreateDate = CreateDate,
                    Introduce  = Introduce,
                };
                operinfo.SetEntity(info);
                if (!await operinfo.Insert())
                {
                    throw new System.Exception("添加失败!");
                }
            }
            else
            {
                operinfo.GetEntity().Title      = Title;
                operinfo.GetEntity().Image      = Image;
                operinfo.GetEntity().Content    = Content;
                operinfo.GetEntity().Status     = Status;
                operinfo.GetEntity().Updated    = Updated;
                operinfo.GetEntity().CreateUid  = CreateUid;
                operinfo.GetEntity().CreateIP   = CreateIP;
                operinfo.GetEntity().CreateDate = CreateDate;
                operinfo.GetEntity().Introduce  = Introduce;
                if (!await operinfo.Update())
                {
                    throw new System.Exception("更改失败!");
                }
            }
            return(operinfo);
        }
Пример #14
0
 /// <summary>
 /// 获取(空信息)
 /// </summary>
 /// <param name="serviceProvider">依赖注入接口</param>
 /// <param name="page">分页信息</param>
 /// <param name="ContentId"></param>
 /// <returns></returns>
 public static async System.Threading.Tasks.Task <List <CommContext> > GetListPageWithContentID(
     IServiceProvider serviceProvider,
     PageInfo page,
     GuidEntity ContentId)
 {
     Culture.BusyData.Comm db = new Culture.BusyData.Comm(serviceProvider);
     return(await TransList(
                db.GetListPageWithContentID(page, ContentId),
                t => { return new CommContext(serviceProvider, t, db); }));
 }
Пример #15
0
        public void should_insert_entity_with_null_value()
        {
            var entity = new GuidEntity();

            _guidTable1.Insert(entity);
            entity.Id.ShouldNotEqual(Guid.Empty);
            var newEntity = _guidTable1.First(x => x.Id == entity.Id);

            newEntity.Name.ShouldBeNull();
        }
Пример #16
0
 /// <summary>
 /// 根据状态获取信息列表
 /// </summary>
 /// <param name="serviceProvider"></param>
 /// <param name="page"></param>
 /// <param name="createid"></param>
 /// <param name="status"></param>
 /// <returns></returns>
 public static async System.Threading.Tasks.Task <List <ContentContext> > GetListPageCreateID(
     IServiceProvider serviceProvider,
     PageInfo page,
     GuidEntity createid,
     int status)
 {
     Culture.BusyData.Content db = new Culture.BusyData.Content(serviceProvider);
     return(await TransList(
                db.GetListPageCreateID(page, createid, status),
                t => { return new ContentContext(serviceProvider, t, db); }));
 }
Пример #17
0
        public Permissions GetUserAccess(GuidEntity entity, Guid userId)
        {
#pragma warning disable 0618
            var access = GetAccess(entity);
#pragma warning restore 0618
            var query = from u in access.Users
                        where u.UserId.Equals(userId)
                        select u.Permissions;

            return(query.FirstOrDefault());
        }
Пример #18
0
 /// <summary>
 /// 根据分页参数获取数据列表
 /// </summary>
 /// <param name="page">分页信息</param>
 /// <param name="uid">审核状态</param>
 /// <param name="status">状态</param>
 /// <returns></returns>
 public async System.Threading.Tasks.Task <List <CL_Content> > GetListPageCreateID(
     PageInfo page,
     GuidEntity uid,
     int status)
 {
     return(await QueryListPage(
                $"{ReName($"{Prefix}Content")}",
                $"GetListPageCreateID:{uid}:status:{status}",
                DataReader,
                page,
                $"{ReName("CreateUid")} =  '{uid}'  AND {Recycle()}  AND  {ReName("Status")} = {status} "));
 }
Пример #19
0
 /// <summary>
 /// 获取内容的评论信息
 /// </summary>
 /// <param name="page"></param>
 /// <param name="ContentId"></param>
 /// <returns></returns>
 public async System.Threading.Tasks.Task <List <CL_Comm> > GetListPageWithContentID(
     PageInfo page,
     GuidEntity ContentId)
 {
     return(await QueryListPage(
                $"{ReName($"{Prefix}Comm")}",
                $"GetListPageWithContentID:{ContentId}",
                DataReader,
                page,
                $"{ReName("ContentId")} = '{ContentId}'",
                "*",
                $"order by {ReName("CreateDate")} DESC"));
 }
Пример #20
0
        /// <summary>
        /// Set user access to entity with given permissions.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <param name="userId">The user identifier.</param>
        /// <param name="flags">The permission flags.</param>
        /// <returns></returns>
        public Task <MojioResponse> SetUserAccessAsync(GuidEntity entity, Guid userId, Permissions flags = Permissions.View)
        {
            string action  = Map[typeof(Access)];
            var    request = GetRequest(Request(action, entity.Type, entity.Id, "users"), Method.POST);
            var    access  = new UserAccess()
            {
                UserId      = userId,
                Permissions = flags
            };

            request.AddBody(access);

            return(RequestAsync(request));
        }
Пример #21
0
        public void Insert_Entity_Test()
        {
            var entity = new GuidEntity();

            entity.Name = "oh hai";
            entity.Values.Add("timestamp", DateTime.Now);
            entity.Values.Add("hide", true);
            _guidTable1.Insert(entity);
            entity.Id.ShouldNotEqual(Guid.Empty);
            var newEntity = _guidTable1.First(x => x.Id == entity.Id);

            newEntity.Name.ShouldEqual("oh hai");
            newEntity.Values["timestamp"].ToString().ShouldEqual(entity.Values["timestamp"].ToString());
            newEntity.Values["hide"].ShouldEqual(entity.Values["hide"]);
        }
        public void GeneratedGuidConstraint_DoNotChangeGuidOnUpdate()
        {
            GeneratedGuidConstraint <GuidEntity> constraint =
                new GeneratedGuidConstraint <GuidEntity>(e => e.Field);

            GuidEntity entity        = new GuidEntity();
            Guid       originalValue = entity.Field;

            IExecutionContext context =
                new FakeExecutionContext(operationType: OperationType.Update);

            constraint.Apply(entity, context);

            Assert.AreEqual(originalValue, entity.Field);
        }
Пример #23
0
        /// <summary>
        /// 处理函数
        /// </summary>
        /// <param name="serviceProvider">依赖注入接口</param>
        /// <param name="CommID">评论id</param>
        /// <param name="ContentId">内容id</param>
        /// <param name="Content">内容</param>
        /// <param name="Updated">更新时间</param>
        /// <param name="CreateUid">创建用户</param>
        /// <param name="CreateIP">建立IP</param>
        /// <param name="CreateDate">建立时间</param>
        public static async System.Threading.Tasks.Task <CommContext> Sub(
            IServiceProvider serviceProvider,
            GuidEntity CommID
            , GuidEntity ContentId
            , StringEntity Content
            , System.DateTime Updated
            , GuidEntity CreateUid
            , StringEntity CreateIP
            , System.DateTime CreateDate
            )
        {
            CommContext operinfo = await GetInfo(serviceProvider, CommID);

            if (operinfo.IsEmpty())
            {
                Culture.Entity.CL_Comm info = new Culture.Entity.CL_Comm
                {
                    CommID     = operinfo.CreateGuid(),
                    ContentId  = ContentId,
                    Content    = Content,
                    Recycle    = 0,
                    Updated    = Updated,
                    CreateUid  = CreateUid,
                    CreateIP   = CreateIP,
                    CreateDate = CreateDate,
                };
                operinfo.SetEntity(info);
                if (!await operinfo.Insert())
                {
                    throw new System.Exception("添加失败!");
                }
            }
            else
            {
                operinfo.GetEntity().ContentId  = ContentId;
                operinfo.GetEntity().Content    = Content;
                operinfo.GetEntity().Updated    = Updated;
                operinfo.GetEntity().CreateUid  = CreateUid;
                operinfo.GetEntity().CreateIP   = CreateIP;
                operinfo.GetEntity().CreateDate = CreateDate;
                if (!await operinfo.Update())
                {
                    throw new System.Exception("更改失败!");
                }
            }
            return(operinfo);
        }
Пример #24
0
 /// <summary>
 /// 验证
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 protected override bool Vail(AuthorizationHandlerContext context)
 {
     if (base.Vail(context))
     {
         return(true);
     }
     if (context.User.Identity.AuthenticationType.Contains(AuthenticationScheme))
     {
         GuidEntity uid = context.User.FindFirstValue(NetCore.Macro.COOKIESLOGIN_UID);
         if (uid == GuidEntity.Empty)
         {
             return(false);
         }
         return(true);
     }
     return(false);
 }
Пример #25
0
        public void Entity_No_Equals_Test()
        {
            var intEntity = new IntEntity()
            {
                Id = 1
            };
            var longEntity = new LongEntity()
            {
                Id = 1
            };

            Assert.False(intEntity.Equals(longEntity));


            var guidEntity1 = new GuidEntity();
            var guidEntity2 = new GuidEntity();

            Assert.False(guidEntity1.Equals(guidEntity2));
        }
Пример #26
0
        public Permissions MyAccess(GuidEntity entity)
        {
            var task     = AvoidAsyncDeadlock(() => GetAccessAsync(entity));
            var response = task.Result;

            var access = response.Data;

            if (access.Users == null)
            {
                return(Permissions.None);
            }

#pragma warning disable 0618
            var query = from u in access.Users
                        where u.UserId.Equals(CurrentUser.Id)
                        select u.Permissions;
#pragma warning restore 0618

            return(query.FirstOrDefault());
        }
Пример #27
0
        public void Entity_IsTransient_Test()
        {
            var intEntity = new IntEntity();

            Assert.True(intEntity.IsTransient());

            var longEntity = new LongEntity();

            Assert.True(longEntity.IsTransient());

            var stringEntity = new StringEntity();

            Assert.True(stringEntity.IsTransient());

            var guidEntity = new GuidEntity();

            Assert.True(guidEntity.IsTransient());

            var userEntity = new UserEntity();

            Assert.True(userEntity.IsTransient());
        }
Пример #28
0
 public override bool isThrottled(GuidEntity entity)
 {
     return hasThrottle(entity) &&
         base.isThrottled(entity);
 }
Пример #29
0
 public override bool UpdateThrottle(GuidEntity entity)
 {
     return hasThrottle(entity) && 
         Throttle != null;
 }
Пример #30
0
 public virtual bool UpdateThrottle(GuidEntity entity)
 {
     return Throttle != null;
 }
Пример #31
0
 public virtual bool isThrottled(GuidEntity entity)
 {
     // Now earlier than the next broadcast.
     return (Throttle != null &&
         NextAllowedBroadcast != null &&
         DateTime.Compare(DateTime.UtcNow,
                          NextAllowedBroadcast.GetValueOrDefault()) < 0); 
 }
Пример #32
0
 public bool SetStored(GuidEntity entity, string key, string value)
 {
     return(SetStored(entity.GetType(), entity.Id, key, value));
 }
Пример #33
0
 public bool DeleteStored(GuidEntity entity, string key)
 {
     return(DeleteStored(entity.GetType(), entity.Id, key));
 }
Пример #34
0
 public string GetStored(GuidEntity entity, string key)
 {
     return(GetStored(entity.GetType(), entity.Id, key));
 }