コード例 #1
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;
                }
            }
        }
コード例 #2
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;
                }
            }
        }