Beispiel #1
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #5
0
 private void CreateButton_Click(object sender, RoutedEventArgs e)
 {
     SetEditMode();
     NameText.Text = string.Empty;
     crudMode      = CrudMode.Create;
 }