Ejemplo n.º 1
0
 public AdminkaAnonymousRoutineHandler(
     ApplicationSettings applicationSettings,
     Func <Guid, MemberTag, IMemberLogger> loggingTransientsFactory,
     bool hasVerboseLoggingPrivilege,
     MemberTag memberTag,
     string auditStamp,
     object input) : base(
         applicationSettings,
         (u) => auditStamp,
         new AdminkaRoutineHandlerFactory <AnonymousUserContext>(
             correlationToken: Guid.NewGuid(),
             InjectedManager.DefaultRoutineTagTransformException,
             loggingTransientsFactory,
             applicationSettings.PerformanceCounters)
         .CreateLoggingHandler(
             memberTag,
             InjectedManager.CreateContainerFactory(
                 applicationSettings.ConfigurationContainerFactory
                 ).CreateContainer(memberTag, auditStamp),
             new AnonymousUserContext(auditStamp),
             hasVerboseLoggingPrivilege: hasVerboseLoggingPrivilege,
             input)
         )
 {
 }
Ejemplo n.º 2
0
        public ActionResult MakeNewGroup(OrgGroupsModel m)
        {
            if (!m.GroupName.HasValue())
            {
                return(Content("error: no group name"));
            }

            //var Db = Db;
            var group = CurrentDatabase.MemberTags.SingleOrDefault(g =>
                                                                   g.Name == m.GroupName && g.OrgId == m.orgid);

            if (group == null)
            {
                group = new MemberTag
                {
                    Name  = m.GroupName,
                    OrgId = m.orgid
                };
                CurrentDatabase.MemberTags.InsertOnSubmit(group);
                CurrentDatabase.SubmitChanges();
            }
            m.groupid          = group.Id;
            ViewData["newgid"] = group.Id;
            return(Redirect("/OrgGroups/Management/" + m.orgid));
        }
Ejemplo n.º 3
0
 public ListLoggingAdapter(
     List <string> logger,
     Guid correlationToken,
     MemberTag memberTag,
     Func <Exception, string> markdownException,
     Func <object, int, bool, string> serializeObject
     )
 {
     this.logger            = logger;
     this.correlationToken  = correlationToken;
     this.memberTag         = memberTag;
     this.routineTag        = memberTag.ToText(correlationToken);
     this.markdownException = markdownException;
     this.serializeObject   = (o) =>
     {
         try
         {
             return(serializeObject(o, 1, true));
         }
         catch (Exception ex)
         {
             LogException(DateTime.Now, ex);
             return(null);
         }
     };
 }
Ejemplo n.º 4
0
        public static IRoutineHandlerAsync <TUser, TUserContext> GetUserHandlerAsync <TUser, TUserContext>(
            AspRoutineFeature aspRoutineFeature,
            Func <object> getInput,
            TUser user,
            TUserContext userContext,
            ContainerFactory containerFactory,
            MemberTag memberTag,
            ApplicationSettings applicationSettings,
            Func <TUserContext, string> configurationFor
            )
        {
            var composeLoggers = InjectedManager.ComposeNLogMemberLoggerFactory(aspRoutineFeature.TraceDocument.Builder);
            var logger         = new AdminkaRoutineHandlerFactory <TUserContext>(aspRoutineFeature.CorrelationToken,
                                                                                 InjectedManager.DefaultRoutineTagTransformException, composeLoggers,
                                                                                 applicationSettings.PerformanceCounters);
            var  @for      = configurationFor(userContext);
            var  container = containerFactory.CreateContainer(memberTag, @for);
            bool hasVerboseLoggingPrivilege = true;
            var  input          = getInput();
            var  routineHandler = logger.CreateLoggingHandler(memberTag, container, userContext, hasVerboseLoggingPrivilege, input);

            return(new ComplexRoutineHandlerAsync <TUser, TUserContext>(
                       closure => user,
                       routineHandler
                       ));
        }
Ejemplo n.º 5
0
        public IContainer CreateContainer(MemberTag memberTag, string @for)
        {
            var configurationContainer = configurationContainerFactory
                                         .Create(memberTag, @for);

            return(configurationContainer);
        }
Ejemplo n.º 6
0
 public PageContainerRoutineHandler(
     PageModel pageModel,
     PageRoutineFeature pageRoutineFeature,
     ApplicationSettings applicationSettings,
     IMemoryCache memoryCache,
     MemberTag memberTag,
     Func <User, UserContext> createUserContext
     ) : base(
         pageModel,
         applicationSettings,
         memberTag,
         uc => uc.AuditStamp,
         uc => uc.AuditStamp,
         (aspRoutineFeature) =>
         AspNetCoreManager.GetUserAndFailedActionResultInitialisedAsync(
             applicationSettings,
             memberTag,
             pageModel,
             aspRoutineFeature,
             memoryCache,
             pageRoutineFeature),
         createUserContext
         )
 {
 }
Ejemplo n.º 7
0
        /// <summary>
        /// 修改标签名
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string UpdateTagName(HttpContext context)
        {
            string autoId  = context.Request["AutoID"];
            string tagName = context.Request["TagName"];

            MemberTag tag = bllTag.GetTag(int.Parse(autoId));

            if (bllTag.ExistsTag(new MemberTag()
            {
                TagName = tagName, TagType = tag.TagType, WebsiteOwner = tag.TagType
            }))
            {
                resp.Status = 0;
                resp.Msg    = "标签名重复,不能修改成该名称";
                return(Common.JSONHelper.ObjectToJson(resp));
            }
            if (bllTag.UpdateTag(autoId, tagName))
            {
                resp.Status = 1;
                resp.Msg    = "修改成功";
            }
            else
            {
                resp.Msg = "修改失败";
            }
            return(Common.JSONHelper.ObjectToJson(resp));
        }
Ejemplo n.º 8
0
    private MemberTag CreateTag(int insId)
    {
        MemberTag tag = Instantiate(memberTagPrefab, scrollView.Content);

        tag.FirstSetup(insId);
        return(tag);
    }
Ejemplo n.º 9
0
 // Used as "pre-final-2" stage to prepare containerFactory, memberTag and usercontext
 private AdminkaRoutineHandlerBaseAsync(
     ApplicationSettings applicationSettings,
     IPerformanceCounters performanceCounters,
     Func <Exception, Guid, MemberTag, /*Func<Exception, string>, */ Exception> routineTransformException,
     Func <Guid, MemberTag, IMemberLogger> composeLoggers,
     IContainer container,
     Guid correaltionToken,
     MemberTag memberTag,
     TUserContext userContext,
     bool hasVerboseLoggingPrivilege,
     Func <TUserContext, string> getAuditStamp,
     object input
     ) : this(
         applicationSettings,
         new AdminkaRoutineHandlerFactory <TUserContext>(correaltionToken,
                                                         routineTransformException,
                                                         composeLoggers,
                                                         performanceCounters),
         container,
         memberTag,
         userContext,
         hasVerboseLoggingPrivilege,
         getAuditStamp,
         input)
 {
 }
Ejemplo n.º 10
0
    private void LoadAllMemeber(GuildMemberRow own)
    {
        ReadOnlyCollection <GuildMemberRow> members = guildSys.GuildTable.ReadOnlyRows;
        int count = members.Count;

        for (int i = 0; i < count; i++)
        {
            int       capture = i;
            MemberTag tag     = PoolTag.GetItem();

            if (ChangableGradePermission(own, members[capture]))
            {
                tag.IncreaseGradeBtn.OnClickEvents += () => S_PROMOTE(members[capture]);
                tag.DecreaseGradeBtn.OnClickEvents += () => S_DECREASE_GRADE(members[capture]);
            }
            else
            {
                tag.IncreaseGradeBtn.gameObject.SetActive(false);
                tag.DecreaseGradeBtn.gameObject.SetActive(false);
            }
            if (KickPermission(own, members[capture]))
            {
                tag.KickBtn.OnClickEvents += () => S_KICKOUT_GUILD(members[capture]);
            }
            else
            {
                tag.KickBtn.gameObject.SetActive(false);
            }

            CatchingTags.Enqueue(tag);
            tag.gameObject.SetActive(true);
        }
    }
Ejemplo n.º 11
0
 // used by wcf and test (predefined UserContext with its own transformException)
 public AdminkaRoutineHandlerBaseAsync(
     ApplicationSettings applicationSettings,
     IPerformanceCounters performanceCounters,
     IConfigurationContainerFactory configurationFactory,
     Func <Exception, Guid, MemberTag, /* Func<Exception, string>,*/ Exception> routineTransformException,
     Guid correlationToken,
     ITraceDocumentBuilder documentBuilder,
     MemberTag memberTag,
     TUserContext userContext,
     bool hasVerboseLoggingPrivilege,
     string configurationFor,
     Func <TUserContext, string> getAuditStamp,
     object input
     ) : this(
         applicationSettings,
         performanceCounters,
         routineTransformException,
         InjectedManager.ComposeNLogMemberLoggerFactory(documentBuilder),
         InjectedManager.CreateContainerFactory(configurationFactory).CreateContainer(memberTag, configurationFor),
         correlationToken,
         memberTag,
         userContext,
         hasVerboseLoggingPrivilege,
         getAuditStamp,
         input)
 {
 }
Ejemplo n.º 12
0
 public AdminkaRoutineHandlerBaseAsync(
     ApplicationSettings applicationSettings,
     TUserContext userContext,
     Func <TUserContext, string> getAuditStamp,
     object input,
     Guid correlationToken,
     ITraceDocumentBuilder documentBuilder,
     bool hasVerboseLoggingPrivilege,
     string configurationFor,
     MemberTag memberTag
     ) : this( // to final
         applicationSettings,
         getAuditStamp,
         new AdminkaRoutineHandlerFactory <TUserContext>(
             correlationToken,
             InjectedManager.DefaultRoutineTagTransformException,
             InjectedManager.ComposeNLogMemberLoggerFactory(documentBuilder),
             applicationSettings.PerformanceCounters)
         .CreateLoggingHandler(
             memberTag,
             InjectedManager.CreateContainerFactory(
                 applicationSettings.ConfigurationContainerFactory
                 ).CreateContainer(memberTag, configurationFor),
             userContext,
             hasVerboseLoggingPrivilege,
             input)
         )
 {
 }
Ejemplo n.º 13
0
 public AdminkaAnonymousRoutineHandlerAsync(
     ApplicationSettings applicationSettings,
     IPerformanceCounters performanceCounters,
     IConfigurationContainerFactory configurationContainerFactory,
     Func <Exception, Guid, MemberTag, /*Func<Exception, string>,*/ Exception> transformException,
     Guid correlationToken,
     ITraceDocumentBuilder documentBuilder,
     MemberTag memberTag,
     AnonymousUserContext anonymousUserContext,
     object input
     ) : base(
         applicationSettings,
         performanceCounters,
         configurationContainerFactory,
         transformException,
         correlationToken,
         documentBuilder,
         memberTag,
         anonymousUserContext,
         false, //getVerboseLoggingFlag: (userContext) => "VerboseLogging", // (userContext) => (userContext?.User?.HasPrivilege(Privilege.VerboseLogging) ?? false) ? Privilege.VerboseLogging : null
         configurationFor: anonymousUserContext.AuditStamp,
         u => u.AuditStamp,
         input
         )
 {
 }
Ejemplo n.º 14
0
        public void AddNewSmallGroup()
        {
            var o  = DbUtil.Db.LoadOrganizationById(Id);
            var mt = new MemberTag {
                Name = NewGroup
            };

            o.MemberTags.Add(mt);
            DbUtil.Db.SubmitChanges();
            DbUtil.LogActivity("OrgMem AddNewSubGroup " + NewGroup, Id);
            AddSmallGroup(mt.Id);
            NewGroup = null;
        }
Ejemplo n.º 15
0
        public string AddNewSmallGroup(int pid)
        {
            var o  = DbUtil.Db.LoadOrganizationById(OrgId);
            var mt = new MemberTag {
                Name = NewGroup
            };

            o.MemberTags.Add(mt);
            DbUtil.Db.SubmitChanges();
            DbUtil.LogActivity("OrgMem AddNewSubGroup " + NewGroup, OrgId);
            NewGroup = null;
            return(SmallGroupChanged(mt.Id, true));
        }
Ejemplo n.º 16
0
 public static Exception DefaultRoutineTagTransformException(
     Exception exception,
     Guid correlationToken,
     MemberTag memberTag
     //,
     //Func<Exception, string> markdownException
     )
 {
     exception.Data["CorrelationToken"]          = correlationToken;
     exception.Data[nameof(MemberTag.Namespace)] = memberTag.Namespace;
     exception.Data[nameof(MemberTag.Type)]      = memberTag.Type;
     exception.Data[nameof(MemberTag.Member)]    = memberTag.Member;
     return(exception);
 }
Ejemplo n.º 17
0
 public AdminkaAnonymousRoutineHandlerAsync(
     ApplicationSettings applicationSettings,
     bool hasVerboseLoggingPrivilege,
     MemberTag memberTag,
     string auditStamp,
     object input) : this(
         applicationSettings,
         InjectedManager.ComposeNLogMemberLoggerFactory(null),
         hasVerboseLoggingPrivilege,
         memberTag,
         auditStamp,
         input
         )
 {
 }
Ejemplo n.º 18
0
 public MemberTag MakeNewGroup()
 {
     var group = new MemberTag
     {
         Name = GroupName,
         OrgId = orgid,
         CheckIn = AllowCheckin.ToBool(),
         ScheduleId = ScheduleId,
         CheckInOpenDefault = CheckInOpenDefault,
         CheckInCapacityDefault = CheckInCapacityDefault,
     };
     Db.MemberTags.InsertOnSubmit(group);
     Db.SubmitChanges();
     groupid = group.Id;
     return group;
 }
Ejemplo n.º 19
0
        public NLogLoggingAdapter(
            Guid correlationToken,
            ITraceDocumentBuilder documentBuilder,
            MemberTag memberTag,
            Func <Exception, string> markdownException,
            Func <object, int, bool, string> serializeObject
            )
        {
            this.correlationToken = correlationToken;
            this.documentBuilder  = documentBuilder;
            this.memberTag        = memberTag;
            var loggerName = "Routine:" + memberTag.GetCategory();

            logger = LogManager.GetLogger(loggerName); // ~0.5 ms
            this.serializeObject   = serializeObject;
            this.markdownException = markdownException;
        }
Ejemplo n.º 20
0
 // Used as "pre-final-1"  stage to prepare container
 private AdminkaRoutineHandlerBaseAsync(
     ApplicationSettings applicationSettings,
     AdminkaRoutineHandlerFactory <TUserContext> routineLogger,
     IContainer container,
     MemberTag memberTag,
     TUserContext userContext,
     bool hasVerboseLoggingPrivilege,
     Func <TUserContext, string> getAuditStamp,
     object input) :
     this(
         applicationSettings,
         getAuditStamp,
         routineLogger.CreateLoggingHandler(memberTag, container, userContext,
                                            hasVerboseLoggingPrivilege,
                                            input)
         )
 {
 }
Ejemplo n.º 21
0
 GetUserAndFailedActionResultInitialisedAsync(
     ApplicationSettings applicationSettings,
     MemberTag memberTag,
     ControllerBase controllerBase,
     AspRoutineFeature aspRoutineFeature,
     IMemoryCache memoryCache,
     string aspRequestId
     )
 {
     return(GetUserAndFailedActionResultInitialisedAsync(applicationSettings, memberTag,
                                                         getName: () => controllerBase.User.Identity.Name,
                                                         systemIsInRole: g => controllerBase.User.IsInRole(g),
                                                         aspRoutineFeature,
                                                         memoryCache,
                                                         getForbiddenActionResult: () => controllerBase.Forbid(),
                                                         exceptionToActionResult: (ex) => {
         return AspNetCoreManager.GetErrorActionResult(ex, aspRequestId, applicationSettings.ForceDetailsOnCustomErrorPage, null);
     }
                                                         ));
 }
Ejemplo n.º 22
0
 GetUserAndFailedActionResultInitialisedAsync(
     ApplicationSettings applicationSettings,
     MemberTag memberTag,
     PageModel pageModel,
     AspRoutineFeature aspRoutineFeature,
     IMemoryCache memoryCache,
     PageRoutineFeature pageRoutineFeature
     )
 {
     return(GetUserAndFailedActionResultInitialisedAsync(applicationSettings, memberTag,
                                                         getName: () => pageModel.User.Identity.Name,
                                                         systemIsInRole: g => pageModel.User.IsInRole(g),
                                                         aspRoutineFeature,
                                                         memoryCache,
                                                         getForbiddenActionResult: () => pageModel.RedirectToPage(
                                                             "AccessDenied",
                                                             new { pageRoutineFeature.Referrer }),
                                                         exceptionToActionResult: null
                                                         ));
 }
Ejemplo n.º 23
0
        public ConfigurationContainer(IEnumerable <IRoutineConfigurationRecord <TSerialized> > routineConfigurationRecords,
                                      IGWithConstructorFactory <TSerialized> deserializer,
                                      MemberTag memberTag, string @for)
        {
            this.deserializer = deserializer;
            var memberRoutineConfigurationRecords = routineConfigurationRecords.LimitRoutineConfigurationRecords(memberTag);

            foreach (var routineConfigurationRecord in memberRoutineConfigurationRecords)
            {
                if (routineConfigurationRecord.For.IsNullOrWhiteSpaceOrAsterix() || routineConfigurationRecord.For == @for)
                {
                    foreach (var resolvableConfigurationRecord in routineConfigurationRecord.Resolvables)
                    {
                        if (!elements.Any(e => e.Type == resolvableConfigurationRecord.Type && e.Namespace == resolvableConfigurationRecord.Namespace))
                        {
                            elements.Add(resolvableConfigurationRecord);
                        }
                    }
                }
            }
        }
Ejemplo n.º 24
0
        public void AddNewSmallGroup()
        {
            var db = CMSDataContext.Create(Host);
            var o  = db.LoadOrganizationById(OrgId);

            if (o != null)
            {
                var mt = new MemberTag {
                    Name = NewGroup
                };
                o.MemberTags.Add(mt);
                db.SubmitChanges();
                DbUtil.LogActivity("OrgMem AddNewSubGroup " + NewGroup, OrgId);
                AddSmallGroup(mt.Id);
                NewGroup = null;
            }
            else
            {
                throw new Exception($"Org not found: {OrgId}");
            }
        }
Ejemplo n.º 25
0
 public static ComplexRoutineHandlerAsync <PerCallContainer <TUserContext>, TUserContext> GetContainerHandlerAsync <TUserContext>(
     MemberTag memberTag,
     AspRoutineFeature aspRoutineFeature,
     Func <object> getInput,
     TUserContext userContext,
     ApplicationSettings applicationSettings,
     Func <TUserContext, string> getConfigurationFor,
     Func <TUserContext, string> getAuditStamp
     )
 {
     return(new AdminkaRoutineHandlerBaseAsync <TUserContext>(
                applicationSettings,
                userContext,
                getAuditStamp: getAuditStamp,
                input: getInput(),
                correlationToken: aspRoutineFeature.CorrelationToken,
                documentBuilder: aspRoutineFeature.TraceDocument.Builder,
                hasVerboseLoggingPrivilege: false,
                configurationFor: getConfigurationFor(userContext),
                memberTag: memberTag
                ));
 }
Ejemplo n.º 26
0
 public ApiUserRoutineHandler(
     ControllerBase controllerBase,
     ApplicationSettings applicationSettings,
     IMemoryCache memoryCache,
     MemberTag memberTag
     ) : base(
         controllerBase,
         (aspRoutineFeature) => AspNetCoreManager.GetUserAndFailedActionResultInitialisedAsync(applicationSettings, memberTag, controllerBase, aspRoutineFeature, memoryCache, aspRoutineFeature.AspRequestId),
         (aspRoutineFeature, getInput, user, containerFactory) =>
         AspNetCoreManager.GetUserHandler(
             aspRoutineFeature,
             getInput,
             user,
             new UserContext(user),
             containerFactory,
             memberTag,
             applicationSettings,
             uc => uc.User.LoginName
             )
         )
 {
 }
Ejemplo n.º 27
0
        /// <summary>
        /// 添加标签
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string AddTag(HttpContext context)
        {
            string tagName = context.Request["TagName"],
                   tagType = context.Request["TagType"];

            if (string.IsNullOrEmpty(tagName))
            {
                resp.Status = 0;
                resp.Msg    = "请输入标签名称";
                return(Common.JSONHelper.ObjectToJson(resp));
            }
            MemberTag tag = new MemberTag();

            tag.TagType      = string.IsNullOrEmpty(tagType) ? "all" : tagType;
            tag.TagName      = tagName;
            tag.CreateTime   = DateTime.Now;
            tag.Creator      = this.currentUserInfo.UserID;
            tag.WebsiteOwner = bllTag.WebsiteOwner;
            if (bllTag.ExistsTag(tag))
            {
                resp.Status = 0;
                resp.Msg    = "标签不能重复添加";
                return(Common.JSONHelper.ObjectToJson(resp));
            }

            if (bllTag.AddTag(tag))
            {
                resp.Status = 1;
                resp.Msg    = "添加成功";
            }
            else
            {
                resp.Status = 0;
                resp.Msg    = "添加失败";
            }

            return(Common.JSONHelper.ObjectToJson(resp));
        }
Ejemplo n.º 28
0
        public static ComplexRoutineHandlerAsync <StorageRoutineHandlerAsync <TUserContext>, TUserContext> GetContainerStorageHandlerAsync <TUserContext>(
            ContainerFactory containerFactory,
            MemberTag memberTag,
            AspRoutineFeature aspRoutineFeature,
            Func <object> getInput,
            TUserContext userContext,
            ApplicationSettings applicationSettings,
            //Func<TUserContext, string> getConfigurationFor,
            Func <TUserContext, string> getAuditStamp
            )
        {
            var adminkaRoutineHandlerFactory = new AdminkaRoutineHandlerFactory <TUserContext>(
                correlationToken: Guid.NewGuid(),
                InjectedManager.DefaultRoutineTagTransformException,
                InjectedManager.ComposeNLogMemberLoggerFactory(null),
                applicationSettings.PerformanceCounters);

            IHandlerAsync <RoutineClosure <TUserContext> > loggingHandler = adminkaRoutineHandlerFactory.CreateLoggingHandler(
                memberTag,
                containerFactory.CreateContainer(memberTag, getAuditStamp(userContext)),
                userContext,
                hasVerboseLoggingPrivilege: false,
                getInput());

            return(new ComplexRoutineHandlerAsync <StorageRoutineHandlerAsync <TUserContext>, TUserContext> /*AdminkaRoutineHandlerBase<TUserContext>*/ (
                       closure => new AuthenticationDomStorageRoutineHandlerAsync <TUserContext>(
                           applicationSettings.AdminkaStorageConfiguration,
                           userContext,
                           null,
                           new Handler <RoutineClosure <TUserContext>, RoutineClosure <TUserContext> >(
                               () => closure,
                               closure
                               ),
                           getAudit: uc => getAuditStamp(uc)
                           ),
                       loggingHandler
                       ));
        }
Ejemplo n.º 29
0
        public ActionResult MakeNewGroup(OrgGroupsModel m)
        {
            if (!m.GroupName.HasValue())
            {
                return(Content("error: no group name"));
            }
            var Db    = CurrentDatabase;
            var group = new MemberTag {
                Name                   = m.GroupName,
                OrgId                  = m.orgid,
                CheckIn                = m.AllowCheckin.ToBool(),
                ScheduleId             = m.ScheduleId,
                CheckInOpenDefault     = m.CheckInOpenDefault,
                CheckInCapacityDefault = m.CheckInCapacityDefault,
            };

            Db.MemberTags.InsertOnSubmit(group);
            Db.SubmitChanges();

            m.groupid          = group.Id;
            ViewData["newgid"] = group.Id;
            return(Redirect("/OrgGroups/Management/" + m.orgid));
        }
Ejemplo n.º 30
0
        public ActionResult MakeNewGroup(OrgGroupsModel m)
        {
            if (!m.GroupName.HasValue())
            {
                return(Content("error: no group name"));
            }
            var Db    = DbUtil.Db;
            var group = Db.MemberTags.SingleOrDefault(g =>
                                                      g.Name == m.GroupName && g.OrgId == m.orgid);

            if (group == null)
            {
                group = new MemberTag
                {
                    Name  = m.GroupName,
                    OrgId = m.orgid
                };
                Db.MemberTags.InsertOnSubmit(group);
                Db.SubmitChanges();
            }
            m.groupid          = group.Id;
            ViewData["newgid"] = group.Id;
            return(View("Form", m));
        }
Ejemplo n.º 31
0
 public Member(string Name, TypeInterface Type, MemberTag Tag)
 {
     this.Name = Name;
     this.Type = Type;
     this.Tag = Tag;
 }