示例#1
0
        public static void Run([TimerTrigger("0 30 23 * * *")] TimerInfo myTimer, TraceWriter log)
        {
            _log      = log;
            _shipList = new List <ShipItem>();
            _mailBody = new StringBuilder();
            var lab021Model = new LAB021_MODEL();

            lab021Model.SaveChanges();
            shipListInit();

            if (_functionIsRunningOrNot == true)
            {
                _log.Info($"Other Instance is Running at: {DateTime.Now}");
                return;
            }
            _functionIsRunningOrNot = true;
            try
            {
                SendMail();
            }
            catch (Exception e)
            {
                _log.Info($"Error!! : {e.ToString()}");
                _functionIsRunningOrNot = false;
            }
            finally
            {
                _functionIsRunningOrNot = false;
            }
        }
示例#2
0
        public static StringBuilder MakeEmailBody()
        {
            var mailBody = new StringBuilder();

            _etaReport = new List <ETA_REPORT>();

            foreach (var item in _shipList)
            {
                var endDt   = DateTime.UtcNow.AddDays(3).ToString("yyyyMMdd");
                var startDt = DateTime.UtcNow.AddDays(-5).ToString("yyyyMMdd");
                var apiUrl  = "http://poserp.possm.com/comm/restful/getPositionRpt.ex?vslCd=" + item.shipCode + "&fromDt=" + startDt + "&toDt=" + endDt;

                WebClient webClient    = new WebClient();
                Stream    stream       = webClient.OpenRead(apiUrl);
                string    responseJSON = new StreamReader(stream).ReadToEnd();

                var rootResult = JsonConvert.DeserializeObject <dynamic>(responseJSON);
                foreach (var item2 in rootResult)
                {
                    foreach (var item3 in item2)
                    {
                        Dictionary <string, string> temp = new Dictionary <string, string>();

                        foreach (var item4 in item3)
                        {
                            temp.Add(Convert.ToString(item4.Name), Convert.ToString(item4.Value));
                        }
                        try
                        {
                            var koreacheck = ParseToString(temp["ETA PORT"]).ToLower().Contains("korea");
                            var chniacheck = ParseToString(temp["ETA PORT"]).ToLower().Contains("china");

                            if (koreacheck)
                            {
                                _etaReport.Add(new ETA_REPORT
                                {
                                    SHIP_NAME   = ParseToString(temp["VESSEL NAME"]),
                                    REPORT_TIME = ParseToDate(temp["REPORT TIME"]),
                                    ETA_PORT    = ParseToString(temp["ETA PORT"]),
                                    ETA_TIME    = ParseToDate(temp["ETA TIME"]),
                                    NATION      = ParseToString("KOREA")
                                });
                            }
                            else if (chniacheck)
                            {
                                _etaReport.Add(new ETA_REPORT
                                {
                                    SHIP_NAME   = ParseToString(temp["VESSEL NAME"]),
                                    REPORT_TIME = ParseToDate(temp["REPORT TIME"]),
                                    ETA_PORT    = ParseToString(temp["ETA PORT"]),
                                    ETA_TIME    = ParseToDate(temp["ETA TIME"]),
                                    NATION      = ParseToString("CHINA")
                                });
                            }
                        }
                        catch { }
                    }
                }
            }

            using (var lab021Model = new LAB021_MODEL())
            {
                var resulttemp = _etaReport.OrderByDescending(d => d.REPORT_TIME).ToList();

                var resulttemp2 = new List <ETA_REPORT>();
                foreach (var item in resulttemp)
                {
                    if (resulttemp2.Where(d => d.SHIP_NAME == item.SHIP_NAME).Count() == 0)
                    {
                        resulttemp2.Add(item);
                    }
                }

                var resulttemp3 = resulttemp2.OrderByDescending(d => d.NATION).ThenBy(d => d.ETA_TIME).ToList();
                lab021Model.Database.ExecuteSqlCommand("TRUNCATE TABLE [" + "ETA_REPORT" + "]");
                mailBody.AppendFormat("ETA 알리미");
                mailBody.AppendFormat("<br>");
                mailBody.AppendFormat("===============================================");
                mailBody.AppendFormat("<br>");
                foreach (var item in resulttemp3)
                {
                    mailBody.AppendFormat("선 박 이 름  : " + item.SHIP_NAME);
                    mailBody.AppendFormat("<br>");
                    mailBody.AppendFormat("보 고 시 각  : " + item.REPORT_TIME.ToString());
                    mailBody.AppendFormat("<br>");
                    mailBody.AppendFormat("도착예정장소 : " + item.ETA_PORT);
                    mailBody.AppendFormat("<br>");
                    mailBody.AppendFormat("도착예정시각 : " + item.ETA_TIME.ToString());
                    mailBody.AppendFormat("<br>");
                    mailBody.AppendFormat("국        가 : " + item.NATION);
                    mailBody.AppendFormat("<br>");
                    mailBody.AppendFormat("===============================================");
                    mailBody.AppendFormat("<br>");
                    lab021Model.ETA_REPORT.Add(item);
                    lab021Model.SaveChanges();
                }
            }
            return(mailBody);
        }
示例#3
0
        public static void MakeEmailBody()
        {
            var _lab021Model = new LAB021_MODEL();
            var shipList     = _lab021Model.ETA_REPORT.OrderByDescending(d => d.NATION).ThenBy(d => d.ETA_TIME).ToList();

            var ttlindex       = shipList.Count();
            var index          = 0;
            var indexKorea     = 0;
            var indexChina     = 0;
            var indexKoreaLast = shipList.Where(d => d.NATION.ToLower() == "korea").Count();

            foreach (var item in shipList)
            {
                index++;
                if (index == ttlindex)
                {
                    if (item.NATION.ToLower() == "korea")
                    {
                        if (indexKorea == 0)
                        {
                            _mailBody.AppendFormat("☆먼저 [한국]에 오는 선박일정을 알려줄께!! \n");
                        }
                        _mailBody.AppendFormat("-" + item.SHIP_NAME + "호가 " + item.ETA_TIME.ToString("M월dd일") + ", " + item.ETA_PORT.Split('/')[0] + "항에 도착해~(뿌듯)\n출장 갈때 늘 안전운전하는 것 잊지마!~(찡긋)");
                        indexKorea++;
                    }
                    if (item.NATION.ToLower() == "china")
                    {
                        if (indexChina == 0 && indexKorea == 0)
                        {
                            _mailBody.AppendFormat("☆[한국]에 오는 선박은 없네. [중국]에 오는 선박일정만 알려줄께!! \n\n");
                        }
                        else if (indexChina == 0)
                        {
                            _mailBody.AppendFormat("\n\n☆다음은 [중국]에 오는 선박일정이야!! \n");
                        }

                        _mailBody.AppendFormat("-" + item.SHIP_NAME + "호가 " + item.ETA_TIME.ToString("M월dd일") + ", " + item.ETA_PORT.Split('/')[0] + "항에 도착해~(뿌듯)\n출장 갈때 늘 안전운전 알지?~오늘도 홧팅!(찡긋)");
                        indexChina++;
                    }
                }
                else
                {
                    if (item.NATION.ToLower() == "korea")
                    {
                        if (indexKorea == 0)
                        {
                            _mailBody.AppendFormat("☆먼저 [한국]에 오는 선박일정을 알려줄께!! \n");
                        }

                        if (indexKoreaLast - 1 == indexKorea)
                        {
                            _mailBody.AppendFormat("-" + item.SHIP_NAME + "호가 " + item.ETA_TIME.ToString("M월dd일") + ", " + item.ETA_PORT.Split('/')[0] + "항에 들어와.\n");
                        }
                        else
                        {
                            _mailBody.AppendFormat("-" + item.SHIP_NAME + "호가 " + item.ETA_TIME.ToString("M월dd일") + ", " + item.ETA_PORT.Split('/')[0] + "항에,");
                        }
                        indexKorea++;
                    }
                    if (item.NATION.ToLower() == "china")
                    {
                        if (indexChina == 0 && indexKorea == 0)
                        {
                            _mailBody.AppendFormat("☆[한국]에 오는 선박은 없네. [중국]에 오는 선박일정만 알려줄께!! \n");
                        }
                        else if (indexChina == 0)
                        {
                            _mailBody.AppendFormat("☆다음은 [중국]에 오는 선박일정이야!! \n");
                        }
                        _mailBody.AppendFormat("-" + item.SHIP_NAME + "호가 " + item.ETA_TIME.ToString("M월dd일") + ", " + item.ETA_PORT.Split('/')[0] + "항에,");
                        indexChina++;
                    }
                }
                _mailBody.AppendFormat("\n");
            }
        }