我必须在SharePoint中查看各种列表和工作流实例的计时器,应该改进代码吗?
我有很多if,foreach和我不知道我是否应该改变。
这是代码:
if (DateTime.Now.DayOfWeek == DayOfWeek.Friday || DateTime.Now.DayOfWeek == DayOfWeek.Tuesday)
{
using (SPSite site = new SPSite(ConfigManagerHelper.GetSetting("siteUrl")))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists[ConfigManagerHelper.GetSetting("listName")];
SPListItemCollection items = list.Items;
foreach (SPListItem item in items)
{
string tipo = item.ContentType.Name;
if (tipo != CMIHelper.IndicadorEstrategico && tipo != CMIHelper.ObjetivoEstrategico && tipo != CMIHelper.ObjetivoOperativo)
{
continue;
}
if (tipo.Equals(CMIHelper.ObjetivoEstrategico))
{
foreach (SPWorkflow wf in item.Workflows)
{
if (wf.InternalState == SPWorkflowState.Running)
{
//Indicadores
if (wf.ParentAssociation.BaseTemplate.Name == "WFCuadroMandos")
{
foreach (SPListItem indAux in web.Lists["IndicadoresAux"].Items)
{
if (wf.InstanceId.ToString().Equals(indAux["APV_PE_WorkflowIdAux"].ToString()))
{
}
}
}
//Objetivos Estratégicos
if (wf.ParentAssociation.BaseTemplate.Name == "WFCuadroMandosObjEstr")
{
}
}
}
}
}
}
}
}
谢谢,
答案 0 :(得分:0)
首先,比“ifs”更好的情况下,接下来你的一些代码可以对未发现的东西进行操作,然后添加
尝试抓住
SPListItemCollection items = list.Items;
foreach (SPListItem item in items)
你好一次使用这个
foreach (SPListItem item in list.Items)
并检查一些“nulls”:)
并改变它:
tipo!= CMIHelper.IndicadorEstrategico&& tipo!= CMIHelper.ObjetivoEstrategico&& tipo!= CMIHelper.ObjetivoOperativo
进入LINQ