public async Task <IActionResult> Put(int id, [FromBody] data_file entity)
        {
            try
            {
                if (id < 0 || !isValid(entity))
                {
                    return(new BadRequestResult());
                }
                var loggedInMember = LoggedInUser();
                if (loggedInMember == null)
                {
                    return(new BadRequestObjectResult("Invalid input parameters"));
                }

                entity.last_updated    = DateTime.Now;
                entity.last_updated_by = loggedInMember.member_id;
                //sm(agent.Messages);
                return(Ok(await agent.Update <data_file>(id, entity)));
            }
            catch (Exception ex)
            {
                //sm(agent.Messages);
                return(await HandleExceptionAsync(ex));
            }
        }
        public async Task <IActionResult> ApproveNWISDataFile(int dataFileId)
        {
            try
            {
                data_file aDataFile      = null;
                approval  anEntity       = null;
                Int32     loggedInUserId = 0;

                if (dataFileId <= 0)
                {
                    return(new BadRequestObjectResult("Invalid input parameters"));
                }
                anEntity = new approval();

                //get logged in user
                var loggedInMember = LoggedInUser();
                if (loggedInMember == null)
                {
                    return(new BadRequestObjectResult("Invalid input parameters"));
                }
                loggedInUserId = loggedInMember.member_id;

                aDataFile = agent.Select <data_file>().Include(d => d.instrument).FirstOrDefault(d => d.data_file_id == dataFileId);
                if (aDataFile == null)
                {
                    return(new BadRequestObjectResult("invalid data file id"));
                }

                //get event coordinator to set as approver for NWIS datafile

                members eventCoor = agent.Select <members>().Include(m => m.events).FirstOrDefault(m => m.events.Any(e => e.event_id == aDataFile.instrument.event_id));
                if (eventCoor == null)
                {
                    return(new BadRequestObjectResult("invalid input parameters"));
                }

                //set time and user of approval
                anEntity.approval_date = DateTime.UtcNow;
                anEntity.member_id     = eventCoor.member_id;
                anEntity = await agent.Add <approval>(anEntity);

                //set datafile approvalID
                aDataFile.approval_id     = anEntity.approval_id;
                aDataFile.last_updated    = DateTime.Now;
                aDataFile.last_updated_by = loggedInUserId;

                await agent.Update <data_file>(aDataFile.data_file_id, aDataFile);

                //sm(agent.Messages);
                return(Ok(anEntity));
            }
            catch (Exception ex)
            {
                //sm(agent.Messages);
                return(await HandleExceptionAsync(ex));
            }
        }
        public async Task <IActionResult> ApproveDataFile(int dataFileId)
        {
            try
            {
                data_file aDataFile      = null;
                approval  anEntity       = null;
                Int32     loggedInUserId = 0;

                if (dataFileId <= 0)
                {
                    return(new BadRequestObjectResult("Invalid input parameters"));
                }
                anEntity = new approval();

                //get logged in user
                var loggedInMember = LoggedInUser();
                if (loggedInMember == null)
                {
                    return(new BadRequestObjectResult("Invalid input parameters"));
                }
                loggedInUserId = loggedInMember.member_id;

                aDataFile = await agent.Find <data_file>(dataFileId);

                if (aDataFile == null)
                {
                    return(new BadRequestObjectResult("invalid data file id"));
                }

                //set time and user of approval
                anEntity.approval_date = DateTime.UtcNow;
                anEntity.member_id     = loggedInUserId;
                anEntity = await agent.Add <approval>(anEntity);

                //set datafile approvalID
                aDataFile.approval_id = anEntity.approval_id;
                // last_update parts
                aDataFile.last_updated    = DateTime.Now;
                aDataFile.last_updated_by = loggedInUserId;
                await agent.Update <data_file>(aDataFile.data_file_id, aDataFile);

                //sm(agent.Messages);
                return(Ok(anEntity));
            }
            catch (Exception ex)
            {
                //sm(agent.Messages);
                return(await HandleExceptionAsync(ex));
            }
        }
 //--------------------------------------------------------------------------------------------------------------------------------------------------------------
 private void Open_File(object sender, MouseButtonEventArgs e)
 {
     try
     {
         data_file item = (data_file)thong_tin_file.SelectedItem;
         if (item != null)
         {
             uiapp.OpenAndActivateDocument(item.path);
         }
     }
     catch (Exception)
     {
     }
 }
        public async Task <IActionResult> UnApproveDataFile(int dataFileId)
        {
            try
            {
                data_file aDataFile      = null;
                Int32     loggedInUserId = 0;

                //Return BadRequest if missing required fields
                if (dataFileId <= 0)
                {
                    return(new BadRequestObjectResult("Invalid input parameters"));
                }

                var loggedInMember = LoggedInUser();
                loggedInUserId = loggedInMember.member_id;

                //fetch the object to be updated (assuming that it exists)
                aDataFile = await agent.Find <data_file>(dataFileId);

                if (aDataFile == null)
                {
                    return(new BadRequestObjectResult("invalid data file id"));
                }

                Int32 apprId = aDataFile.approval_id.HasValue ? aDataFile.approval_id.Value : 0;
                //remove id from hwm
                aDataFile.approval_id     = null;
                aDataFile.last_updated    = DateTime.Now;
                aDataFile.last_updated_by = loggedInUserId;
                await agent.Update <data_file>(aDataFile.data_file_id, aDataFile);

                approval anApproval = await agent.Find <approval>(apprId);

                //remove approval
                await agent.Delete <approval>(anApproval);

                //sm(agent.Messages);

                return(Ok());
            }
            catch (Exception ex)
            {
                //sm(agent.Messages);
                return(await HandleExceptionAsync(ex));
            }
        }
 //--------------------------------------------------------------------------------------------------------------------------------------------------------------
 private void Xoa_File(object sender, RoutedEventArgs e)
 {
     try
     {
         var result_message = MessageBox.Show("Bạn có chắc chắn muốn xóa!", "QUESTION", MessageBoxButton.YesNo, MessageBoxImage.Question);
         if (result_message == MessageBoxResult.Yes)
         {
             for (int i = 0; i < thong_tin_file.SelectedItems.Count; i++)
             {
                 data_file item = (data_file)thong_tin_file.SelectedItems[i];
                 File.Delete(item.path);
             }
             F_Folder.get_file_data(doc, my_data_file, folder, thong_tin_file);
         }
     }
     catch (Exception)
     {
     }
 }
        public async Task Post()
        {
            //Arrange
            var entity = new data_file()
            {
                good_start    = new DateTime(2017, 01, 14),
                good_end      = new DateTime(2017, 01, 25),
                processor_id  = 2,
                instrument_id = 155,
                collect_date  = new DateTime(2017, 08, 16)
            };


            //Act
            var response = await controller.Post(entity);

            // Assert
            var okResult = Assert.IsType <OkObjectResult>(response);
            var result   = Assert.IsType <data_file>(okResult.Value);


            Assert.Equal(new DateTime(2017, 01, 14), result.good_start);
        }