Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public static List <Objective> GetAppraisalFormObjectives(int appraisalFormID, string currentWebUrl)
        {
            List <Objective> result          = new List <Objective>();
            SPQuery          objectivesQuery = new SPQuery()
            {
                Query = String.Format(@"<Where><Eq><FieldRef Name='AppraisalFormID'/><Value Type='Lookup'>{0}</Value></Eq></Where>", appraisalFormID)
            };
            SPListItemCollection queryObjectivesItems = SPListHelper.GetListItemsByQuery(Configuration.ObjectivesListName, objectivesQuery, currentWebUrl);

            if (queryObjectivesItems != null && queryObjectivesItems.Count > 0)
            {
                List <int> objectiveIds = queryObjectivesItems.OfType <SPListItem>().Select(i => i.ID).ToList();
                SPQuery    helpersQuery = new SPQuery()
                {
                    Query = String.Format(@"<Where>{0}</Where>", objectiveIds.ToCamlIn("ObjectiveID", null))
                };
                SPListItemCollection queryHelpersItems = SPListHelper.GetListItemsByQuery(Configuration.HelpersListName, helpersQuery, currentWebUrl);
                List <Helper>        helpers           = ExtractHelpersFromSPList(queryHelpersItems);

                foreach (SPListItem objective in queryObjectivesItems)
                {
                    result.Add(new Objective()
                    {
                        ID = objective.ID,
                        AppraisalFormID = appraisalFormID,
                        IsCompleted     = objective["IsCompleted"] != null ? bool.Parse(objective["IsCompleted"].ToString()) : false,
                        Helpers         = helpers.Where(helper => helper.ObjectiveID == objective.ID).Select(helper => helper).ToList()
                    });
                }
            }

            return(result);
        }
Exemplo n.º 3
0
        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)
            {
            }
        }
        private SPList TryGetSPList()
        {
            if (StringUtil.IsNullOrWhitespace(TxtSPListUrl.Text))
            {
                return(null);
            }
            PleaseWaitForm pleaseWait = new PleaseWaitForm();

            try
            {
#if (!DEBUG)
                pleaseWait.Show(this.Parent);
                Application.DoEvents();
#endif
                using (SPSite site = new SPSite(TxtSPListUrl.Text))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        Uri curUri = new Uri(TxtSPListUrl.Text);
                        return(SPListHelper.TryGetListByRelativeUrl(web, curUri.PathAndQuery));
                    }
                }
            }
            catch (SPException spex)
            {
                MessageBox.Show(spex.Message);
                Log.Error(spex);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                Log.Error(ex);
            }
            finally
            {
#if (!DEBUG)
                pleaseWait.Close();
#endif
            }
            return(null);
        }
        public Hashtable GetAssistantEmails(SPUserCodeWorkflowContext context, string signatories, string signatoriesEmails, string listName, string id, string sourceList)
        {
            Hashtable results = new Hashtable();

            results["result"] = string.Empty;
            //debug += string.Format("Signatories: {0} SignatoriesEmails: {1} ListName: {2} Id: {3} SourceList: {4}", signatories, signatoriesEmails, listName, id, sourceList);

            List <string> processedUsers = new List <string>();

            try
            {
                if (!string.IsNullOrEmpty(signatories) && !string.IsNullOrEmpty(signatoriesEmails))
                {
                    string[] arrSignatories       = signatories.Split(new char[] { ';' });
                    string[] arrSignatoriesEmails = signatoriesEmails.Split(new char[] { ';' });
                    SPQuery  camlQuery            = new SPQuery();
                    camlQuery.Query = "<Where>" + ToCamlIn(arrSignatories, "Signatory", "User") + "</Where>";

                    SPListItemCollection items = SPListHelper.GetListItemsByQuery(listName, camlQuery, context.CurrentWebUrl);

                    /*
                     * if (items == null)
                     * {
                     *  debug += string.Format("List with name {0} not found", listName);
                     * }
                     */
                    foreach (SPListItem item in items)
                    {
                        List <SPUser> users = GetSPUserObject(item, "Assistant");
                        foreach (SPUser user in users)
                        {
                            res += user.Email + ";";
                            SetPermissionsForAssistant(context, user.LoginName, id, sourceList);
                        }

                        List <SPUser> procUsers = GetSPUserObject(item, "Signatory");
                        foreach (SPUser processedUser in procUsers)
                        {
                            processedUsers.Add(processedUser.Email);
                        }
                    }

                    foreach (string signatoryEmail in arrSignatoriesEmails)
                    {
                        if (!processedUsers.Contains(signatoryEmail))
                        {
                            res += signatoryEmail + ";";
                        }
                    }

                    res = res.TrimEnd(new char[] { ';' });
                }
                results["success"] = true;
            }
            catch (Exception e)
            {
                results = new Hashtable();
                res    += e.ToString();
                //debug += string.Format("Error: {0}", e.ToString());
                results["success"] = false;
            }

            //results["debug"] = debug;
            results["result"] = res;
            return(results);
        }