TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Anonymous
NA
2
4.6k
Refactor code
Jul 26 2011 5:51 PM
I need some help with refactoring code.
IEnumerable<OrderChange> parentChanges = null;
foreach (OrderChange orderChange in changes)
{
if (orderChange.Entity is IParentBL)
{
parentChanges =
changes.Where(orderChange.Entity is IParentBL)
}
switch (orderChange.Status)
{
case Status.A:
{
ISiblingBL siblibgBL = bl as ISiblingBL;
if (siblibgBL != null)
{
siblingBL.Ship(orderChange);
}
else if (bl is IChildBL)
{
(bl as IChildBL).Ship(orderChange)
}
else if (bl is IParentBL)
{
(bl as IParentBL).Ship(parentChanges);
}
break;
}
case Status.B:
{
if (bl is IParentBL)
{
(bl as IParentBL).ReturnShipment(parentChanges);
}
else
{
bl.ReturnShipment(orderCHange);
}
break;
}
case Status.C:
{
if (bl is IParentBL)
{
//do something
}
else
{
//do something
}
}
}
if (bl is IParentBL)
{
foreach (OrderChange change in parentChanges)
{
result.Add(
change.Id, change.Value);
}
}
else
{
result.Add(
orderChange.Id, orderChange.Value);
}
}
IParentBL, ISiblingBL and IChildBL are all interfaces which could be implemented by any class that is an IOrderChangeBL. I want to switch on the status and check for the interface type so that i can call the appropriate method in the interface. OrderChange has an entity property which holds the instance of the class which implements one of these interfaces. OrderChange also has a status property.
Please refer to the snippet above.
I want to loop through changes collection and check the type of the entity object. if object type is IParentBL then i collect all orderchanges that are of the same type and store it in a temp variable.
Depending on the status of the OrderChange object and the type of the entity object i need to do something. If entity is IParentBL then i always use the collection which is stored in the temp variable.
if not then orderChange object is used
Reply
Answers (
0
)
An example of creating a custom exception to validate xml
C#.net cofiguration file