- 1
http://habrahabr.ru/post/172129/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+113
http://habrahabr.ru/post/172129/
«Мне нужен был online-сервис для генерации GUID»
Пожалуйста, подключитесь к интернету, чтобы сгенерировать гуид. Что дальше? Конкатенация строк через RESTful сервер в облаке амазона?
+137
private static string SimplifyPath(string path)
{
var dirs = path.Split("\\".ToCharArray());
var absolutePath = new List<string>();
foreach (var dir in dirs)
{
if (dir == "..")
{
absolutePath.RemoveAt(absolutePath.Count - 1);
continue;
}
absolutePath.Add(dir);
}
var result = string.Empty;
for (int i = 0; i < absolutePath.Count - 1; ++i)
{
result += absolutePath[i];
result += "\\";
}
result += absolutePath[absolutePath.Count - 1];
return result;
}
Path.GetFullPath? Нет, мы не ищем легких путей.
+140
[WebMethod]
public void runCompareService(string mAuthToken, int documentId, int origVerNum, int revisedVerNum)
{
//string result = null;
DirectoryInfo tmpDirInfo = getTempDirectoryPath(documentId);
try
{
//authToken = authClient.AuthenticateUser(username, password);
authToken = mAuthToken;
otAuth.AuthenticationToken = authToken;
try
{
string origFilePath = String.Format(tmpFilePath, tmpDirInfo.ToString(), origVerNum);
string revisedFilePath = String.Format(tmpFilePath, tmpDirInfo.ToString(), revisedVerNum);
string resultFilePath = String.Format(tmpResFilePath, tmpDirInfo.ToString(), origVerNum, revisedVerNum);
string origContextId = getDocContextId(documentId, origVerNum);
string revisedContextId = getDocContextId(documentId, revisedVerNum);
try
{
downlodFileByContextId(origContextId, origFilePath);
downlodFileByContextId(revisedContextId, revisedFilePath);
try
{
doCompare(origFilePath, revisedFilePath, resultFilePath);
try
{
DownloadToBrowser(resultFilePath);
//uploadResultToCS(targetId, resultFilePath);
}
catch (Exception e)
{
throw new Exception(String.Format("Failed to Download To Browser. Error: {0}", e.ToString()));
}
}
catch (Exception e)
{
throw new Exception(String.Format("Failed to do compare method . Error: {0}", e.ToString()));
}
}
catch (Exception e)
{
throw new Exception(String.Format("Failed to create and download file. Error: {0}", e.ToString()));
}
}
catch (Exception e)
{
throw new Exception("Failed to get Context ID for version Exeption details: " + e.ToString());
}
}
catch (Exception e)
{
throw new Exception("Failed to auth user. Exeption details: " + e.ToString());
}
finally
{
docManClient.Close();
contentServiceClient.Close();
if (Directory.Exists(tmpDirInfo.ToString()))
{
tmpDirInfo.Delete(true);
}
}
}
+106
using System;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Text;
using System.Xml.Linq;
namespace SplitSpace {
class Program {
static void Main(string[] args) {
test();
}
static void test() {
if(testfun(0, 0, 3, 1020, 0.05*180/Utils.PI, 1, 40, 5.80020838542985, 5.80020838542985, 0.0125032560359095)) return;
if(testfun(0, 0, 3, 1020, 0.05*180/Utils.PI, 2, 5, 1.75, 9.85005209635745, 0.00156290700448869)) return;
if(testfun(0, 0, 3, 1020, 0.05*180/Utils.PI, 3, 1.5, 0.0375078144536192, 0.0375078144536192, 0.000468872101346607)) return;
if(testfun(0, 0, 3, 219, 0.00, 1, 15.000, 4.900000000, 4.900000000, 0.000000000)) return;
if(testfun(0, 0, 3, 219, 0.50, 1, 15.000, 4.900000415, 4.900000415, 0.000142791)) return;
if(testfun(0, 0, 3, 219, 5.00, 1, 15.000, 4.900415674, 4.900415674, 0.014290277)) return;
if(testfun(0, 0, 3, 219, 5.10, 1, 15.000, 4.900441130, 4.900441130, 0.014868082)) return;
if(testfun(0, 0, 3, 219, 5.90, 1, 15.000, 4.900683170, 4.900683170, 0.019903983)) return;
// Спустя 8369 строчек
// ...
// ...
// ...
if(testfun(2, 1, 4, 1420, 55.00, 2, 7.000, 5.512975201, 5.512975201, 1.316853521)) return;
if(testfun(2, 1, 4, 1420, 60.00, 2, 7.000, 5.817691454, 5.817691454, 1.558845727)) return;
if(testfun(2, 1, 4, 1420, 66.00, 2, 7.000, 6.589343466, 6.589343466, 1.708953962)) return;
if(testfun(2, 1, 4, 1420, 75.00, 2, 7.000, 7.385125168, 7.385125168, 2.367207113)) return;
if(testfun(2, 1, 4, 1420, 85.10, 2, 7.000, 8.438873737, 8.438873737, 3.248627191)) return;
if(testfun(2, 1, 4, 1420, 89.00, 2, 7.000, 8.848026526, 8.848026526, 3.610990132)) return;
if(testfun(2, 1, 4, 1420, 89.99, 2, 7.000, 8.932590260, 8.932590260, 3.699354242)) return;
if(testfun(2, 1, 4, 1420, 90.00, 2, 7.000, 8.932590181, 8.932590181, 3.700000000)) return;
MessageBox.Show("OK!");
}
static bool testfun(int dir, int coolType, int hotType, double dia, double angG, int angType, double Rad, double Tan1, double Tan2, double Bis) {
// тут всякие тесты
// ...
// ...
// ...
return false;
}
}
}
+106
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
namespace data_base
{ public class DatA
{ public struct DATA
{ public struct Yslovie { public string yslovie; public bool ActivE;}
public Yslovie yslovie1;
public Yslovie yslovie2;
public Yslovie yslovie3;
public string deistvie;};
public DATA.Yslovie yslovie1 = new DATA.Yslovie();
public DATA.Yslovie yslovie2 = new DATA.Yslovie();
public DATA.Yslovie yslovie3 = new DATA.Yslovie();
public DATA[] BD = new DATA[5];
public void инициализация_БД()
{ BD[0].yslovie1.yslovie = "поставщик проверенный"; BD[0].yslovie1.ActivE = false;
BD[0].yslovie2.yslovie = "товар качественный"; BD[0].yslovie2.ActivE = false;
BD[0].yslovie3.yslovie = "цена приемлемая"; BD[0].yslovie3.ActivE = false;
BD[0].deistvie = "Поставщик подходит";
BD[1].yslovie1.yslovie = "поставщик давно на рынке"; BD[1].yslovie1.ActivE = false;
BD[1].yslovie2.yslovie = "жалоб на поставщика не было"; BD[1].yslovie2.ActivE = false;
BD[1].yslovie3.yslovie = null; BD[1].yslovie3.ActivE = false;
BD[1].deistvie = "поставщик проверенный";
BD[2].yslovie1.yslovie = "есть рекомендации от других заказчиков"; BD[2].yslovie1.ActivE = false;
BD[2].yslovie2.yslovie = "поставка производится в срок"; BD[2].yslovie2.ActivE = false;
BD[2].yslovie3.yslovie = "товар не получает дефектов в ходе транспатрировки"; BD[2].yslovie3.ActivE = false;
BD[2].deistvie = "жалоб на поставщика не было";
BD[3].yslovie1.yslovie = "товар сертифицирован"; BD[3].yslovie1.ActivE = false;
BD[3].yslovie2.yslovie = "товар прощел государственные экспертизы"; BD[3].yslovie2.ActivE = false;
BD[3].yslovie3.yslovie = null; BD[3].yslovie3.ActivE = false;
BD[3].deistvie = "товар качественный";
BD[4].yslovie1.yslovie = "цена чуть ниже чем у других поставщиков"; BD[4].yslovie1.ActivE = false;
BD[4].yslovie2.yslovie = null; BD[4].yslovie2.ActivE = false;
BD[4].yslovie3.yslovie = null; BD[4].yslovie3.ActivE = false;
BD[4].deistvie = "цена приемлемая";
}
public void Констотация_факта(int i)
{ switch (i)
{ case 1: if (BD[0].yslovie1.ActivE == true) BD[0].yslovie1.ActivE = false;
else BD[0].yslovie1.ActivE = true; break;
case 2: if (BD[0].yslovie2.ActivE == true) BD[0].yslovie2.ActivE = false;
else BD[0].yslovie2.ActivE = true; break;
case 3: if (BD[0].yslovie3.ActivE == true) BD[0].yslovie3.ActivE = false;
else BD[0].yslovie3.ActivE = true; break;
case 4: if (BD[1].yslovie1.ActivE == true) BD[1].yslovie1.ActivE = false;
else BD[1].yslovie1.ActivE = true; break;
case 5: if (BD[1].yslovie2.ActivE == true) BD[1].yslovie2.ActivE = false;
else BD[1].yslovie2.ActivE = true; break;
case 6: if (BD[1].yslovie3.ActivE == true) BD[1].yslovie3.ActivE = false;
else BD[1].yslovie3.ActivE = true; break;
case 7: if (BD[2].yslovie1.ActivE == true) BD[2].yslovie1.ActivE = false;
else BD[2].yslovie1.ActivE = true; break;
case 8: if (BD[2].yslovie2.ActivE == true) BD[2].yslovie2.ActivE = false;
else BD[2].yslovie2.ActivE = true; break;
case 9: if (BD[2].yslovie3.ActivE == true) BD[2].yslovie3.ActivE = false;
else BD[2].yslovie3.ActivE = true; break;
case 10: if (BD[3].yslovie1.ActivE == true) BD[3].yslovie1.ActivE = false;
else BD[3].yslovie1.ActivE = true; break;
case 11: if (BD[3].yslovie2.ActivE == true) BD[3].yslovie2.ActivE = false;
else BD[3].yslovie2.ActivE = true; break;
case 12: if (BD[3].yslovie3.ActivE == true) BD[3].yslovie3.ActivE = false;
else BD[3].yslovie3.ActivE = true; break;
case 13: if (BD[4].yslovie1.ActivE == true) BD[4].yslovie1.ActivE = false;
else BD[4].yslovie1.ActivE = true; break;
case 14: if (BD[4].yslovie2.ActivE == true) BD[4].yslovie2.ActivE = false;
else BD[4].yslovie2.ActivE = true; break;
case 15: if (BD[4].yslovie3.ActivE == true) BD[4].yslovie3.ActivE = false;
else BD[4].yslovie3.ActivE = true; break;}
}}}
оставлю тут
+134
public void Children_OnAdd(object sender, EventArgs e)
{
((MyEventArgs<Document>)e).D.Parent = this;
}
+131
public class UserData : EventArgs {
public int UserCod { get; set; }
public string Name { get; set; }
public UserData(DataRow dataRow)
{
UserCod = (int)(decimal)dataRow["user_cod"];
Name = (string)dataRow["name"];
}
}
Во время рефакторинга появилось сообщение от VS UserData нельзя привести к типу UserData...
Заглянули в один из классов UserData...
теперь понятно откуда запах)))
+128
/// <summary>
/// Проверка нажатия 2 клавиш (напрмер: Ctrl+W)
/// </summary>
/// <param name="firstKey">Первая клавиша</param>
/// <param name="hotKey">Сочетание из БД</param>
/// <param name="e">Аргументы события нажатия клавиши</param>
/// <param name="Scope">Область видимости</param>
/// <returns>Действие</returns>
private static string CheckMultipleKeyPress(string firstKey, DBHotKeys_new hotKey, KeyEventArgs e, HotKeyScope Scope)
{
System.Text.StringBuilder concat = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(PreviousKey))
{
concat.Append('+');
}
if (!string.IsNullOrEmpty(firstKey))
{
concat.Append(firstKey).Append('+');
}
if (!string.IsNullOrEmpty(PreviousKey))
{
concat.Append(PreviousKey).Append('+');
}
PreviousKey = ReplaceKeyCode(e.KeyCode);
if (e.KeyCode != Keys.ControlKey)
{
concat.Append(ReplaceKeyCode(e.KeyCode));
}
//if (concat[0] == '+')
//{
// concat = new System.Text.StringBuilder(concat.ToString().Substring(1));
//}
if ((hotKey.Scope == Scope) && (concat.ToString().Equals(hotKey.HotKeyString)))
{
PreviousKey = string.Empty;
return hotKey.Action;
}
PreviousKey = string.Empty;
return string.Empty;
}
+138
/// <summary>
/// Преобразование системных наименований клавиш в "понятные пользователю"
/// </summary>
/// <param name="key">Нажатая системная клавиша</param>
/// <returns>Понятное представление</returns>
public static string ReplaceKeyCode(System.Windows.Forms.Keys key)
{
switch (key)
{
case Keys.OemQuestion: return "'?'";
case Keys.OemOpenBrackets: return "'{'";
case Keys.Oemtilde: return "'~'";
case Keys.Next: return "PageDown";
}
switch (key)
{
case Keys.A: return "A";
case Keys.Add: return "Num'+'";
case Keys.Alt: return "Alt";
case Keys.B: return "B";
case Keys.Back: return "Backspace";
case Keys.C: return "C";
case Keys.Cancel: return "Cancel";
case Keys.Clear: return "Clear";
case Keys.ControlKey: return "Ctrl";
case Keys.D: return "D";
case Keys.D0: return "0"; case Keys.D1: return "1"; case Keys.D2: return "2"; case Keys.D3: return "3";
case Keys.D4: return "4"; case Keys.D5: return "5"; case Keys.D6: return "6"; case Keys.D7: return "7";
case Keys.D8: return "8"; case Keys.D9: return "9"; case Keys.Decimal: return "Num'.'";
case Keys.Delete: return "Delete";
case Keys.Divide: return "Num'/'";
case Keys.Down: return "Down";
case Keys.E: return "E";
case Keys.End: return "End";
case Keys.Escape: return "Esc";
case Keys.F: return "F";
case Keys.F1: return "F1";
case Keys.F10: return "F10";
case Keys.F11: return "F11";
case Keys.F12: return "F12";
case Keys.F2: return "F2";
case Keys.F3: return "F3";
case Keys.F4: return "F4";
case Keys.F5: return "F5";
case Keys.F6: return "F6";
case Keys.F7: return "F7";
case Keys.F8: return "F8";
case Keys.F9: return "F9";
case Keys.G: return "G";
case Keys.H: return "H";
case Keys.Home: return "Home";
case Keys.I: return "I";
case Keys.Insert: return "Insert";
case Keys.J: return "J";
case Keys.K: return "K";
case Keys.L: return "L";
case Keys.M: return "M";
case Keys.N: return "N";
case Keys.Next: return "Next";
case Keys.NumPad0: return "Num0";
case Keys.NumPad1: return "Num1";
case Keys.NumPad2: return "Num2";
case Keys.NumPad3: return "Num3";
case Keys.NumPad4: return "Num4";
case Keys.NumPad5: return "Num5";
case Keys.NumPad6: return "Num6";
case Keys.NumPad7: return "Num7";
case Keys.NumPad8: return "Num8";
case Keys.NumPad9: return "Num9";
case Keys.O: return "O";
case Keys.Oem1: return "';'";
case Keys.Oem5: return "'/'";
case Keys.Oem6: return "'{'";
case Keys.Oem7: return "\"";
case Keys.OemMinus: return "'-'";
case Keys.OemPeriod: return "'>'";
case Keys.Oemcomma: return "'<'";
case Keys.Oemplus: return "'+'";
case Keys.P: return "P";
case Keys.PageUp: return "PageUp";
case Keys.Q: return "Q";
case Keys.R: return "R";
case Keys.S: return "S";
case Keys.ShiftKey: return "Shift";
case Keys.Space: return "Space";
case Keys.Subtract: return "Num'-'";
case Keys.T: return "T";
case Keys.Tab: return "Tab";
case Keys.U: return "U";
case Keys.Up: return "Up";
case Keys.V: return "V";
case Keys.W: return "W";
case Keys.X: return "X";
case Keys.Y: return "Y";
case Keys.Z: return "Z";
case Keys.Menu: return "Alt";
case Keys.Multiply: return "Num'*'";
default: return string.Empty;
}
}
+133
/// <summary>
/// Подключение к удаленному трек серверу
/// Повторяет попытки подключения в фоновом режиме.
/// </summary>
public void ConnectToTrackServer()
{
lock (LockConnToTrack)
{
if (ConnTrackServer == null)
{
ConnTrackServer = new Thread(new ParameterizedThreadStart(ConnectToTrackServerAsync));
ConnTrackServer.Start();
}
else if (!ConnTrackServer.IsAlive)
{
ConnTrackServer.Start();
}
}
//ThreadPool.QueueUserWorkItem(new WaitCallback(ConnectToTrackServerAsync));
}
Продолжение к прошлому посту