public async Task <IActionResult> PutLeaveDetails(int id, LeaveDetails leaveDetails) { if (id != leaveDetails.l_id) { return(BadRequest()); } _context.Entry(leaveDetails).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!LeaveDetailsExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public List <LeaveDetails> AllLeaveDetailsbyUserName(string userName) { SqlCommand sda; if (con.State != ConnectionState.Open) { con.Open(); } sda = new SqlCommand(commonThings.allLeaveDetailsbyUserName, con); sda.Parameters.AddWithValue("@userName", userName); SqlDataReader dr = sda.ExecuteReader(); List <LeaveDetails> list = new List <LeaveDetails>(); while (dr.Read()) { LeaveDetails leaveDetails = new LeaveDetails() { id = Convert.ToInt32(dr[0]), startDate = (Convert.ToDateTime(dr[1])).ToLongDateString(), endDate = (Convert.ToDateTime(dr[2])).ToLongDateString(), vacationType = Convert.ToString(dr[3]), comment = Convert.ToString(dr[4]) }; list.Add(leaveDetails); } con.Close(); return(list); }
public EmployeeAceptance() { InitializeComponent(); loadTable(); Dao ac = new Dao(); ac.Connect(); string x = Login.SetValueForId.ToString(); LeaveDetails ld = new LeaveDetails(); ac.AcceptLeave(x, ld); if (ld.accept == "1") { richTextBox1.Text = "- You had apply for " + ld.type + " leave from " + ld.startdate + " to " + ld.enddate + " and it was accepted"; } else if (ld.accept == "0") { richTextBox1.Text = "-You had apply for " + ld.type + " leave from " + ld.startdate + " to " + ld.enddate + " and it was not accepted."; } else { richTextBox1.Text = "-You have not apply for any leave recently "; } //= CalculateCount(); // .ToString(); }
/// <summary> /// delete item(s) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Delete_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show("Are you sure to delete the record?", "Dialog", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { LeaveDetailsService service = new LeaveDetailsService(); for (int i = 0; i < RequestHistory.Rows.Count;) { if (Convert.ToBoolean(RequestHistory.Rows[i].Cells[0].Value) == true) { LeaveDetails detail = new LeaveDetails(); detail = detailsBindingList.ElementAt(i); detailsBindingList.RemoveAt(i); service.RemoveDetails(detail); } else { i++; } } RequestHistory.DataSource = null; allDetails.Clear(); detailsBindingList.Clear(); AssignDatatoList(); AddLeavingsAttributetoList(allDetails); BindVactionDetails(); nCurrent = 0; pageCurrent = 0; InitPagingList(); MessageBox.Show("Submit Successfully !"); } }
public async Task <ActionResult <LeaveDetails> > PostLeaveDetails(LeaveDetails leaveDetails) { _context.Leave.Add(leaveDetails); await _context.SaveChangesAsync(); return(CreatedAtAction(nameof(GetLeaveDetails), new { id = leaveDetails.l_id }, leaveDetails)); }
/// <summary> /// Select a LeaveDetails list by LeaveDetails name /// </summary> /// <param name="LeaveDetails"></param> /// <returns></returns> public List <LeaveDetails> GetLeaveDetailsByStaffId(LeaveDetails ld) { List <LeaveDetails> leaveDetailsList = new List <LeaveDetails>(); using (_dataAccess.Connection = new OleDbConnection(ConnectionString)) { _dataAccess.Open(); string sql = "SELECT * FROM [LeaveDetails] WHERE StaffId=@StaffId AND StartDate>=#" + ld.StartDate + "# AND StartDate<=#" + ld.EndDate + "# ORDER BY [LeaveDetailsId] DESC"; QueryParameter p = new QueryParameter("StaffId", ld.StaffId, DbType.Int32); DataTable dt = _dataAccess.GetTable(sql, p); foreach (DataRow dr in dt.Rows) { LeaveDetails leaveDetails = new LeaveDetails() { LeaveDetailsId = Convert.ToInt32(dr[LeaveDetailsId]), StaffId = Convert.ToInt32(dr[StaffId]), LeaveTypeId = Convert.ToInt32(dr[LeaveTypeId]), StartDate = Convert.ToDateTime(dr[StartDate]), EndDate = Convert.ToDateTime(dr[EndDate]), Duration = Convert.ToSingle(dr[Duration]), Remark = dr[Remark].ToString() }; leaveDetailsList.Add(leaveDetails); } } return(leaveDetailsList); }
static string LeaveBook1(string empCode, string leavecat, string leaveType, string leaveDate) { string responseString = ""; string leaveStardDate = ""; string leaveEndDate = ""; if (leaveDate == "Yesterday") { DateTime yesterday = DateTime.Now.AddDays(-1); leaveStardDate = yesterday.ToString("dd-MMM-yyyy"); leaveEndDate = yesterday.ToString("dd-MMM-yyyy"); } else if (leaveDate == "Tomorrow") { DateTime Tomorrow = DateTime.Now.AddDays(1); leaveStardDate = Tomorrow.ToString("dd-MMM-yyyy"); leaveEndDate = Tomorrow.ToString("dd-MMM-yyyy"); } LeaveDetails sDetails = new LeaveDetails() { EmpCode = empCode, LeaveCategory = leavecat, LeaveType = leaveType, StartDate = leaveStardDate, EndDate = leaveEndDate }; HttpResponseMessage responsePostMethod = ClientPostRequest("api/Leave/BookLeave/", sDetails); if (responsePostMethod.IsSuccessStatusCode) { responseString = responsePostMethod.Content.ReadAsStringAsync().Result; } return(responseString); }
public List <LeaveDetails> AllLeaveDetailsGetter() { SqlCommand sda; if (con.State != ConnectionState.Open) { con.Open(); } sda = new SqlCommand(commonThings.allLeaveDetailsGetter, con); SqlDataReader dr = sda.ExecuteReader(); List <LeaveDetails> list = new List <LeaveDetails>(); while (dr.Read()) { LeaveDetails leaveDetails = new LeaveDetails() { applicationName = Convert.ToString(dr[0]), userName = Convert.ToString(dr[1]), startDate = (Convert.ToDateTime(dr[2])).ToLongDateString(), endDate = (Convert.ToDateTime(dr[3])).ToLongDateString(), noOfDays = Convert.ToInt32(dr[4]), vacationType = Convert.ToString(dr[5]), comment = Convert.ToString(dr[6]) }; list.Add(leaveDetails); } con.Close(); return(list); }
/// <summary> /// Select All records /// </summary> /// <returns></returns> public List <LeaveDetails> GetAllLeaveDetails() { List <LeaveDetails> leaveDetailsList = new List <LeaveDetails>(); using (_dataAccess.Connection = new OleDbConnection(ConnectionString)) { _dataAccess.Open(); string sql = "SELECT * FROM [LeaveDetails] "; DataTable dt = _dataAccess.ExecuteSql(sql); foreach (DataRow dr in dt.Rows) { LeaveDetails leaveDetails = new LeaveDetails() { LeaveDetailsId = Convert.ToInt32(dr[LeaveDetailsId]), StaffId = Convert.ToInt32(dr[StaffId]), LeaveTypeId = Convert.ToInt32(dr[LeaveTypeId]), StartDate = Convert.ToDateTime(dr[StartDate]), EndDate = Convert.ToDateTime(dr[EndDate]), Duration = Convert.ToSingle(dr[Duration]), Remark = dr[Remark].ToString() }; leaveDetailsList.Add(leaveDetails); } } return(leaveDetailsList); }
private void BunifuThinButton26_Click(object sender, EventArgs e) { LeaveDetails le = new LeaveDetails() { Leaveid = referenc }; Dao del = new Dao(); del.Connect(); del.rejectRequest(le); del.Disconnect(); //loadTable(); if (keeper == "DeputyGenaralManager") { loadTable(); } else { loadTableM(); } bunifuGradientPanel1.Hide(); MessageBox.Show("Rejected"); }
public IHttpActionResult PostEmployeeLeaveDetails(string UserId) { var leavedetail = tms.GetTrainerPlaner(UserId); LeaveDetails lv = new LeaveDetails(); lv.EmpLeaveDetails = leavedetail; return(new LeaveResult(lv, Request)); }
public void Setup() { timer = new Mock <ITimer>(MockBehavior.Strict); leave = new LeaveDetails(); factory = new HolidayCalendarFactoryFake(); factory.timer = timer.Object; HolidayCalendarFactory.Instance = factory; }
private void SaveLeaveToFakeDisk(LeaveDetails leaveDetails = null) { if (leaveDetails == null) { leaveDetails = leave; } factory.leaveDetails = leaveDetails; }
private static async Task WithdrawLeave(IDialogContext context, Activity activity, Employee employee, string leaveCategory) { var managerId = await GetManagerId(employee); if (managerId == null) { var reply = activity.CreateReply(); reply.Text = "Unable to fetch your manager details. Please make sure that your manager has installed the Leave App."; await context.PostAsync(reply); } else { EditLeaveDetails vacationDetails = JsonConvert.DeserializeObject <EditLeaveDetails>(activity.Value.ToString()); LeaveDetails leaveDetails = await DocumentDBRepository.GetItemAsync <LeaveDetails>(vacationDetails.LeaveId); leaveDetails.Status = LeaveStatus.Withdrawn; var attachment = EchoBot.ManagerViewCard(employee, leaveDetails); // Manger Updates. var conversationId = await SendNotification(context, managerId, null, attachment, leaveDetails.UpdateMessageInfo.Manager, false); if (!String.IsNullOrEmpty(conversationId)) { leaveDetails.UpdateMessageInfo.Manager = conversationId; } if (!String.IsNullOrEmpty(conversationId)) { ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); var employeeCardReply = activity.CreateReply(); var employeeView = EchoBot.EmployeeViewCard(employee, leaveDetails); employeeCardReply.Attachments.Add(employeeView); if (!string.IsNullOrEmpty(leaveDetails.UpdateMessageInfo.Employee)) { await connector.Conversations.UpdateActivityAsync(employeeCardReply.Conversation.Id, leaveDetails.UpdateMessageInfo.Employee, employeeCardReply); } else { var reply = activity.CreateReply(); reply.Text = "Your leave request has been successfully withdrawn!"; await context.PostAsync(reply); var msgToUpdate = await connector.Conversations.ReplyToActivityAsync(employeeCardReply); } } else { var reply = activity.CreateReply(); reply.Text = "Failed to send notification to your manger. Please try again later."; await context.PostAsync(reply); } // Update DB for all the message Id realted changes await DocumentDBRepository.UpdateItemAsync(leaveDetails.LeaveId, leaveDetails); } }
public IHttpActionResult PostEngagementTypeList(string UserId) { string corporateId = emp.GetEmployeeBasicDetails(UserId).Select(e => e.SubscriberId).FirstOrDefault().ToString(); var employeeDetails = db.EmpJoiningDetail.Where(c => c.UserId == UserId).FirstOrDefault(); var entity = db.EngagementTypeMaster.Where(e => e.CorporateId == corporateId && e.SchemeId == employeeDetails.SchemeId).ToList(); LeaveDetails lv = new LeaveDetails(); lv.Leavetype = entity; return(new LeaveResult(lv, Request)); }
private static HttpResponseMessage ClientPostRequest(string RequestURI, LeaveDetails sDetails) { HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://epmschatbotapi.azurewebsites.net"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = client.PostAsJsonAsync(RequestURI, sDetails).Result; return(response); }
public async Task <IActionResult> PostLeaveDetails([FromBody] LeaveDetails leaveDetails) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.LeaveDetails.Add(leaveDetails); await _context.SaveChangesAsync(); return(CreatedAtAction("GetLeaveDetails", new { id = leaveDetails.LeaveID }, leaveDetails)); }
/// <summary> /// Delete a piece of LeaveDetails record in database. /// </summary> /// <param name="LeaveDetails"></param> /// <returns></returns> public Response DeleteLeaveDetails(LeaveDetails leaveDetails) { Response response = new Response(); using (_dataAccess.Connection = new OleDbConnection(ConnectionString)) { _dataAccess.Open(); string sql = "DELETE FROM [LeaveDetails] WHERE [LeaveDetailsId]=@LeaveDetailsId"; QueryParameter p = new QueryParameter("@LeaveDetailsId", leaveDetails.LeaveDetailsId, DbType.Int32); response.IsFailed = !Convert.ToBoolean(_dataAccess.ExecuteNonQuery(sql, p)); } return(response); }
private void BunifuThinButton26_Click(object sender, EventArgs e) { LeaveDetails le = new LeaveDetails() { Leaveid = referenc }; Dao del = new Dao(); del.Connect(); del.rejectRequest(le); del.Disconnect(); loadTable(); bunifuGradientPanel1.Hide(); MessageBox.Show("Rejected"); }
public ActionResult LeaveDetails(LeaveDetails leaveDetails) { if (leaveDetails.vacationType == null) { leaveDetails.vacationType = "Not mentioned"; } if (leaveDetails.comment == null) { leaveDetails.comment = "Not mentioned"; } DataGetter.LeaveDetailsFiller(leaveDetails, Session["userName"].ToString()); return(RedirectToAction("LeaveDetails", "Admin")); }
public async Task <IActionResult> PostLeaveDetails([FromBody] LeaveDetails leaveDetails) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.LeaveDetails.Add(leaveDetails); await _context.SaveChangesAsync(); LeaveDetails obj = _context.LeaveDetails.FromSql <LeaveDetails>("spGetLeaveDetailWithEmployeeByEmployeeId").ToList().FirstOrDefault(); var leaveDetail = _context.EmployeeLeaveDetails.FromSql <EmployeeLeaveDetails>("spGetLeaveDetailsByLeaveID {0}", obj.LeaveID).ToList().FirstOrDefault(); Send_LeaveRequestMail(leaveDetail); return(CreatedAtAction("GetLeaveDetails", new { id = leaveDetails.LeaveID }, leaveDetails)); }
static string LeaveBookCustom(string empCode, string leavecat, string leavetype, string startDate, string endDate) { string responseString = ""; LeaveDetails sDetails = new LeaveDetails() { EmpCode = empCode, LeaveCategory = leavecat, LeaveType = leavetype, StartDate = startDate, EndDate = endDate }; HttpResponseMessage responsePostMethod = ClientPostRequest("api/Leave/BookLeave/", sDetails); if (responsePostMethod.IsSuccessStatusCode) { responseString = responsePostMethod.Content.ReadAsStringAsync().Result; } return(responseString); }
public static LeaveDetails ParseHtmlDocument(HtmlDocument document) { var details = new LeaveDetails(); var calendarTable = document.DocumentNode.Descendants() .First(n => n.Attributes["class"] != null && n.Attributes["class"].Value.Contains("Calendar")); var monthTables = calendarTable.Descendants() .Where(n => n.Attributes["class"] != null && n.Attributes["class"].Value.Contains("Grid")); DateTime d = new DateTime(DateTime.Now.Year, 1, 1); foreach (var monthTable in monthTables) { var days = monthTable.Descendants() .Where( n => n.Attributes["class"] != null && (n.Attributes["class"].Value == "CalendarDay" || n.Attributes["class"].Value == "CalendarWeekend")); foreach (var day in days) { var events = day.Descendants() .Where( n => n.Attributes["class"] != null && n.Attributes["class"].Value.Contains("CalendarEvent")); foreach (var calendarEvent in events) { var name = calendarEvent.ChildNodes["a"].Attributes["title"].Value; name = name.Substring(0, name.IndexOf(" /")); details.LeaveDays.Add(new LeaveDetails.LeaveDay() { Date = d, Name = name }); } d = d.AddDays(1); } } return(details); }
/// <summary> /// Insert a piece of record in database. /// </summary> /// <param name="LeaveDetails"></param> /// <returns></returns> public Response InsertLeaveDetails(LeaveDetails leaveDetails) { Response response = new Response(); using (_dataAccess.Connection = new OleDbConnection(ConnectionString)) { _dataAccess.Open(); string sql = "INSERT INTO [LeaveDetails] ([StaffId],[LeaveTypeId],[StartDate],[EndDate],[Duration],[Remark]) VALUES (@StaffId,@LeaveTypeId,@StartDate,@EndDate,@Duration,@Remark)"; QueryParameter[] list = new QueryParameter[6]; list[0] = new QueryParameter("@StaffId", leaveDetails.StaffId, DbType.Int32); list[1] = new QueryParameter("@LeaveTypeId", leaveDetails.LeaveTypeId, DbType.Int32); list[2] = new QueryParameter("@StartDate", leaveDetails.StartDate, DbType.DateTime); list[3] = new QueryParameter("@EndDate", leaveDetails.EndDate, DbType.DateTime); list[4] = new QueryParameter("@Duration", leaveDetails.Duration, DbType.Single); list[5] = new QueryParameter("@Remark", leaveDetails.Remark, DbType.String); response.IsFailed = !Convert.ToBoolean(_dataAccess.ExecuteNonQuery(sql, list)); } return(response); }
/// <summary> /// Update a piece of record in database. /// </summary> /// <param name="LeaveDetails"></param> /// <returns></returns> public Response UpdateLeaveDetails(LeaveDetails leaveDetails) { Response response = new Response(); using (_dataAccess.Connection = new OleDbConnection(ConnectionString)) { _dataAccess.Open(); string sql = "UPDATE [LeaveDetails] SET [StaffId]=@StaffId,[LeaveTypeId]=@LeaveTypeId,[StartDate]=@StartDate,[EndDate]=@EndDate,[Duration]=@Duration,[Remark]=@Remark WHERE [LeaveDetailsId]=@LeaveDetailsId"; QueryParameter[] list = new QueryParameter[7]; list[0] = new QueryParameter("@StaffId", leaveDetails.StaffId, DbType.Int32); list[1] = new QueryParameter("@LeaveTypeId", leaveDetails.LeaveTypeId, DbType.Int32); list[2] = new QueryParameter("@StartDate", leaveDetails.StartDate, DbType.DateTime); list[3] = new QueryParameter("@EndDate", leaveDetails.EndDate, DbType.DateTime); list[4] = new QueryParameter("@Duration", leaveDetails.Duration, DbType.Single); list[5] = new QueryParameter("@Remark", leaveDetails.Remark, DbType.String); list[6] = new QueryParameter("@LeaveDetailsId", leaveDetails.LeaveDetailsId, DbType.Int32); response.IsFailed = !Convert.ToBoolean(_dataAccess.ExecuteNonQuery(sql, list)); } return(response); }
public void LeaveDetailsFiller(LeaveDetails leaveDetails, string userName) { SqlCommand sda; if (con.State != ConnectionState.Open) { con.Open(); } sda = new SqlCommand(commonThings.insertIntoLeaveDetails, con); sda.Parameters.AddWithValue("@userName", userName); sda.Parameters.AddWithValue("@startDate", leaveDetails.startDate); sda.Parameters.AddWithValue("@endDate", leaveDetails.endDate); int st = Convert.ToDateTime(leaveDetails.startDate).Day; int et = Convert.ToDateTime(leaveDetails.endDate).Day; sda.Parameters.AddWithValue("@noOfDays", TotalDays(st, et)); sda.Parameters.AddWithValue("@vacationType", leaveDetails.vacationType); sda.Parameters.AddWithValue("@comment", leaveDetails.comment); sda.ExecuteNonQuery(); con.Close(); }
/// <summary> /// Select a LeaveDetails list by LeaveDetails id /// </summary> /// <param name="LeaveDetails"></param> /// <returns></returns> public LeaveDetails GetLeaveDetailsByLeaveDetailsId(LeaveDetails ld) { LeaveDetails leaveDetails = new LeaveDetails(); using (_dataAccess.Connection = new OleDbConnection(ConnectionString)) { _dataAccess.Open(); string sql = "SELECT * FROM [LeaveDetails] WHERE LeaveDetailsId=@LeaveDetailsId"; QueryParameter p = new QueryParameter("LeaveDetailsId", ld.LeaveDetailsId, DbType.Int32); DataTable dt = _dataAccess.GetTable(sql, p); foreach (DataRow dr in dt.Rows) { leaveDetails.LeaveDetailsId = Convert.ToInt32(dr[LeaveDetailsId]); leaveDetails.StaffId = Convert.ToInt32(dr[StaffId]); leaveDetails.LeaveTypeId = Convert.ToInt32(dr[LeaveTypeId]); leaveDetails.StartDate = Convert.ToDateTime(dr[StartDate]); leaveDetails.EndDate = Convert.ToDateTime(dr[EndDate]); leaveDetails.Duration = Convert.ToSingle(dr[Duration]); leaveDetails.Remark = dr[Remark].ToString(); } } return(leaveDetails); }
private void BunifuThinButton21_Click(object sender, EventArgs e) { empId = int.Parse(IdE); LeaveDetails le = new LeaveDetails() { Leaveid = referenc }; Dao del = new Dao(); del.Connect(); del.AcceptRequest(le); del.Disconnect(); label16.Text = empId.ToString(); label17.Text = changedCount.ToString(); if (keeper == "DeputyGenaralManager") { if (type == "Sick leaves") { del.Connect(); del.UpdateSickE(empId, changedCount); del.Disconnect(); } else if (type == "Without Pay Leaves") { del.Connect(); del.UpdateWitoutE(empId, changedCount); del.Disconnect(); } else if (type == "Casual Leaves") { del.Connect(); del.UpdateCasualE(empId, changedCount); del.Disconnect(); } else if (type == "Pregnant Leave") { del.Connect(); del.UpdatePregnantE(empId, changedCount); del.Disconnect(); } MessageBox.Show("Accepted"); loadTable(); bunifuGradientPanel1.Hide(); } else { if (type == "Sick leaves") { del.Connect(); del.UpdateSickM(empId, changedCount); del.Disconnect(); //del. } else if (type == "Without Pay Leaves") { del.Connect(); del.UpdateWitoutM(empId, changedCount); del.Disconnect(); } else if (type == "Casual Leaves") { del.Connect(); del.UpdateCasualM(empId, changedCount); del.Disconnect(); } else if (type == "Pregnant Leave") { del.Connect(); del.UpdatePregnantM(empId, changedCount); del.Disconnect(); } MessageBox.Show("Accepted"); loadTableM(); bunifuGradientPanel1.Hide(); } }
private static async Task ApplyForLeave(IDialogContext context, Activity activity, Employee employee, string leaveCategory) { if (string.IsNullOrEmpty(employee.ManagerEmailId) && string.IsNullOrEmpty(employee.DemoManagerEmailId)) { var reply = activity.CreateReply(); reply.Text = "Please set your manager and try again."; reply.Attachments.Add(EchoBot.SetManagerCard()); await context.PostAsync(reply); return; } var managerId = await GetManagerId(employee); if (managerId == null) { var reply = activity.CreateReply(); reply.Text = "Unable to fetch your manager details. Please make sure that your manager has installed the Leave App."; await context.PostAsync(reply); } else { VacationDetails vacationDetails = null; if (activity.Name == Constants.EditLeave) // Edit request { var editRequest = JsonConvert.DeserializeObject <EditRequest>(activity.Value.ToString()); vacationDetails = editRequest.data; } else { vacationDetails = JsonConvert.DeserializeObject <VacationDetails>(activity.Value.ToString()); } LeaveDetails leaveDetails; if (!string.IsNullOrEmpty(vacationDetails.LeaveId)) { // Edit request leaveDetails = await DocumentDBRepository.GetItemAsync <LeaveDetails>(vacationDetails.LeaveId); } else { leaveDetails = new LeaveDetails(); leaveDetails.LeaveId = Guid.NewGuid().ToString(); } leaveDetails.AppliedByEmailId = employee.EmailId; leaveDetails.EmployeeComment = vacationDetails.LeaveReason; var channelData = context.Activity.GetChannelData <TeamsChannelData>(); leaveDetails.ChannelId = channelData.Channel?.Id; // Set channel Data if request is coming from a channel. if (!string.IsNullOrEmpty(leaveDetails.ChannelId)) { leaveDetails.ConversationId = activity.Conversation.Id; } leaveDetails.StartDate = new LeaveDate() { Date = DateTime.Parse(vacationDetails.FromDate), Type = (DayType)Enum.Parse(typeof(DayType), vacationDetails.FromDuration) }; leaveDetails.EndDate = new LeaveDate() { Date = DateTime.Parse(vacationDetails.ToDate), Type = (DayType)Enum.Parse(typeof(DayType), vacationDetails.ToDuration) }; leaveDetails.LeaveType = (LeaveType)Enum.Parse(typeof(LeaveType), vacationDetails.LeaveType); leaveDetails.Status = LeaveStatus.Pending; leaveDetails.ManagerEmailId = employee.ManagerEmailId;// Added for easy reporting. switch (leaveCategory) { case Constants.ApplyForPersonalLeave: leaveDetails.LeaveCategory = LeaveCategory.Personal; break; case Constants.ApplyForSickLeave: leaveDetails.LeaveCategory = LeaveCategory.Sickness; break; case Constants.ApplyForVacation: leaveDetails.LeaveCategory = LeaveCategory.Vacation; break; case Constants.ApplyForOtherLeave: default: leaveDetails.LeaveCategory = LeaveCategory.Other; break; } if (!string.IsNullOrEmpty(vacationDetails.LeaveId)) { // Edit request await DocumentDBRepository.UpdateItemAsync(leaveDetails.LeaveId, leaveDetails); } else { await DocumentDBRepository.CreateItemAsync(leaveDetails); } var attachment = EchoBot.ManagerViewCard(employee, leaveDetails); UpdateMessageInfo managerMessageIds = leaveDetails.UpdateMessageInfo; // Manger Updates. var conversationId = await SendNotification(context, managerId, null, attachment, managerMessageIds.Manager, false); if (!string.IsNullOrEmpty(conversationId)) { managerMessageIds.Manager = conversationId; } if (!string.IsNullOrEmpty(conversationId)) { ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); var employeeCardReply = activity.CreateReply(); var employeeView = EchoBot.EmployeeViewCard(employee, leaveDetails); employeeCardReply.Attachments.Add(employeeView); if (!string.IsNullOrEmpty(managerMessageIds.Employee)) { // Update existing item. await connector.Conversations.UpdateActivityAsync(employeeCardReply.Conversation.Id, managerMessageIds.Employee, employeeCardReply); } else { var reply = activity.CreateReply(); reply.Text = "Your leave request has been successfully submitted to your manager! Please review your details below:"; await context.PostAsync(reply); var msgToUpdate = await connector.Conversations.ReplyToActivityAsync(employeeCardReply); managerMessageIds.Employee = msgToUpdate.Id; } } else { var reply = activity.CreateReply(); reply.Text = "Failed to send notification to your manger. Please try again later."; await context.PostAsync(reply); } await DocumentDBRepository.UpdateItemAsync(leaveDetails.LeaveId, leaveDetails); } }
/// <summary> /// Removes the details. /// </summary> /// <param name="ld">The ld.</param> public void RemoveDetails(LeaveDetails ld) { new LeaveDetailsRepository().DeleteLeaveDetails(ld); }