- 1
- 2
- 3
- 4
if (_availabilityOfThisPersonnel == null)
_availabilityOfThisPersonnel = new List<Availability>();
if (_availabilityOfThisPersonnel.Any())
_availabilityOfThisPersonnel.Clear();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+142
if (_availabilityOfThisPersonnel == null)
_availabilityOfThisPersonnel = new List<Availability>();
if (_availabilityOfThisPersonnel.Any())
_availabilityOfThisPersonnel.Clear();
+142
/// <summary>
/// Обновление данных о объекте
/// </summary>
/// <param name="theObject">ссылка на объект</param>
public void Update(IPersistentObject theObject)
{
IDbCommand updateCommand = null;
try
{
using (updateCommand = CreateUpdateCommand(theObject))
{
updateCommand.Connection.Open();
updateCommand.ExecuteNonQuery();
}
}
catch (DbException ex)
{
int code = 0;
if (ex is SqlException)
{
code = ((SqlException) ex).Number;
}
if (code == 229)
{
ex.Data.Add("Name", theObject.ClassInfo.Name);
ex.Data.Add("Description", theObject.ClassInfo.Description);
ex.Data.Add("Action", "UPDATE");
throw new InvalidOperationException(
String.Format("Ошибка обновления объекта [{0}] - {1} (ID = '{2}')",
theObject.ClassInfo.Name,
theObject.ClassInfo.Description,
theObject.ID), ex);
}
if (code == 207 || code == 208)
{
throw new InvalidColumnException(theObject.ClassInfo, ex);
}
//theObject заменен на theObject.ID. Нечитабельно, но ... Т. к. при вычислении ToString()
//для показа объекта иногда задействуются методы загрузки данных
//названия объекта. Таким образом при высоком уровне изоляции транзакции
//мы получим зависание если будет попытка загрузить данные заблокированные транзакцией.
TraceLogger.Log(String.Format("Update {0}({1}){4} - {2}\n{3}", theObject.ID, theObject.ClassInfo,
ex.Message, ex.InnerException, theObject.GetInfoToTraceMessage()),
TraceTypeEnum.UpdateStatement);
throw;
}
finally
{
if (updateCommand != null)
{
updateCommand.Connection.Close();
}
}
}
смертельный прием using
и добьем соперника используя finally как фаталити
перехват исключения тоже хорош, авторский комментарий добавляет изюминку
+142
public IndividualService Service
{
get { return _service; }
set
{
if (value == null || !value.IsDNSeriaHeader)
_service = value;
else
{
if (!IsLoading && Initialized)
XtraMessageBox.Show("Услуга по записи о ДН не должна быть заголовком ДН", "Внимание",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
MessageBox на сеттере в EDM (если говорить в терминах Entity Framework)
+142
private MonthCalendarModel GetMonthCalendar(int year, int month, string roleId, string doctorId)
{
var days = new List<DayCalendarModel>();
var today = DateTime.Today;
var firstDay = new DateTime(year, month, 1);
int firstDayOfWeek = 0;
if (firstDay.DayOfWeek == DayOfWeek.Monday)
firstDayOfWeek = 1;
if (firstDay.DayOfWeek == DayOfWeek.Tuesday)
firstDayOfWeek = 2;
if (firstDay.DayOfWeek == DayOfWeek.Wednesday)
firstDayOfWeek = 3;
if (firstDay.DayOfWeek == DayOfWeek.Thursday)
firstDayOfWeek = 4;
if (firstDay.DayOfWeek == DayOfWeek.Friday)
firstDayOfWeek = 5;
if (firstDay.DayOfWeek == DayOfWeek.Saturday)
firstDayOfWeek = 6;
if (firstDay.DayOfWeek == DayOfWeek.Sunday)
firstDayOfWeek = 7;
for(int i= firstDayOfWeek-1; i > 0; i--)
{
DateTime day = firstDay.AddDays(-i);
days.Add(new DayCalendarModel{Available = -1, Day = day.Day, Enabled = false, CssClass = string.Empty});
}
DateScheduler dateScheduler = GetDateScheduler(roleId, doctorId);
DateTime date;
for( date = firstDay; date.Month == month; date = date.AddDays(1)) {
string cssClass = dateScheduler.CheckDate(date, true) ? "free": "disbl";
bool enabled = (date >= today);
cssClass = enabled ? cssClass : string.Empty;
days.Add(new DayCalendarModel(){Available = 3, Day = date.Day, Enabled = enabled, CssClass = cssClass, Date = date.ToString(FormatHelper.DateOnlySerializationFormat)});
}
if(date.DayOfWeek != DayOfWeek.Monday) {
for(; GetDayOfWeek(date.DayOfWeek) <= 7; date = date.AddDays(1)) {
days.Add(new DayCalendarModel()
{Available = -1, Day = date.Day, Enabled = false, CssClass = string.Empty});
if(date.DayOfWeek == DayOfWeek.Sunday) {
break;
}
}
}
// пропущено ...
}
private int GetDayOfWeek(DayOfWeek dayOfWeek)
{
if(dayOfWeek == System.DayOfWeek.Sunday)
{
return 7;
}
return (int)dayOfWeek;
}
полученный List<DayCalendarModel> используется для отображения пользователю календаря с отмеченными днями работы врача
+145
var lst = new List<string>();
foreach (String parameterName in parameters.Keys) // parameters это Dictionary<String, Object>
{
lst.Add(parameterName + ": " + parameters[parameterName].ToString());
}
Долгий вариант перебора словаря: перебор ключей в цикле и на каждой итерации получение по ключу значения из словаря
+142
public String ExecuteInDispancerMonitoring
{
get
{
string st = "";
IndividualService service = this;
int iter = 100;
while (iter != 0)
{
if (service.ParentService != null)
{
service = service.ParentService;
if (service is DispanserMonitoring)
{
st = service.CalcStrServiceName; // Строковое представление названия услуги
if (service.CalcStartDate.HasValue)
{
st += " c " + service.CalcStartDate.Value.ToShortDateString();
}
return st;
}
}
else
{
return st;
}
iter--;
}
return "";
}
}
+128
1:
Task task = Task.Factory.StartNew(delegate {
Program.CirCle(wsdlUrl, new List<int> { RayID });
});
Task.WaitAll(new Task[] { task });
2:
if (recordsForTerm.Length.Equals(0)) {
}
Консольная приблуда.
1. Создаем поток и лочим основной - зачем?
2. == для слабых?
+144
bool X = Glob.UserIsAdmin ? true : false;
+142
private int[] ListToArray(List<int> list)
{
try
{
int[] res = new int[list.Count];
for (int i = 0; i < list.Count; i++)
{
res[i] = list[i];
}
return res;
}
catch (Exception) { return new int[0]; }
}
А ещё он заполняет List<> в цикле for
+142
public int MapToLowerPageBoundary(int rowIndex)
{
return (rowIndex / RowsPerPage) * RowsPerPage;
}
Нашел этот метод в проекте... Интересно о чем думал автор...