public static void ActionResponse(string SessionKey, EventDisplay targetEvent, string AttribId, string AttribValue, string targetActionCode, TraceLog t) { t.CreateLog("---START OF ACTION_RESPONSE---"); try { using (var ServiceClientWS = new SelcommWSsvc.SelcommWSAll.ServiceClient(GetSelcommWsEndpointName())) { var serviceAttribute = new ServiceAttribute { AttributeTemplate = new AttributeTemplate { Id = Convert.ToInt64(AttribId) }, Key = targetEvent.ServiceId, Value = AttribValue, Event = new Event() { Id = targetEvent.EventId } }; t.CreateLog($"Creating service attribute for service id:{targetEvent.ServiceId}"); ServiceClientWS.ServiceAttributeUpdate(SessionKey, serviceAttribute); t.CreateLog($"Service attribute for {targetActionCode} with Attribute ID: {serviceAttribute.AttributeTemplate.Id} and Attribute value: {AttribValue} created against service id {targetEvent.ServiceId}"); } } catch (Exception ex) { throw ex; } }
/// <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); } } }