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());
        }
Example #2
0
        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);
        }
Example #3
0
        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();
        }
Example #4
0
        /// <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));
        }
Example #6
0
        /// <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);
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        /// <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);
        }
Example #10
0
        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));
        }
Example #16
0
        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));
        }
Example #18
0
        /// <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);
        }
Example #19
0
        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");
        }
Example #20
0
        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));
        }
Example #22
0
        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);
        }
Example #23
0
        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);
        }
Example #24
0
        /// <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);
        }
Example #25
0
        /// <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);
        }
Example #26
0
        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();
        }
Example #27
0
        /// <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);
        }
Example #28
0
        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);
            }
        }
Example #30
0
 /// <summary>
 /// Removes the details.
 /// </summary>
 /// <param name="ld">The ld.</param>
 public void RemoveDetails(LeaveDetails ld)
 {
     new LeaveDetailsRepository().DeleteLeaveDetails(ld);
 }