remove repetitive, tough coded loops conditions c#


i have category compares 2 instances same objects, generates list differences. finished looping by pivotal collections stuffing set collections list altered (this competence some-more clarity after regard formula below). works, generates an vigilant lets me know accurately total private between "old" vigilant "new" one.

my question/concern this...it unequivocally ugly, tons loops conditions. there improved proceed store/approach this, but carrying rest heavily spontaneity groups hard-coded conditions?



    open vacant diffsteps()
{
try
{
//confirm there 2 populated objects compare
(newstep.id != guid.empty && savedstep.id != guid.empty)
{
//<todo> good proceed review fast objects accurately same...hash?

//compare stepdoc collections:
olddocs = savedstep.stepdocs;
newdocs = newstep.stepdocs;
collection<stepdoc> docstodelete = new collection<stepdoc>();

foreach (stepdoc olddoc olddocs)
{
bool mislay = false;
foreach (stepdoc newdoc newdocs)
{
(newdoc.docid == olddoc.docid)
{
mislay = true;
}
}
(delete)
docstodelete.add(olddoc);
}

foreach (stepdoc doc docstodelete)
{
olddocs.remove(doc);
newdocs.remove(doc);
}


//same loop(s) stepusers...omitted brevity

//this collection users delete; collection
//of users changed. so, collection also needs checked
//to permisssions (or any destiny properties) have changed.
foreach (stepuser user userstodelete)
{
//compare two
stepuser olduser = null;
stepuser newuser = null;

foreach(stepuser oldie oldusers)
{
(user.userid == oldie.userid)
olduser = oldie;
}

foreach (stepuser newie newusers)
{
(user.userid == newie.userid)
newuser = newie;
}

if(olduser != zero && newuser != null)
{
(olduser.role != newuser.role)
updatedroles.add(newuser.name, newuser.role);
}

oldusers.remove(user);
newusers.remove(user);
}

}
}
catch(exception ex)
{
twine errormessage =
string.format("error generating diff between step objects {0} {1}", newstep.id, savedstep.id);
log.error(errormessage,ex);
throw;
}
}





the targeted horizon 3.5.



Comments

Popular posts from this blog

list macos calm editors formula editors

how hibernate @any-related annotations?

why does floated <input> control floated component slip over too distant right ie7, nonetheless firefox?