public Error.Types UpdateOrCreate( SiteSettings ss, RdsUser rdsUser = null, SqlWhereCollection where = null, SqlParamCollection param = null) { SetBySession(); var statements = new List <SqlStatement> { Rds.UpdateOrInsertDepts( selectIdentity: true, where : where ?? Rds.DeptsWhereDefault(this), param: param ?? Rds.DeptsParamDefault(this, setDefault: true)), StatusUtilities.UpdateStatus(StatusUtilities.Types.DeptsUpdated) }; var newId = Rds.ExecuteScalar_int( rdsUser: rdsUser, transactional: true, statements: statements.ToArray()); DeptId = newId != 0 ? newId : DeptId; Get(ss); return(Error.Types.None); }
public Error.Types UpdateOrCreate( SiteSettings ss, RdsUser rdsUser = null, SqlWhereCollection where = null, SqlParamCollection param = null) { SetBySession(); var statements = new List <SqlStatement> { Rds.UpdateOrInsertGroups( where : where ?? Rds.GroupsWhereDefault(this), param: param ?? Rds.GroupsParamDefault(this, setDefault: true)), StatusUtilities.UpdateStatus(StatusUtilities.Types.GroupsUpdated), }; var response = Rds.ExecuteScalar_response( rdsUser: rdsUser, transactional: true, selectIdentity: true, statements: statements.ToArray()); GroupId = (response.Identity ?? GroupId).ToInt(); Get(ss); return(Error.Types.None); }
public List <SqlStatement> CreateStatements( SiteSettings ss, List <SqlStatement> statements, Sqls.TableTypes tableType = Sqls.TableTypes.Normal, SqlParamCollection param = null, bool otherInitValue = false) { statements.AddRange(new List <SqlStatement> { Rds.InsertGroups( tableType: tableType, setIdentity: true, param: param ?? Rds.GroupsParamDefault( this, setDefault: true, otherInitValue: otherInitValue)), Rds.InsertGroupMembers( tableType: tableType, param: param ?? Rds.GroupMembersParam() .GroupId(raw: Def.Sql.Identity) .UserId(Sessions.UserId()) .Admin(true)), StatusUtilities.UpdateStatus(StatusUtilities.Types.GroupsUpdated), }); return(statements); }
public ErrorData Delete(Context context, SiteSettings ss, bool notice = false) { var statements = new List <SqlStatement>(); var where = Rds.DeptsWhere().DeptId(DeptId); statements.AddRange(new List <SqlStatement> { Rds.DeleteDepts(where : where), StatusUtilities.UpdateStatus( tenantId: context.TenantId, type: StatusUtilities.Types.DeptsUpdated), }); var response = Rds.ExecuteScalar_response( context: context, transactional: true, statements: statements.ToArray()); var deptHash = SiteInfo.TenantCaches.Get(context.TenantId)?.DeptHash; if (deptHash.Keys.Contains(DeptId)) { deptHash.Remove(DeptId); } return(new ErrorData(type: Error.Types.None)); }
public List <SqlStatement> CreateStatements( IContext context, SiteSettings ss, List <SqlStatement> statements, Sqls.TableTypes tableType = Sqls.TableTypes.Normal, SqlParamCollection param = null, bool otherInitValue = false) { statements.AddRange(new List <SqlStatement> { Rds.InsertDepts( tableType: tableType, setIdentity: true, param: param ?? Rds.DeptsParamDefault( context: context, deptModel: this, setDefault: true, otherInitValue: otherInitValue)), StatusUtilities.UpdateStatus( tenantId: context.TenantId, type: StatusUtilities.Types.DeptsUpdated), }); return(statements); }
public Error.Types Update( Context context, SiteSettings ss, IEnumerable <string> permissions = null, bool permissionChanged = false, bool extendedSqls = true, bool synchronizeSummary = true, bool forceSynchronizeSourceSummary = false, bool notice = false, SqlParamCollection param = null, List <SqlStatement> additionalStatements = null, bool otherInitValue = false, bool setBySession = true, bool get = true) { if (context.ContractSettings.Notice != false && notice) { CheckNotificationConditions(context: context, ss: ss, before: true); } if (setBySession) { SetBySession(context: context); } var timestamp = Timestamp.ToDateTime(); var statements = new List <SqlStatement>(); if (extendedSqls) { statements.OnUpdatingExtendedSqls(SiteId, WikiId, timestamp); } UpdateStatements( context: context, ss: ss, statements: statements, timestamp: timestamp, param: param, otherInitValue: otherInitValue, additionalStatements: additionalStatements); if (permissionChanged) { statements.UpdatePermissions(context, ss, WikiId, permissions); } var response = Rds.ExecuteScalar_response( context: context, transactional: true, statements: statements.ToArray()); if (response.Count == 0) { return(Error.Types.UpdateConflicts); } if (Title_Updated(context: context)) { Rds.ExecuteNonQuery( context: context, statements: new SqlStatement[] { Rds.UpdateSites( where : Rds.SitesWhere() .TenantId(context.TenantId) .SiteId(SiteId), param: Rds.SitesParam().Title(Title.Value), addUpdatedTimeParam: false, addUpdatorParam: false), StatusUtilities.UpdateStatus( tenantId: context.TenantId, type: StatusUtilities.Types.SitesUpdated) }); } if (context.ContractSettings.Notice != false && notice) { CheckNotificationConditions(context: context, ss: ss); Notice(context: context, ss: ss, type: "Updated"); } if (get) { Get(context: context, ss: ss); } UpdateRelatedRecords(context: context, ss: ss, extendedSqls: extendedSqls); if (get && Rds.ExtendedSqls(SiteId, WikiId)?.Any(o => o.OnUpdated) == true) { Get(context: context, ss: ss); } SiteInfo.Reflesh(context: context); return(Error.Types.None); }