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); } }
/// <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); } }
//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}"); } }
/// <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); } } } } } }
/// <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); } } }