public IActionResult Post([FromBody] LabReportViewModel m)
        {
            // return generic HTTP Status 500 if client payload is invalid
            if (m == null)
            {
                return(new StatusCodeResult(500));
            }

            var labReport = DbContext.LabReports.Where(q => q.Id == m.Id).FirstOrDefault();

            //handle if the patient does not exist

            if (labReport == null)
            {
                return(NotFound(new
                {
                    Error = $"Patient ID {m.Id} is not found"
                }));
            }

            //properties taken from request
            labReport.PatientId     = m.PatientId;
            labReport.Result        = m.Result;
            labReport.Status        = m.Status;
            labReport.Physician     = m.Physician;
            labReport.LabReportType = m.LabReportType;
            labReport.LabTestTime   = m.LabTestTime;

            //set on serverside
            labReport.LastModifiedDate = DateTime.Now;

            //persist to DB
            DbContext.SaveChanges();

            // return updated patient back to client

            return(new JsonResult(labReport.Adapt <LabReportViewModel>(),
                                  new JsonSerializerOptions
            {
                WriteIndented = true
            }));
        }
        public IActionResult Put([FromBody] LabReportViewModel m)
        {
            // return generic HTTP Status 500 if client payload is invalid
            if (m == null)
            {
                return(new StatusCodeResult(500));
            }

            var labReport = new LabReport();

            //properties taken from request
            labReport.PatientId       = m.PatientId;
            labReport.Result          = m.Result;
            labReport.Status          = m.Status;
            labReport.Physician       = m.Physician;
            labReport.LabReportType   = m.LabReportType;
            labReport.CreatedByUserId = m.CreatedByUserId;
            labReport.LabTestTime     = m.LabTestTime;

            //server side properties
            labReport.Id               = Guid.NewGuid();
            labReport.CreatedDate      = DateTime.Now;
            labReport.LastModifiedDate = DateTime.Now;

            //Created by admin
            labReport.CreatedByUserId = DbContext.Users.Where(u => u.UserName == "Admin")
                                        .FirstOrDefault().Id;

            //adding the patient to the database
            DbContext.LabReports.Add(labReport);

            //persist to DB
            DbContext.SaveChanges();

            // return created patient back to client

            return(new JsonResult(labReport.Adapt <LabReportViewModel>(),
                                  new JsonSerializerOptions
            {
                WriteIndented = true
            }));
        }