суббота, 16 июня 2012 г.
Shitty Code Spagetti Говнокод
Набрел тут на кошмарный код. Проверил по Code Metrics (есть такая вкусность в Visual Studio), индекс поддержки - желтый, значение 14 (должен быть как минимум 20, а лучше - стремиться к 100). Цикломатическая сложность кода (зависит от вложенности условных операторов и циклов) - 58, должна быть не более 15.
Весь код привожу под катом.
Добавим в кнопку SaveButton и событие OnSaving
Что если нам перед сохранением данных формы требуется выполнить кое-какие вычисления?
Первый способ - можно добавить в форму CustomValidator, который всегда возвращает true, но перед этим выполняет все необходимые вычисления.
Второй способ - сделать событие к кнопке SaveButton. Вот код:
namespace Compsphere.SharePoint.WebControls
{
public class SaveButtonWithEvents : SaveButton
{
public CancelEventHandler Saving;
protected virtual void OnSaving(CancelEventArgs e)
{
if (Saving != null)
{
Saving(this, e);
}
}
protected override bool SaveItem()
{
CancelEventArgs e = new CancelEventArgs(false);
OnSaving(e);
if (e.Cancel) return true;
return base.SaveItem();
}
}
}
p.s. Добавьте в начало:
using Microsoft.SharePoint.WebControls;
using System.ComponentModel;

