コード例 #1
0
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            try {
                SPWeb  web          = SPContext.Current.Web;
                SPList objSPlist    = web.Lists["SemesterLista"];
                SPUser approveruser = null;
                if (ppOwner.AllEntities.Count == 1)
                {
                    approveruser = web.EnsureUser(ppOwner.InitialUserAccounts);
                }
                else
                {
                    lblMSG.ForeColor = Color.Red;
                    lblMSG.Text      = "Please select approver";
                }


                LeaveAppInfo leaveInfo = new LeaveAppInfo();
                leaveInfo.LeaveTitle           = "Leave Application for " + txtFornamn.Text;
                leaveInfo.FirstName            = txtFornamn.Text;
                leaveInfo.LastName             = txtEfternamn.Text;
                leaveInfo.StartDate            = dtSPStartDate.SelectedDate;
                leaveInfo.EndDate              = dtSPEndDate.SelectedDate;
                leaveInfo.PercentageCompletion = 0;
                leaveInfo.status = "Skapad";

                if (!CheckIfAlreadyRequestIsThere(objSPlist.Items))
                {
                    //creating new Item
                    SPListItem newItem = objSPlist.AddItem();
                    newItem["Title"]         = leaveInfo.LeaveTitle;
                    newItem["Startdatum"]    = leaveInfo.StartDate;
                    newItem["Slutdatum"]     = leaveInfo.EndDate;
                    newItem["F_x00f6_rnamn"] = leaveInfo.FirstName;
                    newItem["Efternamn"]     = leaveInfo.LastName;
                    newItem["Status"]        = leaveInfo.status.ToString();
                    newItem["Omfattning"]    = leaveInfo.PercentageCompletion;
                    newItem["Ansvarig"]      = approveruser;

                    newItem.Update();
                    lblMSG.ForeColor = Color.Green;
                    lblMSG.Text      = " Ansökan lämnas in för" + leaveInfo.FirstName;
                }
                else
                {
                    lblMSG.ForeColor = Color.Red;
                    lblMSG.Text      = "Ansökan redan finns för den datumintervall för " + leaveInfo.FirstName;
                }
            }
            catch (Exception ex)
            {
                lblMSG.ForeColor = Color.Red;
                lblMSG.Text      = ex.Message;
            }
        }
コード例 #2
0
        private bool CheckIfAlreadyRequestIsThere(SPListItemCollection allItems)
        {
            List <LeaveAppInfo> allLeaves = new List <LeaveAppInfo>();
            string   strcurrentFirstName  = txtFornamn.Text;
            DateTime currStartDate        = dtSPStartDate.SelectedDate;
            DateTime currEndDate          = dtSPEndDate.SelectedDate;

            foreach (SPListItem item in allItems)
            {
                LeaveAppInfo oLeave = new LeaveAppInfo();
                oLeave.FirstName = item["F_x00f6_rnamn"].ToString();
                if (item["Efternamn"] != null)
                {
                    oLeave.LastName = item["Efternamn"].ToString();
                }
                oLeave.StartDate = DateTime.Parse(item["Startdatum"].ToString());
                oLeave.EndDate   = DateTime.Parse(item["Slutdatum"].ToString());
                allLeaves.Add(oLeave);
            }


            List <LeaveAppInfo> currentUsersLeaveInfo = allLeaves.Where(x => x.FirstName.Contains(strcurrentFirstName)).ToList <LeaveAppInfo>();

            if (currentUsersLeaveInfo.Count == 0)
            {
                return(false);
            }
            else
            {
                List <LeaveAppInfo> leavesfromUser = currentUsersLeaveInfo.Where(y => y.StartDate <= currStartDate && y.EndDate > currEndDate || y.StartDate >= currStartDate && y.StartDate < currEndDate).ToList <LeaveAppInfo>();

                if (leavesfromUser.Count == 0)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }
コード例 #3
0
        private void LoadLeaves()
        {
            string strcurrentFirstName = string.Empty;
            string strcurrentLastName  = string.Empty;
            SPWeb  web      = SPContext.Current.Web;
            SPUser currUser = web.CurrentUser;
            //currUser.
            SPList objSPlist = web.Lists["SemesterLista"];
            SPListItemCollection listOfLeaves = objSPlist.Items;

            string strDisplayName = currUser.Name;

            string[] names = strDisplayName.Split(' ');
            if (names.Length > 0)
            {
                if (string.IsNullOrEmpty(names[0]))
                {
                    strcurrentFirstName = "";
                }
                else
                {
                    strcurrentFirstName = names[0];
                }
                if (string.IsNullOrEmpty(names[1]))
                {
                    strcurrentLastName = "";
                }
                else
                {
                    strcurrentLastName = names[1];
                }
            }

            foreach (SPListItem item in listOfLeaves)
            {
                LeaveAppInfo oLeave = new LeaveAppInfo();
                oLeave.LeaveId    = item.ID;
                oLeave.LeaveTitle = item["Title"].ToString();
                oLeave.FirstName  = item["F_x00f6_rnamn"].ToString();
                if (item["Efternamn"] != null)
                {
                    oLeave.LastName = item["Efternamn"].ToString();
                }
                oLeave.StartDate            = DateTime.Parse(item["Startdatum"].ToString());
                oLeave.EndDate              = DateTime.Parse(item["Slutdatum"].ToString());
                oLeave.Ansvarig             = item["Ansvarig"].ToString();
                oLeave.status               = item["Status"].ToString();
                oLeave.PercentageCompletion = int.Parse(item["Omfattning"].ToString());
                allLeaves.Add(oLeave);
            }
            //My List of Leaves
            List <LeaveAppInfo> currentUsersLeaveInfo = allLeaves.Where(x => x.FirstName.Contains(strcurrentFirstName)).ToList <LeaveAppInfo>();

            gvMyLeaves.DataSource = currentUsersLeaveInfo;
            gvMyLeaves.DataBind();

            //Leaves for my approval

            List <LeaveAppInfo> curentUserAnsvarigFor = allLeaves.Where(x => x.Ansvarig.Contains(currUser.Name) && !x.status.Equals("Beviljad")).ToList <LeaveAppInfo>();

            gvMyApprovalGrid.DataSource = curentUserAnsvarigFor;
            gvMyApprovalGrid.DataBind();
        }