Пример #1
0
 public static void UpdateEventNote(string sessionKey, long eventID, string note, TraceLog t)
 {
     using (var EventClientWS = new SelcommWSsvc.SelcommWSAll.EventClient(GetSelcommWsEndpointName()))
     {
         EventClientWS.EventNoteUpdate(sessionKey, eventID, note);
         t.CreateLog(note);
     }
 }
Пример #2
0
 /// <summary>
 /// This method retrieves events based on the provided provisioning action type.
 /// </summary>
 protected EventDispatcherList GetEventsByActionCode(String actionCode)
 {
     using (var eventClient = new SelcommWSsvc.SelcommWSAll.EventClient(Singtel.Helpers.Helpers.GetSelcommWsEndpointName()))
     {
         var eventDispatcherList = new EventDispatcherList();
         if (!string.IsNullOrWhiteSpace(actionCode))
         {
             //load the event type/code from evnt_dispatcher table based on the service id
             eventDispatcherList = eventClient.EventDispatcherList(ClientSessionWS.SessionKey, actionCode, true);
         }
         return(eventDispatcherList);
     }
 }
Пример #3
0
        //TODO: uncomment below methods

        public static void updateEventStatus(string sessionKey, long eventRef, string schedStatCode, TraceLog t, string eventNote = null)
        {
            Event NewEvent = new Event();

            NewEvent = new Event {
                Id = eventRef
            };
            EventSchedule Schedule = new EventSchedule
            {
                EventScheduleStatus = new EventScheduleStatus {
                    Code = schedStatCode
                },
                Event   = NewEvent,
                DueDate = DateTime.Now
            };

            using (var EventClientWS = new SelcommWSsvc.SelcommWSAll.EventClient(Helpers.GetSelcommWsEndpointName()))
            {
                EventClientWS.EventScheduleUpdate(sessionKey, Schedule, eventNote);
                string reason = string.IsNullOrWhiteSpace(eventNote) ? null : $"Reason : {eventNote}";
                t.CreateLog($"Event {eventRef} is updated to the status {schedStatCode}. {reason}");
            }
        }
Пример #4
0
        /// <summary>
        /// <para>Checks the event and if available, Processes the service actions.</para>
        /// </summary>
        protected virtual void ProcessEventDispatchers(IEnumerable <EventDispatcher> eventDispatcherList, TraceLog t)
        {
            using (var eventClient = new SelcommWSsvc.SelcommWSAll.EventClient(Singtel.Helpers.Helpers.GetSelcommWsEndpointName()))
            {
                foreach (var eventDispatcher in eventDispatcherList)
                {
                    var events = eventClient.EventDisplayList(this.ClientSessionWS.SessionKey, new EventType {
                        EventCode = eventDispatcher.EventCode, EventTypeMember = eventDispatcher.EventType
                    }, eventDispatcher.ScheduleStatus);

                    t.CreateLog($"Number of events to be processed- {events.Count}");
                    int totalEvents = events?.Count ?? 0;
                    if (events?.Any() == true)
                    {
                        foreach (var evnt in events)
                        {
                            try
                            {
                                this.ProcessEvent(evnt, t);
                                //TODO - below should be in generic helper
                                // WcfService2.Helpers.Helpers.updateEventStatus(this.SessionKey, evnt.EventId, "C", t, null);
                            }
                            catch (Exception ex)
                            {
                                //record the error and continue with next event
                                t.CreateLog("----------------------------------------!! ERROR OCCURRED !!----------------------------------------");
                                string note = $"ERROR OCCURED. The provisioning action {TargetActionCode} stopped due to the reason: {ex.Message}";
                                t.CreateLog(note);
                                // SendEmailToWebSupport(note, t);
                                //TODO - below should be in generic helper
                                Singtel.Helpers.Helpers.updateEventStatus(this.SessionKey, evnt.EventId, "F", t, null);
                            }
                        }
                    }
                }
            }
        }
Пример #5
0
        /// <summary>
        /// process an event for sendSms service.
        /// </summary>
        /// <param name="targetEvent"></param>
        /// <param name="t"></param>
        public override void ProcessEvent(EventDisplay targetEvent, TraceLog t)
        {
            t.CreateLog(null);
            t.CreateLog($"********************STARTED { TargetActionCode}********************************");
            t.CreateLog("Start Of The Process For Event " + targetEvent.EventId + " And Service Number " + targetEvent.ServiceNumber + " - !!!! ServiceRequest() !!!!");

            using (var EventClientWS = new SelcommWSsvc.SelcommWSAll.EventClient(Singtel.Helpers.Helpers.GetSelcommWsEndpointName()))
                using (var ContactClientWS = new SelcommWSsvc.SelcommWSAll.ContactClient(Singtel.Helpers.Helpers.GetSelcommWsEndpointName()))
                    using (var ServiceClientWS = new SelcommWSsvc.SelcommWSAll.ServiceClient(Singtel.Helpers.Helpers.GetSelcommWsEndpointName()))
                    {
                        // Updating EventSchedule Status to R - START
                        t.CreateLog("Updating Event Status to R- START - EventClientWS.EventScheduleUpdate()");

                        Singtel.Helpers.Helpers.updateEventStatus(SessionKey, targetEvent.EventId, "R", t, null);
                        t.CreateLog("Updating Completed");
                        // Updating EventSchedule Status - END

                        // Loading ServiceDisplay details of a current processing event
                        t.CreateLog("Loading ServiceDisplay Details - ServiceClientWS.ServiceDisplay() For service id: " + targetEvent.ServiceId);
                        var aService = ServiceClientWS.ServiceDisplay(this.ClientSessionWS.SessionKey, new SelcommWSsvc.SelcommWSAll.ServiceDisplay {
                            Id = targetEvent.ServiceId
                        });
                        if (aService != null)
                        {
                            t.CreateLog("ServiceDisplay Details loaded Successfully");
                        }
                        else
                        {
                            t.CreateLog("ServiceDisplay Details not loaded");
                        }

                        var ContactObj       = ContactClientWS.Contact(ClientSessionWS.SessionKey, targetEvent.ContactCode, true, false, false, false);
                        var businessUnitCode = ContactObj.CurrentBusinessUnit.Code;

                        var eventNote = EventClientWS.EventNoteList(ClientSessionWS.SessionKey, targetEvent.EventId, false).FirstOrDefault();

                        try
                        {
                            SendSmsService newSMS = new SendSmsService();
                            sendSms        newMSG = new sendSms();

                            List <string> address  = new List <string>();
                            string        aAddress = aService.ServiceNumber; //"tel:6596165414";
                            var           FirstTwoDigitOfServiceNumber = Helpers.SmscHelper.GetFirstTwoDigitOfServiceNumber(aAddress);
                            if (FirstTwoDigitOfServiceNumber != 65)
                            {
                                aAddress = "tel:65".Trim() + aAddress;
                            }
                            address.Add(aAddress);
                            newMSG.addresses = address.ToArray();
                            newMSG.message   = eventNote?.Text.ToString().Trim();
                            if (newMSG.message == null)
                            {
                                throw new Exception("Message should not be null. Event notes is null.");
                            }
                            newMSG.senderName = GetSystemConfigValue("SG_SMSC_FROM", "SG_SMSC_FROM_" + ContBusUnitCode);
                            t.CreateLog($"Request sent from IOTB:{Utility.SerializeToJSON(newMSG)}");
                            sendSmsResponse newResponse = newSMS.sendSms(newMSG);
                            t.CreateLog($"Response received{Utility.SerializeToJSON(newResponse)}");
                        }

                        catch (Exception ex)
                        {
                            var sx = ex as System.Web.Services.Protocols.SoapException;
                            if (sx != null)
                            {
                                t.CreateLog($"got SoapException. InnerText=\"{sx.Detail.InnerText}\"");
                                t.CreateLog($"OuterXML=\"{sx.Detail.OuterXml}\"");
                            }
                            t.CreateLog("ex.ToString=" + ex.ToString());

                            //record the error and continue with next event
                            t.CreateLog("----------------------------------------!! ERROR OCCURRED !!----------------------------------------");
                            string note = $"ERROR OCCURED. The provisioning action {TargetActionCode} stopped due to the reason: {ex.Message}";
                            t.CreateLog(note);
                            SendEmailToWebSupport(note, t);
                            Singtel.Helpers.Helpers.updateEventStatus(SessionKey, targetEvent.EventId, "F", t, note);
                        }
                    }
        }