Beispiel #1
0
        //[AllowAnonymous]
        public async Task <ActionResult <LeaveItemResponse> > ProViewLeaves([FromBody] ViewLeavesRequest request)
        {
            var pro_id = Int32.Parse(User.Identity.Name);

            if (await UserAccessor.CheckRole(pro_id) == Constants.Role.Student)
            {
                return(BadRequest(new { message = "ProViewLeaves is not for students." }));
            }

            var start = (request.pagenum - 1) * request.pagesize;
            var end   = request.pagenum * request.pagesize;
            LeaveItemResponse leaves = new LeaveItemResponse();

            leaves.pagenum   = request.pagenum;
            leaves.leavelist = new System.Collections.Generic.List <LeaveResponse>();

            var leave_list = await LeaveAccessor.ProViewLeaves(pro_id);

            if (leave_list != null)
            {
                for (int i = start; i < end && i < leave_list.total; i++)
                {
                    LeaveResponse lr = _mapper.Map <LeaveResponse>(leave_list.leaveItem[i]);
                    lr.student_name = await UserAccessor.GetUserName(lr.student_id);

                    lr.work_name = await WorkAccessor.GetWorkName(lr.work_id);

                    leaves.leavelist.Add(lr);
                }
                leaves.total = leave_list.total;
                return(Ok(leaves));
            }
            return(Ok(-1)); // Never arrive there
        }
Beispiel #2
0
        public LeaveResponse ApplyLeave(Leave newLeave)
        {
            int reqId         = _leaveDA.ApplyLeave(newLeave);
            var leaveResponse = new LeaveResponse(reqId, LeaveStatus.Applied);

            return(leaveResponse);
        }
        public ActionResult <LeaveResponse> ApplyLeave([FromBody] Leave NewLeave)
        {
            LeaveResponse newResp = null;

            try
            {
                newResp = _leave.ApplyLeave(NewLeave);
            }
            catch (Exception lex)
            {
                return(BadRequest(lex.ToString()));
            }
            return(Ok(newResp));
        }
        private void GameServerPluginOnClientDisconnected(object sender, ServerConnectionBase connection)
        {
            var peersList = UsersInScenes.FirstOrDefault(x => x.Value.Contains(connection.Peer));

            if (!string.IsNullOrEmpty(peersList.Key))
            {
                peersList.Value?.Remove(connection.Peer);

                var leaveResponse = new LeaveResponse {
                    ConnectionId = connection.ConnectionId, IsOk = true
                };
                foreach (var peer in peersList.Value)
                {
                    var cmd = BinaryProtocolHelper <LeaveResponse> .GetProtocol(leaveResponse);

                    peer.Connections.First().Value?.SendData(cmd);
                }
            }
        }
Beispiel #5
0
        //[AllowAnonymous]
        public async Task <ActionResult <LeaveResponse> > ProManageLeave(ManageLeaveRequest request)
        {
            var pro_id = Int32.Parse(User.Identity.Name);

            if (await UserAccessor.CheckRole(pro_id) == Constants.Role.Student)
            {
                return(BadRequest(new { message = "Students cannot manage leave application." }));
            }

            LeaveEntity le = await LeaveAccessor.Read(request.leave_id);

            if (le == null)
            {
                return(BadRequest(new { message = "Leave id not found." }));
            }
            if (le.status != Constants.ApplyStatus.Applying)
            {
                return(BadRequest(new { message = "The application have been managed." }));
            }
            var success_change = await LeaveAccessor.SetLeaveStatus(request.leave_id, request.status);

            if (success_change > 0)
            {
                le.status = request.status; //减少查询
                LeaveResponse lr = _mapper.Map <LeaveResponse>(le);
                // 未检查id是否存在
                lr.student_name = await UserAccessor.GetUserName(le.student_id);

                //lr.teacher_name = await UserAccessor.GetUserName(le.teacher_id);
                lr.work_name = await WorkAccessor.GetWorkName(le.work_id);

                if (request.status == Constants.ApplyStatus.Accepted)
                {
                    // 录用,更新takes
                    await TakesAccessor.UpdateAbsent(le.student_id, le.work_id, le.leave_duration);
                }

                return(lr);
            }

            return(BadRequest(new { message = "Update failed" }));
        }
Beispiel #6
0
        public async Task <ActionResult <LeaveItemResponse> > ViewLeave([FromBody] ViewLeavesRequest request)
        {
            LeaveItemResponse LeaveItem = new LeaveItemResponse();

            LeaveItem.total     = 0;
            LeaveItem.pagenum   = request.pagenum;
            LeaveItem.leavelist = new List <LeaveResponse>();

            var start = (request.pagenum - 1) * request.pagesize;
            var end   = request.pagenum * request.pagesize - 1;

            //取得存在cookie的当前账户id
            var user_id = Int32.Parse(User.Identity.Name);

            if (await UserAccessor.CheckRole(user_id) == Constants.Role.Provider)
            {
                return(BadRequest(new { message = "Providers cannot manage leave application." }));
            }
            var temp = await LeaveAccessor.ViewLeave(user_id);

            if (temp != null)
            {
                for (int i = 0; i < temp.total; i++)
                {
                    LeaveItem.total++;
                    if (i >= start && i <= end)
                    {
                        var list = await LeaveAccessor.Find(temp.leaveItem[i].leave_id);

                        LeaveResponse a = _mapper.Map <LeaveResponse>(list);

                        LeaveItem.leavelist.Add(a);
                    }
                }

                return(Ok(LeaveItem));
            }
            return(Ok(-1));
        }
        public static bool SendLeaveRequestEmail(LeaveResponse leaveResponse, SmtpRequest smtpRequest, string admin)
        {
            var startDate        = leaveResponse.StartDate.Date.ToString("%d-%M-yyyy");
            var endDate          = leaveResponse.EndDate.Date.ToString("%d-%M-yyyy");
            var firstAndLastName = (leaveResponse.FirstName).Trim() + " " + (leaveResponse.LastName).Trim();

            try
            {
                var subject = "Leave Request by " + firstAndLastName + " - " + startDate;
                //var subject = "Leave Request by " + leaveResponse.Email + " - " + startDate;
                StringBuilder emailMessage = new StringBuilder();
                emailMessage.Append("<p>Hello,</p>");
                emailMessage.Append("<p>" + leaveResponse.Email + " has requested leave. Details are given below.</p>");
                emailMessage.Append("<table border=1 style='width: 60%;margin-left: 10%;'>");
                emailMessage.Append("<tr><th style='width: 30%;text-align: left;font-family: Arial; font-size: 10pt;'><p style='margin-left: 5%;'>" + "Start Date" + "</p></th>");
                emailMessage.Append("<td style='text-align: left;'><p style='margin-left: 5%;'>" + startDate + "</p></td> </tr>");
                emailMessage.Append("<tr><th style='width: 30%;text-align: left;font-family: Arial; font-size: 10pt;'><p style='margin-left: 5%;'>" + "End Date" + "</p></th>");
                emailMessage.Append("<td style='text-align: left;'><p style='margin-left: 5%;'>" + endDate + "</p></td></tr>");
                emailMessage.Append("<tr><th style='width: 30%;text-align: left;font-family: Arial; font-size: 10pt;'><p style='margin-left: 5%;'>" + "Leave Type " + "</p></th>");
                emailMessage.Append("<td style='text-align: left;'><p style='margin-left: 5%;'>" + leaveResponse.LeaveType + "</p></td></tr>");
                emailMessage.Append("<tr><th style='width: 30%;text-align: left;font-family: Arial; font-size: 10pt;'><p style='margin-left: 5%;'>" + "Duration" + "</p></th>");
                emailMessage.Append("<td style='text-align: left;'><p style='margin-left: 5%;'>" + leaveResponse.Duration + "</p></td></tr>");
                emailMessage.Append("<tr><th style='width: 30%;text-align: left;font-family: Arial; font-size: 10pt;'><p style='margin-left: 5%;'>" + "Reason" + "</p></th>");
                emailMessage.Append("<td style='text-align: left;'><p style='margin-left: 5%; margin-right: 5%;'>" + leaveResponse.Reason + "</p></td></tr>");
                emailMessage.Append("</table>");
                emailMessage.Append("<p>Kindly consider for your kind approval. </p>");
                emailMessage.Append("<p>Thanks </p>");
                emailMessage.Append("<p>" + firstAndLastName + "</p>");
                SendEmail(admin, emailMessage, subject, true, smtpRequest);
                return(true);
            }
            catch (Exception ex)
            {
                var msg = ex.Message;
                // Trace.WriteLine(String.Format("Failure to send email to {0}.", emailAddress));
                return(false);
            }
        }