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; } }
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); } } }
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(); }