public ActionResult Form(RptCovid19ExViewModel ViewModel)
 {
     try
     {
         model.Create(ViewModel);
         return(Json(new { success = true, covidID = ViewModel.PERSON_ID, date = DateTimeUtils.ConvertDateTimeToString(DateTime.Now, "dd/MM/yyyy", "th") }));
     }
     catch (Exception ex)
     {
         return(Json(new { success = false, message = ex.Message }));
     }
 }
        public ActionResult Form(string id)
        {
            RptCovid19ExViewModel viewModel = new RptCovid19ExViewModel();

            viewModel           = model.Find(id);
            viewModel.REPORT_DT = DateTime.Now.Date;

            var emp = model.GetProfileByID(id);

            viewModel.FULLNAME = emp != null ? emp.FULLNAME : string.Empty;

            ViewBag.ListModel = listModel;

            return(View(viewModel));
        }
Example #3
0
        public ActionResult Form(string id)
        {
            RptCovid19ExViewModel viewModel = new RptCovid19ExViewModel();

            viewModel = model.Find(id);

            var emp = model.GetProfileByID(id);

            viewModel.FULLNAME = emp != null ? emp.FULLNAME : string.Empty;

            ViewBag.ListModel = listModel;

            var updatedSituation = configuration["GlobalVariable:UpdatedSituation"];

            ViewBag.UpdatedSituation = updatedSituation;

            var symtomList = model.GetSymtoms();

            ViewBag.SymtomList = symtomList;

            return(View(viewModel));
        }
Example #4
0
        public RptCovid19ExViewModel Find(string id)
        {
            RptCovid19ExViewModel result = new RptCovid19ExViewModel();

            var emp = context.EMPLOYEE.Where(o => o.PERSON_ID == id).FirstOrDefault();

            result.PERSON_ID    = id;
            result.FULLNAME     = emp != null ? emp.FULLNAME : "-";
            result.ORGANIZATION = emp != null ? emp.ORGDESC : "-";

            int[] myArr          = new int[0];
            var   country        = context.LUT_COVID_COUNTRY;
            var   countryList    = new List <string>();
            var   countryList2   = new List <string>();
            var   displayCountry = context.LUT_COVID_COUNTRY.Where(o => o.DISPLAY_FLAG == true);
            var   query          = context.RPT_COVID19EX.Where(o => o.PERSON_ID == id && o.REPORTER == 1).OrderByDescending(o => o.CREATED_DT).FirstOrDefault();

            if (query != null)
            {
                if (query.REPORTER.HasValue)
                {
                    Array.Resize(ref myArr, myArr.Length + 1);
                    myArr[myArr.Length - 1] = query.REPORTER.Value;
                }

                if (query.RPT_COVID19EX_COUNTRY != null && query.RPT_COVID19EX_COUNTRY.Count() > 0)
                {
                    int i = 0;
                    result.COUNTRY = new int[query.RPT_COVID19EX_COUNTRY.Count()];
                    foreach (var item in query.RPT_COVID19EX_COUNTRY)
                    {
                        bool isDisplay = displayCountry.Where(o => o.ID == item.COUNTRY_ID).Count() > 0;

                        if (isDisplay)
                        {
                            result.COUNTRY[i] = item.COUNTRY_ID.Value;
                        }
                        else
                        {
                            result.COUNTRY[i] = 999;
                            result.COUNTRY_ID = item.COUNTRY_ID;
                        }

                        var c = country.Find(item.COUNTRY_ID).COUNTRY_NAMT;
                        countryList.Add(c);

                        i++;
                    }
                }

                result.ID               = query.ID;
                result.TRAVEL_REASON    = query.TRAVEL_REASON;
                result.ARRIVAL_DT       = query.ARRIVAL_DT;
                result.ARRIVAL_FLIGHT   = query.ARRIVAL_FLIGHT;
                result.DEPARTURE_DT     = query.DEPARTURE_DT;
                result.DEPARTURE_FLIGHT = query.DEPARTURE_FLIGHT;

                result.TRAVEL_REASON_TXT = context.LUT_COVID_CAUSE.Find(query.TRAVEL_REASON) != null?context.LUT_COVID_CAUSE.Find(query.TRAVEL_REASON).DESCR : string.Empty;

                result.ARRIVAL_DT_TXT   = DateTimeUtils.ConvertDateTimeToString(query.ARRIVAL_DT, "d MMM yyyy", "th");
                result.DEPARTURE_DT_TXT = DateTimeUtils.ConvertDateTimeToString(query.DEPARTURE_DT, "d MMM yyyy", "th");
                result.COUNTRY_TXT      = string.Join(",", countryList);

                result.HISTORY = context.RPT_COVID19EX.Where(o => o.PERSON_ID == id && o.REPORTER == 1).OrderBy(o => o.CREATED_DT).ToList().Select(o => new RptCovid19ExViewModel()
                {
                    REPORT_DT_TXT = DateTimeUtils.ConvertDateTimeToString(o.REPORT_DT, "d MMM yyyy", "th"),
                    HAS_FLU       = o.HAS_FLU,
                    SYMTOMS_TXT   = string.Join(",", o.RPT_COVID19EX_SYMTOMS.Join(context.LUT_COVID_SYMTOM, c => c.SYMTOMS_ID, lc => lc.ID, (c, lb) => new { lb }).Select(x => x.lb.SYMTOM).ToList())
                }).ToList();
            }

            var query2 = context.RPT_COVID19EX.Where(o => o.PERSON_ID == id && o.REPORTER == 2).OrderByDescending(o => o.CREATED_DT).FirstOrDefault();

            if (query2 != null)
            {
                if (query2.REPORTER.HasValue)
                {
                    Array.Resize(ref myArr, myArr.Length + 1);
                    myArr[myArr.Length - 1] = query2.REPORTER.Value;
                }


                if (query2.RPT_COVID19EX_COUNTRY != null && query2.RPT_COVID19EX_COUNTRY.Count() > 0)
                {
                    int i = 0;
                    result.COUNTRY2 = new int[query2.RPT_COVID19EX_COUNTRY.Count()];
                    foreach (var item in query2.RPT_COVID19EX_COUNTRY)
                    {
                        bool isDisplay = displayCountry.Where(o => o.ID == item.COUNTRY_ID).Count() > 0;

                        if (isDisplay)
                        {
                            result.COUNTRY2[i] = item.COUNTRY_ID.Value;
                        }
                        else
                        {
                            result.COUNTRY2[i] = 999;
                            result.COUNTRY_ID2 = item.COUNTRY_ID;
                        }

                        var c = country.Find(item.COUNTRY_ID).COUNTRY_NAMT;
                        countryList2.Add(c);

                        i++;
                    }
                }

                result.TRAVEL_REASON2      = query2.TRAVEL_REASON;
                result.ARRIVAL_DT2         = query2.ARRIVAL_DT;
                result.ARRIVAL_FLIGHT2     = query2.ARRIVAL_FLIGHT;
                result.DEPARTURE_DT2       = query2.DEPARTURE_DT;
                result.DEPARTURE_FLIGHT2   = query2.DEPARTURE_FLIGHT;
                result.COMPANION_NAME1     = query2.COMPANION_NAME1;
                result.COMPANION_NAME2     = query2.COMPANION_NAME2;
                result.COMPANION_NAME3     = query2.COMPANION_NAME3;
                result.COMPANION_RELATION1 = query2.COMPANION_RELATION1;
                result.COMPANION_RELATION2 = query2.COMPANION_RELATION2;
                result.COMPANION_RELATION3 = query2.COMPANION_RELATION3;

                result.TRAVEL_REASON_TXT2 = context.LUT_COVID_CAUSE.Find(query2.TRAVEL_REASON).DESCR;
                result.ARRIVAL_DT_TXT2    = DateTimeUtils.ConvertDateTimeToString(query2.ARRIVAL_DT, "d MMM yyyy", "th");
                result.DEPARTURE_DT_TXT2  = DateTimeUtils.ConvertDateTimeToString(query2.DEPARTURE_DT, "d MMM yyyy", "th");
                result.COUNTRY_TXT2       = string.Join(",", countryList2);
                result.HISTORY2           = context.RPT_COVID19EX.Where(o => o.PERSON_ID == id && o.REPORTER == 2).OrderBy(o => o.CREATED_DT).ToList().Select(o => new RptCovid19ExViewModel()
                {
                    REPORT_DT_TXT = DateTimeUtils.ConvertDateTimeToString(o.REPORT_DT, "d MMM yyyy", "th"),
                    HAS_FLU       = o.HAS_FLU,
                    SYMTOMS_TXT   = string.Join(",", o.RPT_COVID19EX_SYMTOMS.Join(context.LUT_COVID_SYMTOM, c => c.SYMTOMS_ID, lc => lc.ID, (c, lb) => new { lb }).Select(x => x.lb.SYMTOM).ToList())
                }).ToList();
            }

            result.REPORTERS = new int[myArr.Length];
            result.REPORTERS = myArr;

            return(result);
        }
Example #5
0
        public void Create(RptCovid19ExViewModel ViewModel)
        {
            using (var dbContextTransaction = context.Database.BeginTransaction())
            {
                try
                {
                    if (ViewModel.REPORTERS != null && ViewModel.REPORTERS.Count() > 0)
                    {
                        foreach (var item in ViewModel.REPORTERS)
                        {
                            //create new row
                            var newRow = new RPT_COVID19EX();
                            newRow.PERSON_ID           = ViewModel.PERSON_ID;
                            newRow.REPORTER            = item;
                            newRow.TRAVEL_REASON       = item == 1 ? ViewModel.TRAVEL_REASON : ViewModel.TRAVEL_REASON2;
                            newRow.ARRIVAL_DT          = item == 1 ? ViewModel.ARRIVAL_DT : ViewModel.ARRIVAL_DT2;
                            newRow.ARRIVAL_FLIGHT      = item == 1 ? ViewModel.ARRIVAL_FLIGHT : ViewModel.ARRIVAL_FLIGHT2;
                            newRow.DEPARTURE_DT        = item == 1 ? ViewModel.DEPARTURE_DT : ViewModel.DEPARTURE_DT2;
                            newRow.DEPARTURE_FLIGHT    = item == 1 ? ViewModel.DEPARTURE_FLIGHT : ViewModel.DEPARTURE_FLIGHT2;
                            newRow.HAS_FLU             = ViewModel.HAS_FLU == "1" ? "มีไข้" : "ไม่มีไข้";
                            newRow.HAS_FLU_OTHER       = ViewModel.HAS_FLU_OTHER == "1" ? "มีไข้" : "ไม่มีไข้";
                            newRow.TEMPERATURE         = ViewModel.TEMPERATURE;
                            newRow.TEMPERATURE_OTHER   = ViewModel.TEMPERATURE_OTHER;
                            newRow.REPORT_DT           = ViewModel.REPORT_DT;
                            newRow.TRAVEL_TOGETHER     = ViewModel.TRAVEL_TOGETHER;
                            newRow.CREATED_DT          = DateTime.Now;
                            newRow.TRAVEL_FLAG         = true;
                            newRow.COMPANION_NAME1     = ViewModel.COMPANION_NAME1;
                            newRow.COMPANION_NAME2     = ViewModel.COMPANION_NAME2;
                            newRow.COMPANION_NAME3     = ViewModel.COMPANION_NAME3;
                            newRow.COMPANION_RELATION1 = ViewModel.COMPANION_RELATION1;
                            newRow.COMPANION_RELATION2 = ViewModel.COMPANION_RELATION2;
                            newRow.COMPANION_RELATION3 = ViewModel.COMPANION_RELATION3;
                            context.RPT_COVID19EX.Add(newRow);
                            context.SaveChanges();

                            if (item == 1)
                            {
                                if (ViewModel.COUNTRY != null && ViewModel.COUNTRY.Count() > 0)
                                {
                                    foreach (var ct in ViewModel.COUNTRY)
                                    {
                                        var c = new RPT_COVID19EX_COUNTRY();
                                        c.REPORTER_ID    = newRow.ID;
                                        c.PERSON_TYPE_ID = 1;
                                        c.COUNTRY_ID     = ct != 999 ? ct : ViewModel.COUNTRY_ID;
                                        context.RPT_COVID19EX_COUNTRY.Add(c);
                                        context.SaveChanges();
                                    }
                                }

                                if (ViewModel.SYMTOMS != null && ViewModel.SYMTOMS.Count() > 0)
                                {
                                    foreach (var st in ViewModel.SYMTOMS)
                                    {
                                        var c = new RPT_COVID19EX_SYMTOMS();
                                        c.REPORTER_ID    = newRow.ID;
                                        c.PERSON_TYPE_ID = 1;
                                        c.SYMTOMS_ID     = st;
                                        context.RPT_COVID19EX_SYMTOMS.Add(c);
                                        context.SaveChanges();
                                    }
                                }
                                if (ViewModel.SYMTOMS_OTHER != null && ViewModel.SYMTOMS_OTHER.Count() > 0)
                                {
                                    foreach (var sto in ViewModel.SYMTOMS_OTHER)
                                    {
                                        var c = new RPT_COVID19EX_SYMTOMS_OTHER();
                                        c.REPORTER_ID    = newRow.ID;
                                        c.PERSON_TYPE_ID = 1;
                                        c.SYMTOMS_ID     = sto;
                                        context.RPT_COVID19EX_SYMTOMS_OTHER.Add(c);
                                        context.SaveChanges();
                                    }
                                }
                            }

                            if (item == 2)
                            {
                                if (ViewModel.COUNTRY2 != null && ViewModel.COUNTRY2.Count() > 0)
                                {
                                    foreach (var ct2 in ViewModel.COUNTRY2)
                                    {
                                        var c = new RPT_COVID19EX_COUNTRY();
                                        c.REPORTER_ID    = newRow.ID;
                                        c.PERSON_TYPE_ID = 2;
                                        c.COUNTRY_ID     = ct2 != 999 ? ct2 : ViewModel.COUNTRY_ID2;
                                        context.RPT_COVID19EX_COUNTRY.Add(c);
                                        context.SaveChanges();
                                    }
                                }

                                if (ViewModel.SYMTOMS2 != null && ViewModel.SYMTOMS2.Count() > 0)
                                {
                                    foreach (var st2 in ViewModel.SYMTOMS2)
                                    {
                                        var c = new RPT_COVID19EX_SYMTOMS();
                                        c.REPORTER_ID    = newRow.ID;
                                        c.PERSON_TYPE_ID = 2;
                                        c.SYMTOMS_ID     = st2;
                                        context.RPT_COVID19EX_SYMTOMS.Add(c);
                                        context.SaveChanges();
                                    }
                                }
                            }
                        }
                    }

                    dbContextTransaction.Commit();
                }
                catch (Exception ex)
                {
                    dbContextTransaction.Rollback();
                    throw ex;
                }
            }
        }
Example #6
0
        public void CreateDaily(RptCovid19ExViewModel ViewModel)
        {
            using (var dbContextTransaction = context.Database.BeginTransaction())
            {
                try
                {
                    var query = context.RPT_COVID19EX
                                .Include(o => o.RPT_COVID19EX_COUNTRY)
                                .Where(o => o.PERSON_ID == ViewModel.PERSON_ID && o.REPORTER == 1)
                                .OrderByDescending(o => o.CREATED_DT)
                                .FirstOrDefault();

                    if (query != null && query.TRAVEL_FLAG.HasValue)
                    {
                        //create new row
                        var newRow = new RPT_COVID19EX();
                        newRow.PERSON_ID            = query.PERSON_ID;
                        newRow.REPORTER             = query.REPORTER;
                        newRow.HAS_FLU              = ViewModel.HAS_FLU == "1" ? "มีไข้" : "ไม่มีไข้";
                        newRow.CLOSE_PATIENT_FLAG   = ViewModel.CLOSE_PATIENT_FLAG;
                        newRow.CLOSE_PATIENT_DETAIL = ViewModel.CLOSE_PATIENT_DETAIL;
                        newRow.TEMPERATURE          = ViewModel.TEMPERATURE;
                        newRow.CREATED_DT           = DateTime.Now;
                        newRow.TRAVEL_FLAG          = query.TRAVEL_FLAG;

                        if (query.TRAVEL_FLAG.Value)
                        {
                            newRow.ARRIVAL_DT          = query.ARRIVAL_DT;
                            newRow.ARRIVAL_FLIGHT      = query.ARRIVAL_FLIGHT;
                            newRow.DEPARTURE_DT        = query.DEPARTURE_DT;
                            newRow.DEPARTURE_FLIGHT    = query.DEPARTURE_FLIGHT;
                            newRow.HAS_FLU_OTHER       = query.HAS_FLU_OTHER;
                            newRow.TEMPERATURE_OTHER   = query.TEMPERATURE_OTHER;
                            newRow.TRAVEL_TOGETHER     = query.TRAVEL_TOGETHER;
                            newRow.COMPANION_NAME1     = query.COMPANION_NAME1;
                            newRow.COMPANION_NAME2     = query.COMPANION_NAME2;
                            newRow.COMPANION_NAME3     = query.COMPANION_NAME3;
                            newRow.COMPANION_RELATION1 = query.COMPANION_RELATION1;
                            newRow.COMPANION_RELATION2 = query.COMPANION_RELATION2;
                            newRow.COMPANION_RELATION3 = query.COMPANION_RELATION3;
                        }

                        context.RPT_COVID19EX.Add(newRow);
                        context.SaveChanges();

                        if (ViewModel.SYMTOMS != null && ViewModel.SYMTOMS.Count() > 0)
                        {
                            foreach (var st in ViewModel.SYMTOMS)
                            {
                                var c = new RPT_COVID19EX_SYMTOMS();
                                c.REPORTER_ID    = newRow.ID;
                                c.PERSON_TYPE_ID = 1;
                                c.SYMTOMS_ID     = st;
                                c.SYMTOMS_OTHER  = st == 98 ? (!string.IsNullOrEmpty(ViewModel.SYMTOMS_OTHER_TEXT) ? ViewModel.SYMTOMS_OTHER_TEXT : null) : null;
                                context.RPT_COVID19EX_SYMTOMS.Add(c);
                                context.SaveChanges();
                            }
                        }

                        if (query.RPT_COVID19EX_COUNTRY != null && query.RPT_COVID19EX_COUNTRY.Count() > 0)
                        {
                            foreach (var ct in query.RPT_COVID19EX_COUNTRY)
                            {
                                var c = new RPT_COVID19EX_COUNTRY();
                                c.REPORTER_ID    = newRow.ID;
                                c.PERSON_TYPE_ID = 1;
                                c.COUNTRY_ID     = ct.COUNTRY_ID;
                                context.RPT_COVID19EX_COUNTRY.Add(c);
                                context.SaveChanges();
                            }
                        }
                    }
                    else
                    {
                        // สำหรับคนที่ไม่ได้ไปต่างประเทศ add by Jay 20Mar2020
                        var newRow = new RPT_COVID19EX();
                        newRow.PERSON_ID            = ViewModel.PERSON_ID;
                        newRow.REPORTER             = 1;
                        newRow.HAS_FLU              = ViewModel.HAS_FLU == "1" ? "มีไข้" : "ไม่มีไข้";
                        newRow.CLOSE_PATIENT_FLAG   = ViewModel.CLOSE_PATIENT_FLAG;
                        newRow.CLOSE_PATIENT_DETAIL = ViewModel.CLOSE_PATIENT_DETAIL;
                        newRow.TEMPERATURE          = ViewModel.TEMPERATURE;
                        newRow.TRAVEL_FLAG          = false;
                        newRow.CREATED_DT           = DateTime.Now;

                        context.RPT_COVID19EX.Add(newRow);
                        context.SaveChanges();

                        if (ViewModel.SYMTOMS != null && ViewModel.SYMTOMS.Count() > 0)
                        {
                            foreach (var st in ViewModel.SYMTOMS)
                            {
                                var c = new RPT_COVID19EX_SYMTOMS();
                                c.REPORTER_ID    = newRow.ID;
                                c.PERSON_TYPE_ID = 1;
                                c.SYMTOMS_ID     = st;
                                c.SYMTOMS_OTHER  = st == 98 ? (!string.IsNullOrEmpty(ViewModel.SYMTOMS_OTHER_TEXT) ? ViewModel.SYMTOMS_OTHER_TEXT : null) : null;
                                context.RPT_COVID19EX_SYMTOMS.Add(c);
                                context.SaveChanges();
                            }
                        }
                    }

                    dbContextTransaction.Commit();
                }
                catch (Exception ex)
                {
                    dbContextTransaction.Rollback();
                    throw ex;
                }
            }
        }