Exemplo n.º 1
0
 public IHttpActionResult Log([FromBody] Employee req)
 {
     try
     {
         if (req != null)
         {
             var result = string.Empty;
             using (var dc = new LeaveRequestDataContext())
             {
                 var user = dc.Employees.Where(p => p.ID == req.ID && p.Password == p.Password).SingleOrDefault();
                 if (user != null)
                 {
                     result = user.Name;
                 }
                 else
                 {
                     result = "Not Found";
                 }
                 return(Ok(result));
             }
         }
         else
         {
             return(Unauthorized());
         }
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
        public ReadData ReportGrid([FromBody] ListLeaveRequest res)
        {
            using (var context = new LeaveRequestDataContext())
            {
                var query = from data in context.ListLeaveRequests
                            select new ReadDB
                {
                    Name       = data.Name,
                    Email      = data.Email,
                    StartDate  = data.StartDate,
                    EndDate    = data.EndDate,
                    DaysLeave  = data.DaysLeave,
                    LeaveType  = data.LeaveType,
                    Submission = data.Submission,
                    status     = data.status
                };

                ReadData getdata = new ReadData
                {
                    data  = query.ToList(),
                    total = query.ToList().Count
                };

                return(getdata);
            }
        }
 public IHttpActionResult ShowData([FromBody] int ID)
 {
     using (var dc = new LeaveRequestDataContext())
     {
         var JS      = new JavaScriptSerializer();
         var user    = dc.Employees.Where(d => d.ID == ID).SingleOrDefault();
         var tanggal = user.Joined_date;
         var tgl     = Convert.ToString(string.Format("{0:dd/MM/yyyy}", tanggal));
         var spv     = dc.Employees.Where(o => o.ID == user.SPV_ID)
                       .Select(a => new { a.Name })
                       .SingleOrDefault();
         //var quota = 12 - user.Balance;
         var location = (from a in dc.Employees join b in dc.Locations on a.Location_Code equals b.ID where a.ID == ID select b.LocationName).SingleOrDefault();
         if (user != null)
         {
             var result = JS.Serialize(new { JoinDate = tgl, User = user, Spv = spv, LOC = location });
             return(Ok(result));
         }
         //return Ok(Json<string>(result));
         return(Ok(""));
     }
 }
Exemplo n.º 4
0
 public ApproverController()
 {
     context = new LeaveRequestDataContext();
 }
Exemplo n.º 5
0
 public LoginController()
 {
     context = new LeaveRequestDataContext();
 }
        public async Task <IHttpActionResult> SubmitTask(AddRequest param)
        {
            try
            {
                using (var context = new LeaveRequestDataContext())
                {
                    var usr   = context.Employees.Where(o => o.ID == param.ID).SingleOrDefault();
                    var token = usr.Token;

                    var bodyCreate = "{" +
                                     "\"data\": {" +
                                     "\"form_data\": {" +
                                     "\"pvAction\" : \"" + param.Action + "\"" +
                                     "}," +
                                     "\"comment\": \"ThisComent\"" +
                                     "}" +
                                     "}";

                    JObject jsonCreate = JObject.Parse(bodyCreate);
                    var     action     = string.Empty;

                    using (var client = new HttpClient())
                    {
                        client.BaseAddress = new Uri("https://mosaic.dev.nextflow.tech/");
                        client.DefaultRequestHeaders.Accept.Clear();
                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
                        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                        var response = await client.PostAsJsonAsync("nextflow/api/tasks/" + param.TaskId + "/submit", jsonCreate);

                        var result = await response.Content.ReadAsAsync <dynamic>();
                    }
                    if (param.Action == "Approve" || param.Action == "Disapprove")
                    {
                        var leaveReq = context.ListLeaveRequests.Where(o => o.ProcessId == param.ProcessId).SingleOrDefault();
                        leaveReq.status = param.Action;
                        context.SubmitChanges();

                        if (param.Action == "Approve")
                        {
                            var employ = context.Employees.Where(o => o.Email == leaveReq.Email).SingleOrDefault();
                            employ.Balance = (int)employ.Balance + (int)param.DaysLeave;
                            context.SubmitChanges();
                        }
                    }

                    commentHistory commentHistory = new commentHistory();

                    commentHistory.ProcessId = param.ProcessId;
                    commentHistory.Name      = usr.Name;
                    commentHistory.Action    = param.Action;
                    commentHistory.Date      = DateTime.Now;
                    commentHistory.Comment   = "jajajaj";

                    context.commentHistories.InsertOnSubmit(commentHistory);
                    context.SubmitChanges();


                    return(Ok(new { success = true, message = "Leave Request " + action }));
                }
            }
            catch (Exception ex)
            {
                return(Ok(new { success = false, message = ex.Message }));
            }
        }
        public async Task <IHttpActionResult> GetTaskList(int ID)
        {
            using (var context = new LeaveRequestDataContext())
            {
                try
                {
                    var usr   = context.Employees.Where(o => o.ID == ID).FirstOrDefault();
                    var token = usr.Token;

                    List <TaskListGrids> grids = new List <TaskListGrids>();
                    using (var client = new HttpClient())
                    {
                        dynamic response;
                        dynamic parseResult;
                        string  uri = "https://mosaic.dev.nextflow.tech/nextflow/api/tasks?folder=app:task:all&page[number]=1&page[size]=10";
                        client.DefaultRequestHeaders.Accept.Clear();
                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
                        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                        response = await client.GetStringAsync(uri);

                        parseResult = JObject.Parse(response);

                        //result = JsonConvert.DeserializeObject<List<dynamic>>(parseResult[0]);

                        foreach (var item in parseResult.data)
                        {
                            TaskListGrids task  = new TaskListGrids();
                            string        email = item.created_by.Email;
                            string        pid   = item.process_id;
                            //task.Email = email;
                            task.CreatedDate    = item.created_at.ToString("dd/MM/yyyy");
                            task.DocumentHolder = item.assignee.name;
                            task.Position       = context.Employees.Where(o => o.Email == email).Any() ? context.Employees.Where(o => o.Email == email).FirstOrDefault().Staff_Level : "Spv";
                            task.ProcessId      = item.process_id;
                            task.TaskId         = item.id;
                            task.SubmitterName  = item.created_by.name;
                            task.Email          = context.ListLeaveRequests.Where(o => o.ProcessId == pid).FirstOrDefault().Email;
                            task.Category       = context.ListLeaveRequests.Where(o => o.ProcessId == pid).FirstOrDefault().LeaveType;
                            task.ID             = context.ListLeaveRequests.Where(o => o.ProcessId == pid).FirstOrDefault().ID;
                            task.Name           = context.ListLeaveRequests.Where(o => o.ProcessId == pid).FirstOrDefault().Name;
                            task.StartDate      = Convert.ToString(string.Format("{0:dd/MM/yyyy}", task.StartDate));
                            var a = context.ListLeaveRequests.Where(o => o.ProcessId == pid).FirstOrDefault().StartDate;
                            task.StartDate = Convert.ToString(string.Format("{0:dd/MM/yyyy}", a));
                            var b = context.ListLeaveRequests.Where(o => o.ProcessId == pid).FirstOrDefault().EndDate;
                            task.EndDate = Convert.ToString(string.Format("{0:dd/MM/yyyy}", b));
                            var c = context.ListLeaveRequests.Where(o => o.ProcessId == pid).FirstOrDefault().Submission;
                            task.Submission = Convert.ToString(string.Format("{0:dd/MM/yyyy}", c));
                            task.StartDate  = context.ListLeaveRequests.Where(o => o.ProcessId == pid).FirstOrDefault().StartDate.ToString();
                            task.EndDate    = context.ListLeaveRequests.Where(o => o.ProcessId == pid).FirstOrDefault().EndDate.ToString();
                            task.DaysLeave  = context.ListLeaveRequests.Where(o => o.ProcessId == pid).FirstOrDefault().DaysLeave.ToString();
                            // task.Submissiion = context.ListLeaveRequests.Where(o => o.ProcessId == pid).FirstOrDefault().Submission.ToString();
                            grids.Add(task);
                        }
                    }

                    return(Ok(new { success = true, data = grids }));
                }

                catch (Exception ex)
                {
                    return(Ok(new { success = false, data = ex.Message }));
                }
            }
        }
        public async Task <IHttpActionResult> Create([FromBody] AddRequest req)
        {
            var              flowId  = ConfigurationManager.AppSettings["FlowId"];
            commentHistory   comment = new commentHistory();
            ListLeaveRequest leave   = new ListLeaveRequest();

            using (var dc = new LeaveRequestDataContext())
            {
                var    user      = dc.Employees.Where(o => o.Email == req.Email).SingleOrDefault();
                string recordId  = string.Empty;
                string processId = string.Empty;

                var bodyCreate = "{ " +
                                 "\"data\": { " +
                                 " \"definition\": { " +
                                 " \"id\": \"" + flowId + "\"" +
                                 "}" +
                                 "}" +
                                 "}";

                JObject jsonCreate = JObject.Parse(bodyCreate);

                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("https://mosaic.dev.nextflow.tech/");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", user.Token);
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    var response = await client.PostAsJsonAsync("nextflow/api/records", jsonCreate);

                    var result = await response.Content.ReadAsAsync <dynamic>();

                    recordId = result.data.id;

                    var bodySubmit = "{ " +
                                     "\"data\": { " +
                                     " \"form_data\": { " +
                                     " \"pvInitiator\": \"" + user.Email + "\"," +
                                     " \"pvInitiatorName\": \"" + user.Name + "\"," +
                                     " \"pvAction\": \"Submit\"," +
                                     " \"pvReq\": \"" + user.Email + "\"," +
                                     " \"pvApprover\":\"[email protected]\"" +
                                     "}," +
                                     "\"comment\" : \"" + req.comment + "\"" +
                                     "}" +
                                     "}";

                    JObject jsonSubmit     = JObject.Parse(bodySubmit);
                    var     responseSubmit = await client.PostAsJsonAsync("nextflow/api/records/" + recordId + "/submit", jsonSubmit);

                    var resultSubmit = await responseSubmit.Content.ReadAsAsync <dynamic>();

                    processId = resultSubmit.data.process_id;
                }

                leave.Name       = req.Name;
                leave.Email      = req.Email;
                leave.DaysLeave  = req.DaysLeave;
                leave.ProcessId  = processId;
                leave.RecordId   = recordId;
                leave.StartDate  = req.StartDate;
                leave.EndDate    = req.EndDate;
                leave.DaysLeave  = req.DaysLeave;
                leave.Submission = DateTime.Now;
                leave.status     = req.status;
                leave.LeaveType  = req.LeaveType;


                dc.ListLeaveRequests.InsertOnSubmit(leave);


                comment.Name      = req.Name;
                comment.ProcessId = req.ProcessId;
                comment.Action    = "Submit";
                comment.Comment   = req.comment;
                dc.commentHistories.InsertOnSubmit(comment);

                dc.SubmitChanges();
            }
            return(Ok("Sukses"));
        }
 public FormLeaveController()
 {
     context = new LeaveRequestDataContext();
 }