Exemple #1
0
        public async Task <IActionResult> CheckerAcceptTask(ExternalRequest request)
        {
            PushLineResponseModel response = new PushLineResponseModel();
            MessageResponseModel  message  = new MessageResponseModel();
            LineMessageTemplate   template = new LineMessageTemplate();

            dt = new DataTable();
            DAC.REST_KeepEventTransaction("CheckerAcceptTask", func.JsonSerialize(request), "CheckerAcceptTask", "[487]");
            dt = DAC.CheckApplicationNo(request.AppNo);
            if (dt.Rows.Count > 0)
            {
                dtifExists = new DataTable();
                dtifExists = DAC.REST_CheckAceptTaskExisting(request.AppNo);
                try
                {
                    if (dtifExists.Rows.Count > 0)
                    {
                        if (!string.IsNullOrEmpty(dtifExists.Rows[0]["Application_Responsibility"].ToString()))
                        {
                            message     = api.SetMessage("ไม่สามารถทำรายการได้เนื่องจากมีคนกดรับงานไปแล้ว");
                            response.to = request.LineUserId;
                            response.messages.Add(message);
                            await api.CallApi(response);

                            DAC.REST_KeepEventTransaction("CheckerAcceptTask", response.to, "DealerController -> CallApi", "[496]");
                            return(Ok());
                        }
                    }
                    else
                    {
                        DAC.REST_KeepEventTransaction("CheckerAcceptTask", request.AppNo, "DealerController -> REST_CheckAceptTaskExisting is Empty", "REST_CheckAceptTaskExisting " + request.AppNo);
                    }
                    try
                    {
                        checker.AcceptTask(request.LineUserId, request.AppNo);
                        message     = api.SetMessage("บันทึกข้อมูลสำเร็จ");
                        response.to = request.LineUserId;
                        response.messages.Add(message);
                        await api.CallApi(response);

                        DAC.REST_KeepEventTransaction("CheckerAcceptTask", response.to, "DealerController -> CallApi", "[511]");
                    }
                    catch (Exception e)
                    {
                        DAC.REST_KeepEventTransaction("CheckerAcceptTask", request.AppNo, "DealerController -> AcceptTask", e.StackTrace);
                    }
                }
                catch (Exception e)
                {
                    DAC.REST_KeepEventTransaction("CheckerAcceptTask", request.AppNo, "DealerController -> REST_CheckApplicationNo", e.StackTrace);
                }
                return(Ok());
            }
            else
            {
                DAC.REST_KeepEventTransaction("CheckerAcceptTask", request.AppNo, "DealerController -> REST_CheckApplicationNo is Empty", "REST_CheckApplicationNo " + request.AppNo);
            }

            return(Ok());
        }
 public CheckerController(IOptions <StateConfigs> config)
 {
     api      = new LineApiController(ChannelName: "NextforDealer");
     DAC      = new DACModel(config);
     action   = new LineActionModel(config);
     func     = new Functional();
     template = new LineMessageTemplate();
 }
Exemple #3
0
        public async Task <IActionResult> NoticeTracking(ExternalNotice request)
        {
            PushLineResponseMultiCastModel response = new PushLineResponseMultiCastModel();
            MessageResponseModel           message  = new MessageResponseModel();
            LineMessageTemplate            template = new LineMessageTemplate();

            dt = new DataTable();

            DAC.REST_KeepEventTransaction("NoticeTracking", func.JsonSerialize(request), "NoticeTracking", "[436]");

            string msg = template.MessageNotice(request.State, request);
            string statecancel;

            message.type = "text";
            message.text = msg;

            response.messages.Add(message);

            if (request.State == "cancel" && string.IsNullOrEmpty(request.CheckerName))
            {
                // Dealer Cancel
                request.State = "dealerupdate";
            }
            else if (request.State == "cancel" && !string.IsNullOrEmpty(request.CheckerName))
            {
                // Checker Cancel
                request.State = "checkerupdate";
            }

            dt = DAC.REST_GetUserforNotice(request.ApplicationNo, request.State);
            try
            {
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        response.to.Add(dt.Rows[i]["Receiver"].ToString());
                    }
                    await api.CallApiMultiCast(response);

                    DAC.REST_KeepEventTransaction("NoticeTracking", func.JsonSerialize(response.to), "DealerController -> CallApiMultiCast", "[461]");
                }
                else
                {
                    DAC.REST_KeepEventTransaction("NoticeTracking", request.ApplicationNo, "DealerController -> REST_GetUserforNotice is Empty", "REST_UpdateStatusApp " + request.ApplicationNo + ", " + request.State);
                }
            }
            catch (Exception e)
            {
                DAC.REST_KeepEventTransaction("NoticeTracking", request.ApplicationNo, "DealerController", e.StackTrace);
            }
            return(Ok());
        }