Refactor
:my
=>
'code'
Codes
Refactorings
Popular
Best
Submit
Spam
Account
Logout
Login
JavaScript doesn't seem to be activated, expect things to be ugly and sloppy!
Learn How to Create Your Own Programming Language
createyourproglang.com
Recent
Simple Particle Engine for a shooter game
Snake / Nibbles clone in C and Ncurses
Please improve
Parsing of XML data has high CPU usage
Convert simple Javascript to jQuery plugin
Active Record getting unique records
List the files in a directory without the directory name or the extension
clean the code
ohs system, recruitment software, hr software, oh&s software, human resources software, ohs software
Array parsing in a block
Popular
Parsing of XML data has high CPU usage
Please improve
Snake / Nibbles clone in C and Ncurses
List the files in a directory without the directory name or the extension
Convert simple Javascript to jQuery plugin
Simple Particle Engine for a shooter game
Active Record getting unique records
Breadth first cartesian product iterator
php refactoring
first BST
Pastable version of
Help me Refactor My Classes & Methods
<pre class='prettyprint' language='cs'>UI Layer private void SaveEquipment() { int guid = new EquipmentService().SaveEquipment(GetEquipmentFromFormFields()); } private Equipment GetEquipmentFromFormFields() { if (OriginalEquipment != null) { OriginalEquipment.Make = Make; OriginalEquipment.Description = Description; OriginalEquipment.EquipmentType = new CustomType(OwnershipId, OwnershipDescription); OriginalEquipment.Serial = Serial; OriginalEquipment.SvcNumber = SvcNumber; OriginalEquipment.OwnershipStatus = new CustomType(OwnershipId, OwnershipDescription); OriginalEquipment.PurchaseYear = PurchaseYear; OriginalEquipment.PurchaseRequestYear = PurchaseRequestYear; OriginalEquipment.CurrentLocation = new CustomType(CurrentLocationId, CurrentLocationName); OriginalEquipment.IsDHCP = IsDHCP; OriginalEquipment.Subnet = Subnet; OriginalEquipment.IPAddress = IPAddress; OriginalEquipment.Gateway = Gateway; OriginalEquipment.Mask = Mask; OriginalEquipment.DNSOne = DNSOne; OriginalEquipment.DNSTwo = DNSTwo; OriginalEquipment.Status = new CustomType(EquipmentStatusId, EquipmentStatusName); } else { OriginalEquipment = new Equipment( EquipmentGuid , EquipmentName , Make , Description , new CustomType(TypeId, TypeDescription) , Serial , SvcNumber , new CustomType(OwnershipId, OwnershipDescription) , PurchaseYear , PurchaseRequestYear , new CustomType(CurrentLocationId, CurrentLocationName) , IsDHCP , Subnet , IPAddress , Gateway , Mask , DNSOne , DNSTwo , LastChangeDate , new CustomType(EquipmentStatusId, EquipmentStatusName) ); } return OriginalEquipment; } private Equipment OriginalEquipment { get { if (Session["OriginalEquipment"] != null) return Session["OriginalEquipment"] as Equipment; else return null; } set { Session["OriginalEquipment"] = value; } } // Model Layer namespace Model { public class Equipment { private int? _guid; private string _name; private string _make; private string _description; private CustomType _equipmentType; private string _serial; private string _svcNumber; private CustomType _ownershipStatus; private string _purchaseYear; private string _purchaseRequestYear; private CustomType _currentLocation; private int _isDHCP; private string _subnet; private string _ipAddress; private string _gateway; private string _mask; private string _dnsOne; private string _dnsTwo; private DateTime? _lastChangeDate; private CustomType _status; private Dictionary<string, string> _dirtyProperties = new Dictionary<string, string>(); public Equipment() { } public Equipment( int? guid , string name , string make , string description , CustomType equipmentType , string serial , string svcNumber , CustomType ownershipStatus , string purchaseYear , string purchaseRequestYear , CustomType currentLocation , int isDHCP , string subnet , string ipAddress , string gateway , string mask , string dnsOne , string dnsTwo , DateTime? lastChangeDate , CustomType status ) { Guid = guid; Name = name; Make = make; Description = description; EquipmentType = equipmentType; Serial = serial; SvcNumber = svcNumber; OwnershipStatus = ownershipStatus; PurchaseYear = purchaseYear; PurchaseRequestYear = purchaseRequestYear; CurrentLocation = currentLocation; IsDHCP = isDHCP; Subnet = subnet; IPAddress = ipAddress; Gateway = gateway; Mask = mask; DNSOne = dnsOne; DNSTwo = dnsTwo; Status = status; } public int? Guid { get { return _guid; } private set { if (value.HasValue) { if (value <= 0) throw new Exception("Invalid Guid"); if (_guid != null && _guid != value && !_dirtyProperties.ContainsKey("equipment_id")) _dirtyProperties.Add("equipment_id", value.ToString()); _guid = value; } } } public string Name { get { return _name; } private set { if (string.IsNullOrEmpty(value)) throw new Exception("Invalid Equipment Name"); if (_name != null && _name != value && !_dirtyProperties.ContainsKey("equipment_name")) _dirtyProperties.Add("equipment_name", value); _name = value; } } public string Make { get { return _make; } set { if (_make != null && _make != value && !_dirtyProperties.ContainsKey("make_model")) _dirtyProperties.Add("make_model", value); _make = value; } } public string Description { get { return _description; } set { if (_description != null && _description != value && !_dirtyProperties.ContainsKey("short_desc")) _dirtyProperties.Add("short_desc", value); _description = value; } } public CustomType EquipmentType { get { return _equipmentType; } set { if (_equipmentType != null && _equipmentType != value && !_dirtyProperties.ContainsKey("equipment_type_id")) _dirtyProperties.Add("equipment_type_id", value.Id); _equipmentType = value; } } public string Serial { get { return _serial; } set { if (_serial != null && _serial != value && !_dirtyProperties.ContainsKey("serial_number")) _dirtyProperties.Add("serial_number", value); _serial = value; } } public string SvcNumber { get { return _svcNumber; } set { if (_svcNumber != null && _svcNumber != value && !_dirtyProperties.ContainsKey("service_number")) _dirtyProperties.Add("service_number", value); _svcNumber = value; } } public CustomType OwnershipStatus { get { return _ownershipStatus; } set { if (_ownershipStatus != null && _ownershipStatus != value && !_dirtyProperties.ContainsKey("ownership_status")) _dirtyProperties.Add("ownership_status", value.Id); _ownershipStatus = value; } } public string PurchaseYear { get { return _purchaseYear; } set { if (!string.IsNullOrEmpty(value)) { if (!Helper.IsStringNumeric(value) || value.Length != 4) throw new Exception("Invalid Purchase Year"); if (_purchaseYear != null && _purchaseYear != value && !_dirtyProperties.ContainsKey("purchase_date")) _dirtyProperties.Add("purchase_date", value); _purchaseYear = value; } } } public string PurchaseRequestYear { get { return _purchaseRequestYear; } set { if (!string.IsNullOrEmpty(value)) { if (!Helper.IsStringNumeric(value) || value.Length != 4) throw new Exception("Invalid Purchase Request Year"); if (_purchaseRequestYear != null && _purchaseRequestYear != value && !_dirtyProperties.ContainsKey("purchase_req_date")) _dirtyProperties.Add("purchase_req_date", value); _purchaseRequestYear = value; } } } public CustomType CurrentLocation { get { return _currentLocation; } set { if (_currentLocation != null && _currentLocation != value && !_dirtyProperties.ContainsKey("current_location_id")) _dirtyProperties.Add("current_location_id", value.Id); _currentLocation = value; } } public int IsDHCP { get { return _isDHCP; } set { if (_isDHCP != null && _isDHCP != value && !_dirtyProperties.ContainsKey("dhcp")) _dirtyProperties.Add("dhcp", value.ToString()); _isDHCP = value; } } public string Subnet { get { return _subnet; } set { if (_subnet != null && _subnet != value && !_dirtyProperties.ContainsKey("subnet")) _dirtyProperties.Add("subnet", value); _subnet = value; } } public string IPAddress { get { return _ipAddress; } set { if (_ipAddress != null && _ipAddress != value && !_dirtyProperties.ContainsKey("ipaddr")) _dirtyProperties.Add("ipaddr", value); _ipAddress = value; } } public string Gateway { get { return _gateway; } set { if (_gateway != null && _gateway != value && !_dirtyProperties.ContainsKey("default_gateway")) _dirtyProperties.Add("default_gateway", value); _gateway = value; } } public string Mask { get { return _mask; } set { if (_mask != null && _mask != value && !_dirtyProperties.ContainsKey("netmask")) _dirtyProperties.Add("netmask", value); _mask = value; } } public string DNSOne { get { return _dnsOne; } set { if (_dnsOne != null && _dnsOne != value && !_dirtyProperties.ContainsKey("dns_1")) _dirtyProperties.Add("dns_1", value); _dnsOne = value; } } public string DNSTwo { get { return _dnsTwo; } set { if (_dnsTwo != null && _dnsTwo != value && !_dirtyProperties.ContainsKey("dns_2")) _dirtyProperties.Add("dns_2", value); _dnsTwo = value; } } public DateTime? LastChangeDate { get { return _lastChangeDate; } private set { if (value.HasValue) _lastChangeDate = value; } } public CustomType Status { get { return _status; } set { if (_status != null && _status != value && !_dirtyProperties.ContainsKey("equipment_status_id")) _dirtyProperties.Add("equipment_status_id", value.Id); _status = value; } } public Dictionary<string, string> DirtyProperties { get { return _dirtyProperties; } set { _dirtyProperties = value; } } } // CustomType Class public class CustomType { private string _id; private string _description; public CustomType() { } public CustomType(string id) { Id = id; Description = string.Empty; } public CustomType(string id, string description) { Id = id; Description = description; } public string Id { get { return _id; } set { _id = value; } } public string Description { get { return _description; } set { _description = value; } } } } namespace DAL { public class EquipmentDB { public bool UpdateEquipment(Equipment entity) { if (entity.DirtyProperties.Count < 1) return false; bool updated; using (TransactionScope myScope = new TransactionScope(TransactionScopeOption.Required)) { using (SqlConnection myConnection = new SqlConnection(AppConfiguration.ConnectionString)) { using (SqlCommand myCommand = new SqlCommand("ts_create_or_match_equipment_2", myConnection)) { foreach (KeyValuePair<string, string> kvp in entity.DirtyProperties) { if (kvp.Key == "equipment_type_id" || kvp.Key == "current_location_id" || kvp.Key == "dhcp" || kvp.Key == "equipment_status_id") myCommand.Parameters.Add("@" + kvp.Key, SqlDbType.Int).Value = Int32.Parse(kvp.Value); else if (kvp.Key == "LastChangeDate") myCommand.Parameters.Add("@" + kvp.Key, SqlDbType.DateTime).Value = DateTime.Parse(kvp.Value); else myCommand.Parameters.AddWithValue("@" + kvp.Key, kvp.Value); } myCommand.CommandType = CommandType.StoredProcedure; myConnection.Open(); myCommand.ExecuteNonQuery(); updated = true; } myConnection.Close(); } myScope.Complete(); } return true; } public int InsertEquipment(Equipment entity) { int id = 0; using (TransactionScope myScope = new TransactionScope(TransactionScopeOption.Required)) { using (SqlConnection myConnection = new SqlConnection(AppConfiguration.ConnectionString)) { using (SqlCommand myCommand = new SqlCommand("ts_create_or_match_equipment_2", myConnection)) { myCommand.Parameters.Add("@equipment_name", SqlDbType.VarChar, 64).Value = entity.Name; myCommand.Parameters.Add("@make_model", SqlDbType.VarChar, 64).Value = entity.Make; myCommand.Parameters.Add("@short_desc", SqlDbType.VarChar, 64).Value = entity.Description; if (!string.IsNullOrEmpty(entity.EquipmentType.Id)) myCommand.Parameters.Add("@equipment_type_id", SqlDbType.Int).Value = Int32.Parse(entity.EquipmentType.Id); myCommand.Parameters.Add("@serial_number", SqlDbType.VarChar, 64).Value = entity.Serial; myCommand.Parameters.Add("@service_number", SqlDbType.VarChar, 64).Value = entity.SvcNumber; myCommand.Parameters.Add("@ownership_status", SqlDbType.Char).Value = entity.OwnershipStatus.Id; myCommand.Parameters.Add("@current_location_id", SqlDbType.Int).Value = Int32.Parse(entity.CurrentLocation.Id); myCommand.Parameters.Add("@dhcp", SqlDbType.Int).Value = entity.IsDHCP; myCommand.Parameters.Add("@subnet", SqlDbType.VarChar, 20).Value = entity.Subnet; myCommand.Parameters.Add("@ipaddr", SqlDbType.VarChar, 20).Value = entity.IPAddress; myCommand.Parameters.Add("@default_gateway", SqlDbType.VarChar, 20).Value = entity.Gateway; myCommand.Parameters.Add("@netmask", SqlDbType.VarChar, 20).Value = entity.Mask; myCommand.Parameters.Add("@dns_1", SqlDbType.VarChar, 20).Value = entity.DNSOne; myCommand.Parameters.Add("@dns_2", SqlDbType.VarChar, 20).Value = entity.DNSTwo; myCommand.Parameters.Add("@equipment_status_id", SqlDbType.Int).Value = Int32.Parse(entity.Status.Id); myCommand.CommandType = CommandType.StoredProcedure; myConnection.Open(); id = myCommand.ExecuteNonQuery(); } myConnection.Close(); } myScope.Complete(); } return id; } } }</pre> <a href="http://www.refactormycode.com/codes/831-help-me-refactor-my-class-function" style="color:#fff" title="As seen on RefactorMyCode.com"><img alt="Small_logo" src="http://www.refactormycode.com/images/small_logo.gif" style="border:0" /></a>