public static AppraisalForm GetAppraisalFormByID(int id, string currentWebUrl, bool skipLoadingObjectives = false) { AppraisalForm form = new AppraisalForm(); SPQuery appraisalQuery = new SPQuery() { Query = String.Format(@"<Where><Eq><FieldRef Name='ID'/><Value Type='Lookup'>{0}</Value></Eq></Where>", id) }; SPListItemCollection queryAppraisalItems = SPListHelper.GetListItemsByQuery(Configuration.AppraisalFormsListName, appraisalQuery, currentWebUrl); if (queryAppraisalItems != null && queryAppraisalItems.Count > 0) { SPListItem appraisalItem = queryAppraisalItems[0]; form.ID = appraisalItem.ID; form.IsCompleted = appraisalItem["IsCompleted"] != null ? (bool)appraisalItem["IsCompleted"] : false; form.AppraisalFormTemplateID = appraisalItem["AppraisalFormTemplateID"].LookupToInt(); form.State = (StateType)Enum.Parse(typeof(StateType), appraisalItem["State"].ToString()); } if (!skipLoadingObjectives) { form.Objectives = GetAppraisalFormObjectives(form.ID, currentWebUrl); } return(form); }
public void SetStatuesWhenHelperDelay(SPUserCodeWorkflowContext context, int id) { try { AppraisalForm form = GetAppraisalFormByID(id, context.CurrentWebUrl, true); foreach (Objective obj in form.Objectives) { if (obj.Helpers.Where(h => h.State == StateType.Submited || h.State == StateType.TimeExpired).Count() == obj.Helpers.Count()) { if (obj.IsCompleted == false) { SPListHelper.UpdateItem(obj.ID, Configuration.ObjectivesListName, "IsCompleted", true, context.CurrentWebUrl); } } } if (form.Objectives.Where(o => o.IsCompleted == true).Count() == form.Objectives.Count()) { if (form.IsCompleted == false) { SPListHelper.UpdateItem(form.ID, Configuration.AppraisalFormsListName, "IsCompleted", true, context.CurrentWebUrl); } } } catch (Exception e) { } }