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