private void EditButton_Click(object sender, RoutedEventArgs e) { if (AntigensGrid.SelectedItem != null) { NameText.Text = (AntigensGrid.SelectedItem as Antigen).AntigenName; SetEditMode(); crudMode = CrudMode.Update; } }
private string getTitleForPage(PublicationType type, CrudMode mode) { string result = null; switch (type) { case PublicationType.News: { switch (mode) { case CrudMode.Add: { result = "Створення новини"; break; } case CrudMode.Edit: { result = "Редагування новину"; break; } } break; } case PublicationType.Article: { switch (mode) { case CrudMode.Add: { result = "Створення статті"; break; } case CrudMode.Edit: { result = "Редагування статті"; break; } } break; } } return(result); }
public void SaveData() { CheckParams(); if (CrudMode == CrudMode.View) { throw new Exception("Запись только на чтение в таблице '" + Table.Name + "', ID='" + ID + "'"); } else if (CrudMode == CrudMode.Add) { if (MasterTableRow != null) { var masterColumn = Table.GetMasterColumn(); if (masterColumn == null) throw new Exception("'В таблице '" + Table.Name + "' отсутствует колонка с ролью '^ВложеннаяТаблица.Мастер'."); this[masterColumn.Name] = MasterTableRow.ID; } if (NewBussinesOperID != null) { var bussinesOperColumn = Table.GetColumnByRole(RoleConst.ВложеннаяТаблица_БизнесОперация); if (bussinesOperColumn == null) throw new Exception("'В таблице '" + Table.Name + "' отсутствует колонка с ролью '^ВложеннаяТаблица.БизнесОперация'."); this[bussinesOperColumn.Name] = NewBussinesOperID; } if (!NewValues.ContainsKey(Table.GetPrimaryKeyColumn().Name)) NewValues.Add(Table.GetPrimaryKeyColumn().Name, ID); if (!NewValues.ContainsKey("__changeuser__")) NewValues.Add("__changeuser__", App.UserID); else NewValues["__changeuser__"] = App.UserID; if (!NewValues.ContainsKey("__changetime__")) NewValues.Add("__changetime__", DateTime.Now); if (NewValues.Values.Count > 0) { var sql = new StringBuilder(); sql.AppendLine("BEGIN TRAN"); sql.AppendLine("INSERT " + Table.Get4PartsTableName() + " ("); foreach (var col in Table.Columns) { if (NewValues.ContainsKey(col.Name)) sql.AppendLine(" [" + col.Name + "],"); } sql.RemoveLastChar(3); sql.AppendLine(")"); sql.AppendLine("VALUES ("); foreach (var col in Table.Columns) { if (NewValues.ContainsKey(col.Name)) if (col.Name == "__changetime__") sql.AppendLine("GetDate(),"); else sql.AppendLine(NewValues[col.Name].AsSQL() + ","); } sql.RemoveLastChar(3); sql.AppendLine(")"); //// __undo__ //if (MasterTableRow != null) //{ // var undo_sql = "DELETE FROM [" + Table.Name + "] WHERE ID=" + ID.AsSQL(); // sql.AppendLine("INSERT [__EditSession__]([SessionID],[ParentSessionID],[TableID],[RecordID],[UserID],[UndoSql])"); // sql.AppendLine("VALUES (" + EditSessionID.AsSQL() + "," + MasterTableRow.EditSessionID.AsSQL() + "," + Table.ID.AsSQL() + "," + // ID.AsSQL() + "," + App.UserID.AsSQL() + "," + undo_sql.AsSQL() + ")"); //} //else //{ // foreach (var detailTable in App.Schema.GetAllDetailTablesSamples()) // { // sql.AppendLine("DELETE FROM [" + detailTable.Name + "] WHERE [" + detailTable.GetMasterColumn().Name + "]=" + ID.Reverse().AsSQL()); // } // sql.Append("EXEC __EditSession__Commit "); // sql.Append("@sessionID=" + EditSessionID.AsSQL() + ","); // sql.AppendLine("@parentSessionID=NULL"); //} sql.AppendLine("COMMIT"); if (MasterTableRow != null && MasterTableRow.BeforeSaveChanges != null) MasterTableRow.BeforeSaveChanges(this); if (BeforeSaveChanges != null) BeforeSaveChanges(this); using (var db = App.Schema.SqlDB.GetDbManager()) { int updatedRows = db.SetCommand(sql.ToString()).ExecuteNonQuery(); if (updatedRows == 0) throw new Exception("Ошибка добавления записи в таблицу '" + Table.Name + "', ID='" + ID + "'"); } CrudMode = Buhta.CrudMode.Edit; foreach (var columnName in NewValues.Keys) { if (Values.ContainsKey(columnName)) Values[columnName] = NewValues[columnName]; else Values.Add(columnName, NewValues[columnName]); } NewValues.Clear(); } } else if (CrudMode == CrudMode.Edit) { if (NewValues.ContainsKey(Table.GetPrimaryKeyColumn().Name)) throw new Exception("Запрещено изменять ID в таблице '" + Table.Name + "', ID='" + ID + "'"); //var log = new StringBuilder(); //var log_col = new StringBuilder(); //var log_sel = new StringBuilder(); //var logTable = Table.GetLogTable(); var sql = new StringBuilder(); //if (logTable != null) //{ // sql.AppendLine("BEGIN TRAN"); //} if (!NewValues.ContainsKey("__changeuser__")) NewValues.Add("__changeuser__", App.UserID); else NewValues["__changeuser__"] = App.UserID; if (!NewValues.ContainsKey("__changetime__")) NewValues.Add("__changetime__", DateTime.Now); sql.AppendLine("BEGIN TRAN"); var updateSql = new StringBuilder(); bool needUpdate = false; if (NewValues.Values.Count > 0) { updateSql.AppendLine("UPDATE " + Table.Get4PartsTableName() + " SET"); foreach (var col in Table.Columns) { if (col.Name != Table.GetPrimaryKeyColumn().Name && NewValues.ContainsKey(col.Name)) { updateSql.Append(" [" + col.Name + "] = "); needUpdate = true; if (col.Name == "__changetime__") updateSql.Append("GetDate()"); else { if (NewValues[col.Name] == null) updateSql.Append("NULL"); else updateSql.Append(NewValues[col.Name].AsSQL()); } updateSql.AppendLine(","); //if (logTable!=null) //{ // log_col.Append("[" + col.Name + "],"); // log_sel.Append("[" + col.Name + "],"); //} } } updateSql.RemoveLastChar(3); updateSql.AppendLine(); updateSql.AppendLine("WHERE [" + Table.GetPrimaryKeyColumn().Name + "]=" + ID.AsSQL()); } if (needUpdate) sql.Append(updateSql); //if (MasterTableRow != null) //{ // var undo_sql = new StringBuilder(); // undo_sql.AppendLine("UPDATE [" + Table.Name + "] SET"); // foreach (var col in Table.Columns) // { // if (col.Name != "ID" && NewValues.ContainsKey(col.Name)) // { // undo_sql.Append(" [" + col.Name + "] = "); // if (Values[col.Name] == null) // undo_sql.Append("NULL"); // else // undo_sql.Append(Values[col.Name].AsSQL()); // undo_sql.AppendLine(","); // } // } // undo_sql.RemoveLastChar(3); // undo_sql.AppendLine(); // undo_sql.AppendLine("WHERE ID=" + ID.AsSQL()); // sql.AppendLine("INSERT [__EditSession__]([SessionID],[ParentSessionID],[TableID],[RecordID],[UserID],[UndoSql])"); // sql.AppendLine("VALUES (" + EditSessionID.AsSQL() + "," + MasterTableRow.EditSessionID.AsSQL() + "," + Table.ID.AsSQL() + "," + // ID.AsSQL() + "," + App.UserID.AsSQL() + "," + undo_sql.AsSQL() + ")"); //} //else //{ // foreach (var detailTable in App.Schema.GetAllDetailTablesSamples()) // { // sql.AppendLine("DELETE FROM [" + detailTable.Name + "] WHERE [" + detailTable.GetMasterColumn().Name + "]=" + ID.Reverse().AsSQL()); // } // sql.Append("EXEC __EditSession__Commit "); // sql.Append("@sessionID=" + EditSessionID.AsSQL() + ","); // sql.AppendLine("@parentSessionID=NULL"); //} sql.AppendLine("COMMIT"); //if (logTable != null) //{ // log_col.Append("["+SchemaTable.logPrefix+""+"]"); // log.AppendLine("INSERT [" + logTable.Name + "](" + log_col.ToString() + ")"); // log.AppendLine("SELECT " + log_sel.ToString() + " FROM [" + Table.Name + "] WHERE ID=" + ID.AsSQL()); // sql.Insert(0, log.ToString()); // sql.AppendLine("COMMIT"); //} if (MasterTableRow != null && MasterTableRow.BeforeSaveChanges != null) MasterTableRow.BeforeSaveChanges(this); if (BeforeSaveChanges != null) BeforeSaveChanges(this); using (var db = App.Schema.SqlDB.GetDbManager()) { int updatedRows = db.SetCommand(sql.ToString()).ExecuteNonQuery(); if (updatedRows == 0) throw new Exception("Ошибка изменения записи в таблице '" + Table.Name + "', ID='" + ID + "'"); } if (BeforeSaveChanges != null) BeforeSaveChanges(this); foreach (var columnName in NewValues.Keys) { if (Values.ContainsKey(columnName)) Values[columnName] = NewValues[columnName]; else Values.Add(columnName, NewValues[columnName]); } NewValues.Clear(); } if (Table.GetIsProvodkaGenerationExists()) Table.ExecGenStoredProc(ID); if (OnSaveData != null) OnSaveData(this, null); }
private string getTitleForPage(DataGroupType type, CrudMode mode) { string result = null; switch (type) { case DataGroupType.ArticleGroup: { switch (mode) { case CrudMode.Add: { result = "Створити нову категорію статей"; break; } case CrudMode.Edit: { result = "Редагувати категорію"; break; } } break; } case DataGroupType.TenderGroup: { switch (mode) { case CrudMode.Add: { result = "Створити нову тендерну категорію"; break; } case CrudMode.Edit: { result = "Редагувати категорію"; break; } } break; } case DataGroupType.UserDepartment: { switch (mode) { case CrudMode.Add: { result = "Створити нову группу користувачів"; break; } case CrudMode.Edit: { result = "Редагувати группу користувачів"; break; } } break; } } return(result); }
private void CreateButton_Click(object sender, RoutedEventArgs e) { SetEditMode(); NameText.Text = string.Empty; crudMode = CrudMode.Create; }