コード例 #1
0
        /// <summary>
        /// Fixed:
        /// </summary>
        public static string Register(Context context)
        {
            var ss          = new SiteSettings();
            var passphrase  = Strings.NewGuid();
            var mailAddress = Forms.Data("Users_DemoMailAddress");
            var tenantModel = new TenantModel()
            {
                TenantName = mailAddress
            };

            tenantModel.Create(context: context, ss: ss);
            var demoModel = new DemoModel()
            {
                TenantId    = tenantModel.TenantId,
                Passphrase  = passphrase,
                MailAddress = mailAddress
            };

            demoModel.Create(context: context, ss: ss);
            demoModel.Initialize(context: context, outgoingMailModel: new OutgoingMailModel()
            {
                Title = new Title(Displays.DemoMailTitle()),
                Body  = Displays.DemoMailBody(
                    Locations.DemoUri(passphrase),
                    Parameters.Service.DemoUsagePeriod.ToString()),
                From = new System.Net.Mail.MailAddress(Parameters.Mail.SupportFrom),
                To   = mailAddress,
                Bcc  = Parameters.Mail.SupportFrom
            });
            return(Messages.ResponseSentAcceptanceMail()
                   .Remove("#DemoForm")
                   .ToJson());
        }
コード例 #2
0
 /// <summary>
 /// Fixed:
 /// </summary>
 private static void InitializeLinks(
     Context context, DemoModel demoModel, Dictionary <string, long> idHash)
 {
     Def.DemoDefinitionCollection
     .Where(o => o.Type == "Sites")
     .Where(o => o.ClassB.Trim() != string.Empty)
     .ForEach(demoDefinition =>
              Rds.ExecuteNonQuery(
                  context: context,
                  statements: Rds.InsertLinks(param: Rds.LinksParam()
                                              .DestinationId(idHash.Get(demoDefinition.ClassB))
                                              .SourceId(idHash.Get(demoDefinition.Id)))));
     Def.DemoDefinitionCollection
     .Where(o => o.Type == "Sites")
     .Where(o => o.ClassC.Trim() != string.Empty)
     .ForEach(demoDefinition =>
              Rds.ExecuteNonQuery(
                  context: context,
                  statements: Rds.InsertLinks(param: Rds.LinksParam()
                                              .DestinationId(idHash.Get(demoDefinition.ClassC))
                                              .SourceId(idHash.Get(demoDefinition.Id)))));
     Def.DemoDefinitionCollection
     .Where(o => o.ClassA.RegexExists("^#[A-Za-z0-9]+?#$"))
     .ForEach(demoDefinition =>
              Rds.ExecuteNonQuery(
                  context: context,
                  statements: Rds.InsertLinks(param: Rds.LinksParam()
                                              .DestinationId(idHash.Get(demoDefinition.ClassA
                                                                        .Substring(1, demoDefinition.ClassA.Length - 2)))
                                              .SourceId(idHash.Get(demoDefinition.Id)))));
 }
コード例 #3
0
 /// <summary>
 /// Fixed:
 /// </summary>
 private static void InitializeSites(
     Context context, DemoModel demoModel, Dictionary <string, long> idHash)
 {
     Def.DemoDefinitionCollection
     .Where(o => o.Type == "Sites" && o.ParentId == string.Empty)
     .ForEach(o => InitializeSites(
                  context: context,
                  demoModel: demoModel,
                  idHash: idHash,
                  topId: o.Id));
     new SiteCollection(
         context: context,
         where : Rds.SitesWhere().TenantId(demoModel.TenantId))
     .ForEach(siteModel =>
     {
         var fullText = siteModel.FullText(
             context: context, ss: siteModel.SiteSettings);
         Rds.ExecuteNonQuery(
             context: context,
             statements: Rds.UpdateItems(
                 param: Rds.ItemsParam()
                 .SiteId(siteModel.SiteId)
                 .Title(siteModel.Title.DisplayValue)
                 .FullText(fullText, _using: fullText != null),
                 where : Rds.ItemsWhere().ReferenceId(siteModel.SiteId),
                 addUpdatorParam: false,
                 addUpdatedTimeParam: false));
     });
 }
コード例 #4
0
        /// <summary>
        /// Fixed:
        /// </summary>
        public static string Register()
        {
            var passphrase  = Strings.NewGuid();
            var mailAddress = Forms.Data("Users_DemoMailAddress");
            var tenantModel = new TenantModel()
            {
                TenantName = mailAddress
            };

            tenantModel.Create();
            var demoModel = new DemoModel()
            {
                TenantId    = tenantModel.TenantId,
                Passphrase  = passphrase,
                MailAddress = mailAddress
            };

            demoModel.Create();
            demoModel.Initialize(new OutgoingMailModel()
            {
                Title = new Title(Displays.DemoMailTitle()),
                Body  = Displays.DemoMailBody(Url.Server(), passphrase),
                From  = new System.Net.Mail.MailAddress(Parameters.Mail.SupportFrom),
                To    = mailAddress,
                Bcc   = Parameters.Mail.SupportFrom
            });
            return(Messages.ResponseSentAcceptanceMail()
                   .Remove("#DemoForm")
                   .ToJson());
        }
コード例 #5
0
 /// <summary>
 /// Fixed:
 /// </summary>
 private static void InitializeUsers(
     Context context, DemoModel demoModel, Dictionary <string, long> idHash, string password)
 {
     Def.DemoDefinitionCollection
     .Where(o => o.Type == "Users")
     .ForEach(demoDefinition =>
     {
         var loginId = LoginId(demoModel, demoDefinition.Id);
         idHash.Add(demoDefinition.Id, Rds.ExecuteScalar_response(
                        context: context,
                        selectIdentity: true,
                        statements: new SqlStatement[]
         {
             Rds.InsertUsers(
                 setIdentity: true,
                 param: Rds.UsersParam()
                 .TenantId(demoModel.TenantId)
                 .LoginId(loginId)
                 .Password(password)
                 .Name(demoDefinition.Title)
                 .DeptId(idHash.Get(demoDefinition.ParentId).ToInt())
                 .Birthday(demoDefinition.ClassC.ToDateTime())
                 .Gender(demoDefinition.ClassB)
                 .CreatedTime(demoDefinition.CreatedTime.DemoTime(demoModel))
                 .UpdatedTime(demoDefinition.UpdatedTime.DemoTime(demoModel))),
             Rds.InsertMailAddresses(
                 param: Rds.MailAddressesParam()
                 .OwnerId(raw: Def.Sql.Identity)
                 .OwnerType("Users")
                 .MailAddress(loginId + "@example.com"))
         }).Identity.ToLong());
     });
 }
コード例 #6
0
        /// <summary>
        /// Fixed:
        /// </summary>
        private static void Initialize(
            this DemoModel demoModel, Context context, OutgoingMailModel outgoingMailModel)
        {
            var idHash   = new Dictionary <string, long>();
            var password = Strings.NewGuid().Sha512Cng();

            System.Threading.Tasks.Task.Run(() =>
            {
                demoModel.Initialize(context: context, idHash: idHash, password: password);
                outgoingMailModel.Send(context: context, ss: new SiteSettings());
            });
        }
コード例 #7
0
        /// <summary>
        /// Fixed:
        /// </summary>
        private static void Initialize(
            this DemoModel demoModel, OutgoingMailModel outgoingMailModel)
        {
            var idHash   = new Dictionary <string, long>();
            var loginId  = LoginId(demoModel, "User1");
            var password = Strings.NewGuid().Sha512Cng();

            System.Threading.Tasks.Task.Run(() =>
            {
                demoModel.Initialize(idHash, password);
                outgoingMailModel.Send();
            });
        }
コード例 #8
0
        /// <summary>
        /// Fixed:
        /// </summary>
        private static void Initialize(
            this DemoModel demoModel,
            Context context,
            Dictionary <string, long> idHash,
            string password)
        {
            demoModel.InitializeTimeLag();
            InitializeDepts(
                context: context,
                demoModel: demoModel,
                idHash: idHash);
            InitializeUsers(
                context: context,
                demoModel: demoModel,
                idHash: idHash,
                password: password);
            var userModel = new UserModel(
                context: context,
                ss: SiteSettingsUtilities.UsersSiteSettings(context: context),
                loginId: LoginId(demoModel, "User1"));

            userModel.SetSession();
            context.SetBySession();
            SiteInfo.Reflesh(context: context);
            InitializeSites(context: context, demoModel: demoModel, idHash: idHash);
            Def.DemoDefinitionCollection
            .Where(o => o.Type == "Sites")
            .OrderBy(o => o.Id)
            .ForEach(o =>
            {
                InitializeIssues(
                    context: context, demoModel: demoModel, parentId: o.Id, idHash: idHash);
                InitializeResults(
                    context: context, demoModel: demoModel, parentId: o.Id, idHash: idHash);
            });
            InitializeLinks(
                context: context,
                demoModel: demoModel,
                idHash: idHash);
            InitializePermissions(
                context: context,
                idHash: idHash);
            Rds.ExecuteNonQuery(
                context: context,
                statements: Rds.UpdateDemos(
                    param: Rds.DemosParam().Initialized(true),
                    where : Rds.DemosWhere().Passphrase(demoModel.Passphrase)));
            Libraries.Migrators.SiteSettingsMigrator.Migrate(context: context);
        }
コード例 #9
0
 /// <summary>
 /// Fixed:
 /// </summary>
 private static void InitializeDepts(DemoModel demoModel, Dictionary <string, long> idHash)
 {
     Def.DemoDefinitionCollection
     .Where(o => o.Type == "Depts")
     .ForEach(demoDefinition =>
              idHash.Add(demoDefinition.Id, Rds.ExecuteScalar_long(statements:
                                                                   Rds.InsertDepts(
                                                                       selectIdentity: true,
                                                                       param: Rds.DeptsParam()
                                                                       .TenantId(demoModel.TenantId)
                                                                       .DeptCode(demoDefinition.ClassA)
                                                                       .DeptName(demoDefinition.Title)
                                                                       .CreatedTime(demoDefinition.CreatedTime.DemoTime(demoModel))
                                                                       .UpdatedTime(demoDefinition.UpdatedTime.DemoTime(demoModel))))));
 }
コード例 #10
0
ファイル: DemoModel.cs プロジェクト: yamuun/Implem.Pleasanter
 public void SetByModel(DemoModel demoModel)
 {
     TenantId    = demoModel.TenantId;
     Title       = demoModel.Title;
     Passphrase  = demoModel.Passphrase;
     MailAddress = demoModel.MailAddress;
     Initialized = demoModel.Initialized;
     TimeLag     = demoModel.TimeLag;
     Comments    = demoModel.Comments;
     Creator     = demoModel.Creator;
     Updator     = demoModel.Updator;
     CreatedTime = demoModel.CreatedTime;
     UpdatedTime = demoModel.UpdatedTime;
     VerUp       = demoModel.VerUp;
     Comments    = demoModel.Comments;
 }
コード例 #11
0
 /// <summary>
 /// Fixed:
 /// </summary>
 private static void InitializeSites(DemoModel demoModel, Dictionary <string, long> idHash)
 {
     Def.DemoDefinitionCollection
     .Where(o => o.Type == "Sites" && o.ParentId == string.Empty)
     .ForEach(o => InitializeSites(demoModel, idHash, o.Id));
     new SiteCollection(where : Rds.SitesWhere().TenantId(demoModel.TenantId))
     .ForEach(siteModel =>
     {
         Rds.ExecuteNonQuery(statements: Rds.UpdateItems(
                                 param: Rds.ItemsParam()
                                 .SiteId(siteModel.SiteId)
                                 .Title(siteModel.Title.DisplayValue),
                                 where : Rds.ItemsWhere().ReferenceId(siteModel.SiteId),
                                 addUpdatorParam: false,
                                 addUpdatedTimeParam: false));
     });
 }
コード例 #12
0
        /// <summary>
        /// Fixed:
        /// </summary>
        public static bool Login(Context context)
        {
            var demoModel = new DemoModel().Get(
                context: context,
                where : Rds.DemosWhere()
                .Passphrase(QueryStrings.Data("passphrase"))
                .CreatedTime(
                    DateTime.Now.AddDays(Parameters.Service.DemoUsagePeriod * -1),
                    _operator: ">="));

            if (demoModel.AccessStatus == Databases.AccessStatuses.Selected)
            {
                var loginId  = LoginId(demoModel, "User1");
                var password = Strings.NewGuid().Sha512Cng();
                if (!demoModel.Initialized)
                {
                    var idHash = new Dictionary <string, long>();
                    demoModel.Initialize(context: context, idHash: idHash, password: password);
                }
                else
                {
                    Rds.ExecuteNonQuery(
                        context: context,
                        statements: Rds.UpdateUsers(
                            param: Rds.UsersParam().Password(password),
                            where : Rds.UsersWhere().LoginId(loginId)));
                }
                new UserModel()
                {
                    LoginId  = loginId,
                    Password = password
                }.Authenticate(
                    context: context,
                    returnUrl: string.Empty);
                SiteInfo.Reflesh(context: context, force: true);
                return(Sessions.LoggedIn());
            }
            else
            {
                return(false);
            }
        }
コード例 #13
0
        /// <summary>
        /// Fixed:
        /// </summary>
        private static string Comments(
            DemoModel demoModel,
            Dictionary <string, long> idHash,
            string parentId)
        {
            var comments = new Comments();

            Def.DemoDefinitionCollection
            .Where(o => o.Type == "Comments")
            .Where(o => o.ParentId == parentId)
            .Select((o, i) => new { DemoDefinition = o, Index = i })
            .ForEach(data =>
                     comments.Add(new Comment
            {
                CommentId   = data.Index + 1,
                CreatedTime = data.DemoDefinition.CreatedTime.DemoTime(demoModel),
                Creator     = idHash.Get(data.DemoDefinition.Creator).ToInt(),
                Body        = data.DemoDefinition.Body.Replace(idHash)
            }));
            return(comments.ToJson());
        }
コード例 #14
0
 /// <summary>
 /// Fixed:
 /// </summary>
 private static void InitializeSites(
     Context context, DemoModel demoModel, Dictionary <string, long> idHash, string topId)
 {
     Def.DemoDefinitionCollection
     .Where(o => o.Type == "Sites")
     .Where(o => o.Id == topId || o.ParentId == topId)
     .ForEach(demoDefinition => idHash.Add(
                  demoDefinition.Id, Rds.ExecuteScalar_response(
                      context: context,
                      selectIdentity: true,
                      statements: new SqlStatement[]
     {
         Rds.InsertItems(
             setIdentity: true,
             param: Rds.ItemsParam()
             .ReferenceType("Sites")
             .Creator(idHash.Get(demoDefinition.Creator))
             .Updator(idHash.Get(demoDefinition.Updator))
             .CreatedTime(demoDefinition.CreatedTime.DemoTime(demoModel))
             .UpdatedTime(demoDefinition.UpdatedTime.DemoTime(demoModel)),
             addUpdatorParam: false),
         Rds.InsertSites(
             param: Rds.SitesParam()
             .TenantId(demoModel.TenantId)
             .SiteId(raw: Def.Sql.Identity)
             .Title(demoDefinition.Title)
             .ReferenceType(demoDefinition.ClassA)
             .ParentId(idHash.ContainsKey(demoDefinition.ParentId)
                                 ? idHash.Get(demoDefinition.ParentId)
                                 : 0)
             .InheritPermission(idHash, topId, demoDefinition.ParentId)
             .SiteSettings(demoDefinition.Body.Replace(idHash))
             .Creator(idHash.Get(demoDefinition.Creator))
             .Updator(idHash.Get(demoDefinition.Updator))
             .CreatedTime(demoDefinition.CreatedTime.DemoTime(demoModel))
             .UpdatedTime(demoDefinition.UpdatedTime.DemoTime(demoModel)),
             addUpdatorParam: false)
     }).Identity.ToLong()));
 }
コード例 #15
0
 public void SetByModel(DemoModel demoModel)
 {
     TenantId        = demoModel.TenantId;
     Title           = demoModel.Title;
     LoginId         = demoModel.LoginId;
     Passphrase      = demoModel.Passphrase;
     MailAddress     = demoModel.MailAddress;
     Initialized     = demoModel.Initialized;
     TimeLag         = demoModel.TimeLag;
     Comments        = demoModel.Comments;
     Creator         = demoModel.Creator;
     Updator         = demoModel.Updator;
     CreatedTime     = demoModel.CreatedTime;
     UpdatedTime     = demoModel.UpdatedTime;
     VerUp           = demoModel.VerUp;
     Comments        = demoModel.Comments;
     ClassHash       = demoModel.ClassHash;
     NumHash         = demoModel.NumHash;
     DateHash        = demoModel.DateHash;
     DescriptionHash = demoModel.DescriptionHash;
     CheckHash       = demoModel.CheckHash;
     AttachmentsHash = demoModel.AttachmentsHash;
 }
コード例 #16
0
 /// <summary>
 /// Fixed:
 /// </summary>
 private static void Initialize(
     this DemoModel demoModel, Dictionary <string, long> idHash, string password)
 {
     demoModel.InitializeTimeLag();
     InitializeDepts(demoModel, idHash);
     InitializeUsers(demoModel, idHash, password);
     SiteInfo.Reflesh(force: true);
     InitializeSites(demoModel, idHash);
     Def.DemoDefinitionCollection
     .Where(o => o.Type == "Sites")
     .OrderBy(o => o.Id)
     .ForEach(o =>
     {
         InitializeIssues(demoModel, o.Id, idHash);
         InitializeResults(demoModel, o.Id, idHash);
     });
     InitializeLinks(demoModel, idHash);
     InitializePermissions(idHash);
     Rds.ExecuteNonQuery(statements: Rds.UpdateDemos(
                             param: Rds.DemosParam().Initialized(true),
                             where : Rds.DemosWhere().Passphrase(demoModel.Passphrase)));
     Libraries.Migrators.SiteSettingsMigrator.Migrate();
 }
コード例 #17
0
 /// <summary>
 /// Fixed:
 /// </summary>
 private static DateTime DemoTime(this DateTime self, DemoModel demoModel)
 {
     return(self.AddDays(demoModel.TimeLag).ToUniversal());
 }
コード例 #18
0
 /// <summary>
 /// Fixed:
 /// </summary>
 private static string LoginId(DemoModel demoModel, string userId)
 {
     return("Tenant" + demoModel.TenantId + "_" + userId);
 }
コード例 #19
0
 /// <summary>
 /// Fixed:
 /// </summary>
 private static void InitializeIssues(
     Context context,
     DemoModel demoModel,
     string parentId,
     Dictionary <string, long> idHash)
 {
     Def.DemoDefinitionCollection
     .Where(o => o.ParentId == parentId)
     .Where(o => o.Type == "Issues")
     .ForEach(demoDefinition =>
     {
         var issueId = Rds.ExecuteScalar_response(
             context: context,
             selectIdentity: true,
             statements: new SqlStatement[]
         {
             Rds.InsertItems(
                 setIdentity: true,
                 param: Rds.ItemsParam()
                 .ReferenceType("Issues")
                 .Creator(idHash.Get(demoDefinition.Creator))
                 .Updator(idHash.Get(demoDefinition.Updator))
                 .CreatedTime(demoDefinition.CreatedTime.DemoTime(demoModel))
                 .UpdatedTime(demoDefinition.CreatedTime.DemoTime(demoModel)),
                 addUpdatorParam: false),
             Rds.InsertIssues(
                 param: Rds.IssuesParam()
                 .SiteId(idHash.Get(demoDefinition.ParentId))
                 .IssueId(raw: Def.Sql.Identity)
                 .Title(demoDefinition.Title)
                 .Body(demoDefinition.Body.Replace(idHash))
                 .StartTime(demoDefinition.StartTime.DemoTime(demoModel))
                 .CompletionTime(demoDefinition.CompletionTime
                                 .AddDays(1).DemoTime(demoModel))
                 .WorkValue(demoDefinition.WorkValue)
                 .ProgressRate(0)
                 .Status(demoDefinition.Status)
                 .Manager(idHash.Get(demoDefinition.Manager))
                 .Owner(idHash.Get(demoDefinition.Owner))
                 .ClassA(demoDefinition.ClassA.Replace(idHash))
                 .ClassB(demoDefinition.ClassB.Replace(idHash))
                 .ClassC(demoDefinition.ClassC.Replace(idHash))
                 .ClassD(demoDefinition.ClassD.Replace(idHash))
                 .ClassE(demoDefinition.ClassE.Replace(idHash))
                 .ClassF(demoDefinition.ClassF.Replace(idHash))
                 .ClassG(demoDefinition.ClassG.Replace(idHash))
                 .ClassH(demoDefinition.ClassH.Replace(idHash))
                 .ClassI(demoDefinition.ClassI.Replace(idHash))
                 .ClassJ(demoDefinition.ClassJ.Replace(idHash))
                 .ClassK(demoDefinition.ClassK.Replace(idHash))
                 .ClassL(demoDefinition.ClassL.Replace(idHash))
                 .ClassM(demoDefinition.ClassM.Replace(idHash))
                 .ClassN(demoDefinition.ClassN.Replace(idHash))
                 .ClassO(demoDefinition.ClassO.Replace(idHash))
                 .ClassP(demoDefinition.ClassP.Replace(idHash))
                 .ClassQ(demoDefinition.ClassQ.Replace(idHash))
                 .ClassR(demoDefinition.ClassR.Replace(idHash))
                 .ClassS(demoDefinition.ClassS.Replace(idHash))
                 .ClassT(demoDefinition.ClassT.Replace(idHash))
                 .ClassU(demoDefinition.ClassU.Replace(idHash))
                 .ClassV(demoDefinition.ClassV.Replace(idHash))
                 .ClassW(demoDefinition.ClassW.Replace(idHash))
                 .ClassX(demoDefinition.ClassX.Replace(idHash))
                 .ClassY(demoDefinition.ClassY.Replace(idHash))
                 .ClassZ(demoDefinition.ClassZ.Replace(idHash))
                 .NumA(demoDefinition.NumA)
                 .NumB(demoDefinition.NumB)
                 .NumC(demoDefinition.NumC)
                 .NumD(demoDefinition.NumD)
                 .NumE(demoDefinition.NumE)
                 .NumF(demoDefinition.NumF)
                 .NumG(demoDefinition.NumG)
                 .NumH(demoDefinition.NumH)
                 .NumI(demoDefinition.NumI)
                 .NumJ(demoDefinition.NumJ)
                 .NumK(demoDefinition.NumK)
                 .NumL(demoDefinition.NumL)
                 .NumM(demoDefinition.NumM)
                 .NumN(demoDefinition.NumN)
                 .NumO(demoDefinition.NumO)
                 .NumP(demoDefinition.NumP)
                 .NumQ(demoDefinition.NumQ)
                 .NumR(demoDefinition.NumR)
                 .NumS(demoDefinition.NumS)
                 .NumT(demoDefinition.NumT)
                 .NumU(demoDefinition.NumU)
                 .NumV(demoDefinition.NumV)
                 .NumW(demoDefinition.NumW)
                 .NumX(demoDefinition.NumX)
                 .NumY(demoDefinition.NumY)
                 .NumZ(demoDefinition.NumZ)
                 .DateA(demoDefinition.DateA)
                 .DateB(demoDefinition.DateB)
                 .DateC(demoDefinition.DateC)
                 .DateD(demoDefinition.DateD)
                 .DateE(demoDefinition.DateE)
                 .DateF(demoDefinition.DateF)
                 .DateG(demoDefinition.DateG)
                 .DateH(demoDefinition.DateH)
                 .DateI(demoDefinition.DateI)
                 .DateJ(demoDefinition.DateJ)
                 .DateK(demoDefinition.DateK)
                 .DateL(demoDefinition.DateL)
                 .DateM(demoDefinition.DateM)
                 .DateN(demoDefinition.DateN)
                 .DateO(demoDefinition.DateO)
                 .DateP(demoDefinition.DateP)
                 .DateQ(demoDefinition.DateQ)
                 .DateR(demoDefinition.DateR)
                 .DateS(demoDefinition.DateS)
                 .DateT(demoDefinition.DateT)
                 .DateU(demoDefinition.DateU)
                 .DateV(demoDefinition.DateV)
                 .DateW(demoDefinition.DateW)
                 .DateX(demoDefinition.DateX)
                 .DateY(demoDefinition.DateY)
                 .DateZ(demoDefinition.DateZ)
                 .DescriptionA(demoDefinition.DescriptionA)
                 .DescriptionB(demoDefinition.DescriptionB)
                 .DescriptionC(demoDefinition.DescriptionC)
                 .DescriptionD(demoDefinition.DescriptionD)
                 .DescriptionE(demoDefinition.DescriptionE)
                 .DescriptionF(demoDefinition.DescriptionF)
                 .DescriptionG(demoDefinition.DescriptionG)
                 .DescriptionH(demoDefinition.DescriptionH)
                 .DescriptionI(demoDefinition.DescriptionI)
                 .DescriptionJ(demoDefinition.DescriptionJ)
                 .DescriptionK(demoDefinition.DescriptionK)
                 .DescriptionL(demoDefinition.DescriptionL)
                 .DescriptionM(demoDefinition.DescriptionM)
                 .DescriptionN(demoDefinition.DescriptionN)
                 .DescriptionO(demoDefinition.DescriptionO)
                 .DescriptionP(demoDefinition.DescriptionP)
                 .DescriptionQ(demoDefinition.DescriptionQ)
                 .DescriptionR(demoDefinition.DescriptionR)
                 .DescriptionS(demoDefinition.DescriptionS)
                 .DescriptionT(demoDefinition.DescriptionT)
                 .DescriptionU(demoDefinition.DescriptionU)
                 .DescriptionV(demoDefinition.DescriptionV)
                 .DescriptionW(demoDefinition.DescriptionW)
                 .DescriptionX(demoDefinition.DescriptionX)
                 .DescriptionY(demoDefinition.DescriptionY)
                 .DescriptionZ(demoDefinition.DescriptionZ)
                 .CheckA(demoDefinition.CheckA)
                 .CheckB(demoDefinition.CheckB)
                 .CheckC(demoDefinition.CheckC)
                 .CheckD(demoDefinition.CheckD)
                 .CheckE(demoDefinition.CheckE)
                 .CheckF(demoDefinition.CheckF)
                 .CheckG(demoDefinition.CheckG)
                 .CheckH(demoDefinition.CheckH)
                 .CheckI(demoDefinition.CheckI)
                 .CheckJ(demoDefinition.CheckJ)
                 .CheckK(demoDefinition.CheckK)
                 .CheckL(demoDefinition.CheckL)
                 .CheckM(demoDefinition.CheckM)
                 .CheckN(demoDefinition.CheckN)
                 .CheckO(demoDefinition.CheckO)
                 .CheckP(demoDefinition.CheckP)
                 .CheckQ(demoDefinition.CheckQ)
                 .CheckR(demoDefinition.CheckR)
                 .CheckS(demoDefinition.CheckS)
                 .CheckT(demoDefinition.CheckT)
                 .CheckU(demoDefinition.CheckU)
                 .CheckV(demoDefinition.CheckV)
                 .CheckW(demoDefinition.CheckW)
                 .CheckX(demoDefinition.CheckX)
                 .CheckY(demoDefinition.CheckY)
                 .CheckZ(demoDefinition.CheckZ)
                 .Comments(Comments(demoModel, idHash, demoDefinition.Id))
                 .Creator(idHash.Get(demoDefinition.Creator))
                 .Updator(idHash.Get(demoDefinition.Updator))
                 .CreatedTime(demoDefinition.CreatedTime.DemoTime(demoModel))
                 .UpdatedTime(demoDefinition.CreatedTime.DemoTime(demoModel)),
                 addUpdatorParam: false)
         }).Identity.ToLong();
         idHash.Add(demoDefinition.Id, issueId);
         var siteModel = new SiteModel().Get(
             context: context,
             where : Rds.SitesWhere().SiteId(idHash.Get(demoDefinition.ParentId)));
         var ss         = siteModel.IssuesSiteSettings(context: context, referenceId: issueId);
         var issueModel = new IssueModel(
             context: context,
             ss: ss,
             issueId: issueId);
         var fullText = issueModel.FullText(context: context, ss: ss);
         Rds.ExecuteNonQuery(
             context: context,
             statements: Rds.UpdateItems(
                 param: Rds.ItemsParam()
                 .SiteId(issueModel.SiteId)
                 .Title(issueModel.Title.DisplayValue)
                 .FullText(fullText, _using: fullText != null),
                 where : Rds.ItemsWhere().ReferenceId(issueModel.IssueId),
                 addUpdatorParam: false,
                 addUpdatedTimeParam: false));
         var days = issueModel.CompletionTime.Value < DateTime.Now
                 ? (issueModel.CompletionTime.Value - issueModel.StartTime).Days
                 : (DateTime.Now - issueModel.StartTime).Days;
         if (demoDefinition.ProgressRate > 0)
         {
             var startTime    = issueModel.StartTime;
             var progressRate = demoDefinition.ProgressRate;
             var status       = issueModel.Status.Value;
             var creator      = issueModel.Creator.Id;
             var updator      = issueModel.Updator.Id;
             for (var d = 0; d < days - 1; d++)
             {
                 issueModel.VerUp = true;
                 issueModel.Update(context: context, ss: ss);
                 var recordingTime = d > 0
                         ? startTime
                                     .AddDays(d)
                                     .AddHours(-6)
                                     .AddMinutes(new Random().Next(-360, +360))
                         : issueModel.CreatedTime.Value;
                 Rds.ExecuteNonQuery(
                     context: context,
                     statements: Rds.UpdateIssues(
                         tableType: Sqls.TableTypes.History,
                         addUpdatedTimeParam: false,
                         addUpdatorParam: false,
                         param: Rds.IssuesParam()
                         .ProgressRate(ProgressRate(progressRate, days, d))
                         .Status(d > 0 ? 200 : 100)
                         .Creator(creator)
                         .Updator(updator)
                         .CreatedTime(recordingTime)
                         .UpdatedTime(recordingTime),
                         where : Rds.IssuesWhere()
                         .IssueId(issueModel.IssueId)
                         .Ver(sub: Rds.SelectIssues(
                                  tableType: Sqls.TableTypes.HistoryWithoutFlag,
                                  column: Rds.IssuesColumn()
                                  .Ver(function: Sqls.Functions.Max),
                                  where : Rds.IssuesWhere()
                                  .IssueId(issueModel.IssueId)))));
             }
             Rds.ExecuteNonQuery(
                 context: context,
                 statements: Rds.UpdateIssues(
                     addUpdatorParam: false,
                     addUpdatedTimeParam: false,
                     param: Rds.IssuesParam()
                     .ProgressRate(progressRate)
                     .Status(status)
                     .Creator(creator)
                     .Updator(updator)
                     .CreatedTime(demoDefinition.CreatedTime.DemoTime(demoModel))
                     .UpdatedTime(demoDefinition.UpdatedTime.DemoTime(demoModel)),
                     where : Rds.IssuesWhere()
                     .IssueId(issueModel.IssueId)));
         }
     });
 }
コード例 #20
0
 /// <summary>
 /// Fixed:
 /// </summary>
 private static void InitializeResults(
     Context context,
     DemoModel demoModel,
     string parentId,
     Dictionary <string, long> idHash)
 {
     Def.DemoDefinitionCollection
     .Where(o => o.ParentId == parentId)
     .Where(o => o.Type == "Results")
     .ForEach(demoDefinition =>
     {
         var resultId = Rds.ExecuteScalar_response(
             context: context,
             selectIdentity: true,
             statements: new SqlStatement[]
         {
             Rds.InsertItems(
                 setIdentity: true,
                 param: Rds.ItemsParam()
                 .ReferenceType("Results")
                 .Creator(idHash.Get(demoDefinition.Creator))
                 .Updator(idHash.Get(demoDefinition.Updator))
                 .CreatedTime(demoDefinition.CreatedTime.DemoTime(demoModel))
                 .UpdatedTime(demoDefinition.UpdatedTime.DemoTime(demoModel)),
                 addUpdatorParam: false),
             Rds.InsertResults(
                 param: Rds.ResultsParam()
                 .SiteId(idHash.Get(demoDefinition.ParentId))
                 .ResultId(raw: Def.Sql.Identity)
                 .Title(demoDefinition.Title)
                 .Body(demoDefinition.Body.Replace(idHash))
                 .Status(demoDefinition.Status)
                 .Manager(idHash.Get(demoDefinition.Manager))
                 .Owner(idHash.Get(demoDefinition.Owner))
                 .ClassA(demoDefinition.ClassA.Replace(idHash))
                 .ClassB(demoDefinition.ClassB.Replace(idHash))
                 .ClassC(demoDefinition.ClassC.Replace(idHash))
                 .ClassD(demoDefinition.ClassD.Replace(idHash))
                 .ClassE(demoDefinition.ClassE.Replace(idHash))
                 .ClassF(demoDefinition.ClassF.Replace(idHash))
                 .ClassG(demoDefinition.ClassG.Replace(idHash))
                 .ClassH(demoDefinition.ClassH.Replace(idHash))
                 .ClassI(demoDefinition.ClassI.Replace(idHash))
                 .ClassJ(demoDefinition.ClassJ.Replace(idHash))
                 .ClassK(demoDefinition.ClassK.Replace(idHash))
                 .ClassL(demoDefinition.ClassL.Replace(idHash))
                 .ClassM(demoDefinition.ClassM.Replace(idHash))
                 .ClassN(demoDefinition.ClassN.Replace(idHash))
                 .ClassO(demoDefinition.ClassO.Replace(idHash))
                 .ClassP(demoDefinition.ClassP.Replace(idHash))
                 .ClassQ(demoDefinition.ClassQ.Replace(idHash))
                 .ClassR(demoDefinition.ClassR.Replace(idHash))
                 .ClassS(demoDefinition.ClassS.Replace(idHash))
                 .ClassT(demoDefinition.ClassT.Replace(idHash))
                 .ClassU(demoDefinition.ClassU.Replace(idHash))
                 .ClassV(demoDefinition.ClassV.Replace(idHash))
                 .ClassW(demoDefinition.ClassW.Replace(idHash))
                 .ClassX(demoDefinition.ClassX.Replace(idHash))
                 .ClassY(demoDefinition.ClassY.Replace(idHash))
                 .ClassZ(demoDefinition.ClassZ.Replace(idHash))
                 .NumA(demoDefinition.NumA)
                 .NumB(demoDefinition.NumB)
                 .NumC(demoDefinition.NumC)
                 .NumD(demoDefinition.NumD)
                 .NumE(demoDefinition.NumE)
                 .NumF(demoDefinition.NumF)
                 .NumG(demoDefinition.NumG)
                 .NumH(demoDefinition.NumH)
                 .NumI(demoDefinition.NumI)
                 .NumJ(demoDefinition.NumJ)
                 .NumK(demoDefinition.NumK)
                 .NumL(demoDefinition.NumL)
                 .NumM(demoDefinition.NumM)
                 .NumN(demoDefinition.NumN)
                 .NumO(demoDefinition.NumO)
                 .NumP(demoDefinition.NumP)
                 .NumQ(demoDefinition.NumQ)
                 .NumR(demoDefinition.NumR)
                 .NumS(demoDefinition.NumS)
                 .NumT(demoDefinition.NumT)
                 .NumU(demoDefinition.NumU)
                 .NumV(demoDefinition.NumV)
                 .NumW(demoDefinition.NumW)
                 .NumX(demoDefinition.NumX)
                 .NumY(demoDefinition.NumY)
                 .NumZ(demoDefinition.NumZ)
                 .DateA(demoDefinition.DateA)
                 .DateB(demoDefinition.DateB)
                 .DateC(demoDefinition.DateC)
                 .DateD(demoDefinition.DateD)
                 .DateE(demoDefinition.DateE)
                 .DateF(demoDefinition.DateF)
                 .DateG(demoDefinition.DateG)
                 .DateH(demoDefinition.DateH)
                 .DateI(demoDefinition.DateI)
                 .DateJ(demoDefinition.DateJ)
                 .DateK(demoDefinition.DateK)
                 .DateL(demoDefinition.DateL)
                 .DateM(demoDefinition.DateM)
                 .DateN(demoDefinition.DateN)
                 .DateO(demoDefinition.DateO)
                 .DateP(demoDefinition.DateP)
                 .DateQ(demoDefinition.DateQ)
                 .DateR(demoDefinition.DateR)
                 .DateS(demoDefinition.DateS)
                 .DateT(demoDefinition.DateT)
                 .DateU(demoDefinition.DateU)
                 .DateV(demoDefinition.DateV)
                 .DateW(demoDefinition.DateW)
                 .DateX(demoDefinition.DateX)
                 .DateY(demoDefinition.DateY)
                 .DateZ(demoDefinition.DateZ)
                 .DescriptionA(demoDefinition.DescriptionA)
                 .DescriptionB(demoDefinition.DescriptionB)
                 .DescriptionC(demoDefinition.DescriptionC)
                 .DescriptionD(demoDefinition.DescriptionD)
                 .DescriptionE(demoDefinition.DescriptionE)
                 .DescriptionF(demoDefinition.DescriptionF)
                 .DescriptionG(demoDefinition.DescriptionG)
                 .DescriptionH(demoDefinition.DescriptionH)
                 .DescriptionI(demoDefinition.DescriptionI)
                 .DescriptionJ(demoDefinition.DescriptionJ)
                 .DescriptionK(demoDefinition.DescriptionK)
                 .DescriptionL(demoDefinition.DescriptionL)
                 .DescriptionM(demoDefinition.DescriptionM)
                 .DescriptionN(demoDefinition.DescriptionN)
                 .DescriptionO(demoDefinition.DescriptionO)
                 .DescriptionP(demoDefinition.DescriptionP)
                 .DescriptionQ(demoDefinition.DescriptionQ)
                 .DescriptionR(demoDefinition.DescriptionR)
                 .DescriptionS(demoDefinition.DescriptionS)
                 .DescriptionT(demoDefinition.DescriptionT)
                 .DescriptionU(demoDefinition.DescriptionU)
                 .DescriptionV(demoDefinition.DescriptionV)
                 .DescriptionW(demoDefinition.DescriptionW)
                 .DescriptionX(demoDefinition.DescriptionX)
                 .DescriptionY(demoDefinition.DescriptionY)
                 .DescriptionZ(demoDefinition.DescriptionZ)
                 .CheckA(demoDefinition.CheckA)
                 .CheckB(demoDefinition.CheckB)
                 .CheckC(demoDefinition.CheckC)
                 .CheckD(demoDefinition.CheckD)
                 .CheckE(demoDefinition.CheckE)
                 .CheckF(demoDefinition.CheckF)
                 .CheckG(demoDefinition.CheckG)
                 .CheckH(demoDefinition.CheckH)
                 .CheckI(demoDefinition.CheckI)
                 .CheckJ(demoDefinition.CheckJ)
                 .CheckK(demoDefinition.CheckK)
                 .CheckL(demoDefinition.CheckL)
                 .CheckM(demoDefinition.CheckM)
                 .CheckN(demoDefinition.CheckN)
                 .CheckO(demoDefinition.CheckO)
                 .CheckP(demoDefinition.CheckP)
                 .CheckQ(demoDefinition.CheckQ)
                 .CheckR(demoDefinition.CheckR)
                 .CheckS(demoDefinition.CheckS)
                 .CheckT(demoDefinition.CheckT)
                 .CheckU(demoDefinition.CheckU)
                 .CheckV(demoDefinition.CheckV)
                 .CheckW(demoDefinition.CheckW)
                 .CheckX(demoDefinition.CheckX)
                 .CheckY(demoDefinition.CheckY)
                 .CheckZ(demoDefinition.CheckZ)
                 .Comments(Comments(demoModel, idHash, demoDefinition.Id))
                 .Creator(idHash.Get(demoDefinition.Creator))
                 .Updator(idHash.Get(demoDefinition.Updator))
                 .CreatedTime(demoDefinition.CreatedTime.DemoTime(demoModel))
                 .UpdatedTime(demoDefinition.UpdatedTime.DemoTime(demoModel)),
                 addUpdatorParam: false)
         }).Identity.ToLong();
         idHash.Add(demoDefinition.Id, resultId);
         var siteModel = new SiteModel().Get(
             context: context,
             where : Rds.SitesWhere().SiteId(idHash.Get(demoDefinition.ParentId)));
         var ss = siteModel.ResultsSiteSettings(
             context: context, referenceId: resultId);
         var resultModel = new ResultModel(
             context: context,
             ss: ss,
             resultId: resultId);
         var fullText = resultModel.FullText(context: context, ss: ss);
         Rds.ExecuteNonQuery(
             context: context,
             statements: Rds.UpdateItems(
                 param: Rds.ItemsParam()
                 .SiteId(resultModel.SiteId)
                 .Title(resultModel.Title.DisplayValue)
                 .FullText(fullText, _using: fullText != null),
                 where : Rds.ItemsWhere().ReferenceId(resultModel.ResultId),
                 addUpdatorParam: false,
                 addUpdatedTimeParam: false));
         Libraries.Search.Indexes.Create(
             context: context,
             ss: ss,
             resultModel: resultModel);
     });
 }