/// <summary> /// Add equipment information to customer /// </summary> /// <returns></returns> public string AddEQI() { string strRetErrCode2ICOM = "0000901"; try { logger.Info("CRMCustomerEquipmentRequest::AddEQI() called"); SyncRequest objSyncReq = new SyncRequest(); objSyncReq.CustomerId = CustomerId; objSyncReq.CustomerStatus = CustomerStatus; objSyncReq.ICOMSMsgFormat = "EQI"; CustomerInformationRequest objCusReq = new CustomerInformationRequest(objSyncReq, objSyncReq); objCusReq.DeviceId = CustomerMACAddress; // Perform Add Customer strRetErrCode2ICOM = objCusReq.AddCustomer(false); if (strRetErrCode2ICOM != "0000000") { logger.Error("CRMCustomerEquipmentRequest::AddCustomer(): failed"); logger.Error("CRMCustomerEquipmentRequest::AddEQI() returning false"); return strRetErrCode2ICOM; } // Perform Add Device strRetErrCode2ICOM = objCusReq.AddCrmDevice(); if (strRetErrCode2ICOM != "0000000") { logger.Error("CRMCustomerEquipmentRequest::AddCrmDevice(): failed"); logger.Error("CRMCustomerEquipmentRequest::AddEQI() returning false"); return strRetErrCode2ICOM; } // Perform Add Device to Customer strRetErrCode2ICOM = objCusReq.AssignDevice(); if (strRetErrCode2ICOM != "0000000") { logger.Error("CRMCustomerEquipmentRequest::AssignDevice(): failed"); logger.Error("CRMCustomerEquipmentRequest::AddEQI() returning false"); return strRetErrCode2ICOM; } // Perform add/delete products for Customer strRetErrCode2ICOM = EntitlementReplaced(); if (strRetErrCode2ICOM != "0000000") { logger.Error("CRMCustomerEquipmentRequest::EntitlementReplaced() failed"); logger.Error("CRMCustomerEquipmentRequest::AddEQI() returning false"); return strRetErrCode2ICOM; } logger.Info("CRMCustomerEquipmentRequest::AddEQI() returning true"); return strRetErrCode2ICOM; } catch (Exception ee) { logger.Error(string.Format("AddEQI(): Exception: {0}", ee.Message)); logger.Error("CRMCustomerEquipmentRequest::AddEQI() returning false"); return strRetErrCode2ICOM; } }
public CustomerEquipmentRequest(EquipmentSyncRequest obj, SyncRequest sr) : base(sr) { this.CustomerId = obj.CustomerId; this.CustomerStatus = sr.CustomerStatus; this.CustomerMACAddress = obj.macAddress; this.CustomerSMARTCardId = obj.smartCardId; this.OfferingIdList = obj.offeringId; }
public void Test_AddCustomer() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203040"; synReq.CustomerStatus = "A"; CustomerInformationRequest ciReq = new CustomerInformationRequest("010203040", synReq); String expRes = ciReq.AddCustomer(); Assert.AreEqual("0000000", expRes, "Customer Added successfully"); }
public void Test_SendRequest() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203040"; synReq.CustomerStatus = "A"; CRM4cInterfaceAccessManager crmReq = new CRM4cInterfaceAccessManager(synReq); crmReq.UrlPostFix = ""; String reqBody = "Test Body"; HttpStatusCode httpCode = HttpStatusCode.OK; bool expRes = crmReq.SendRequest(ref reqBody, ref httpCode); Assert.IsFalse(expRes,"Should not able to send Request as URL is not correct"); }
public void Test_AddCCI_ValidUrl() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203040"; synReq.CustomerStatus = "A"; SubscriberSyncRequest ssynReq = new SubscriberSyncRequest(); ssynReq.creditLimit = 200; CustomerCreditRequest ccReq = new CustomerCreditRequest(ssynReq, synReq); String expRes = ccReq.AddCCI(); Assert.AreEqual("0000000",expRes, "Should be able to add Customer Credit "); }
public void Test_SendRequest_ValidUrl() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203040"; synReq.CustomerStatus = "A"; CRM4cInterfaceAccessManager crmReq = new CRM4cInterfaceAccessManager(synReq); crmReq.UrlPostFix = String.Format("/Customers/{0}", "010203040"); crmReq.RequestBody = String.Format("<?xml version=\"1.0\" encoding=\"utf-8\"?> <Customer id=\"{0}\" xmlns=\"urn:eventis:crm:2.0\"><IsBarred xmlns=\"urn:eventis:crm:2.0\">{1}</IsBarred></Customer>", "010203040", "false"); crmReq.Method = "PUT"; HttpStatusCode httpCode = HttpStatusCode.NotImplemented; string ResponseBody = ""; bool expRes = crmReq.SendRequest(ref ResponseBody, ref httpCode); Assert.IsTrue(expRes, "Should be able to send Request to URL"); }
public void Test_AddCustomer_ValidUrl() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203040"; synReq.CustomerStatus = "A"; CustomerInformationRequest ciReq = new CustomerInformationRequest("010203040", synReq); ciReq.UrlPostFix = ""; String reqBody = "Test Body"; ciReq.RequestBody = reqBody; String expRes = ciReq.AddCustomer(); Assert.AreEqual("0000000", expRes, "Should able to add customer info as URL is correct"); }
public void Test_AddEQI() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203040"; synReq.CustomerStatus = "A"; EquipmentSyncRequest esynReq = new EquipmentSyncRequest(); esynReq.CustomerId = "010203040"; esynReq.macAddress = "00:00:40:C4:2A:1E"; esynReq.offeringId = new List<string>("0001234/0001236/0001237".Split('/')); esynReq.smartCardId = ""; CustomerEquipmentRequest ceReq = new CustomerEquipmentRequest(esynReq, synReq); ServiceRunTimeManager srvRunMgr = new ServiceRunTimeManager(); String expRes = srvRunMgr.transalteResCode2ICOM4m4C(ceReq.AddEQI(), "AddEQI"); Assert.AreEqual("0000901", expRes, "Should not able to add customer Equipment as Device Id is passes as incorrect format"); }
public void Test_DeleteEQI() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203040"; synReq.CustomerStatus = "A"; EquipmentSyncRequest esynReq = new EquipmentSyncRequest(); esynReq.CustomerId = "010203040"; esynReq.macAddress = "00002986685810000000000000000987123"; esynReq.offeringId = new List<string>("0001234/0001236/0001237".Split('/')); esynReq.smartCardId = ""; CustomerEquipmentRequest ceReq = new CustomerEquipmentRequest(esynReq, synReq); ServiceRunTimeManager srvRunMgr = new ServiceRunTimeManager(); String expRes = srvRunMgr.transalteResCode2ICOM4m4C(ceReq.DeleteEQI(), "DeleteEQI"); Assert.AreEqual("0000301", expRes, "Should not be able to delete customer Equipment as device id is passed as incorrect value"); }
public void Test_AddEQI_ValidUrl() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203551"; synReq.CustomerStatus = "A"; EquipmentSyncRequest esynReq = new EquipmentSyncRequest(); esynReq.CustomerId = "010203551"; esynReq.macAddress = "00002986685810000000000000000551"; esynReq.offeringId = new List<string>("0001234/0001236/0001237".Split('/')); esynReq.smartCardId = ""; CustomerEquipmentRequest ceReq = new CustomerEquipmentRequest(esynReq, synReq); ServiceRunTimeManager srvRunMgr = new ServiceRunTimeManager(); String expRes = srvRunMgr.transalteResCode2ICOM4m4C(ceReq.AddEQI(), "AddEQI"); Assert.AreEqual("0000000", expRes, "Should be able to add Customer Equipment "); }
public void Test_AddCCI() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203040"; synReq.CustomerStatus = "A"; SubscriberSyncRequest ssynReq = new SubscriberSyncRequest(); ssynReq.creditLimit = 200; CustomerCreditRequest ccReq = new CustomerCreditRequest(ssynReq, synReq); /* ccReq.UrlPostFix = ""; String reqBody = "Test Body"; ccReq.RequestBody = reqBody; */ String expRes = ccReq.AddCCI(); Assert.AreEqual("0000000",expRes,"Credit Limit Added correctly"); }
public CustomerInformationRequest(SyncRequest obj , SyncRequest sr) : base(sr) { this.CustomerId = obj.CustomerId; this.CustomerStatus = obj.CustomerStatus; switch (obj.CustomerStatus) { case "A": this.isBarredFlag = false; break; case "I": this.isBarredFlag = true; break; } }
public void Test_AddCCI_Exception() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203040"; synReq.CustomerStatus = "A"; SubscriberSyncRequest ssynReq = new SubscriberSyncRequest(); ssynReq.creditLimit = 200; CustomerCreditRequest ccReq = new CustomerCreditRequest(ssynReq, synReq); ccReq.UrlPostFix = ""; String reqBody = "Test Body"; ccReq.RequestBody = reqBody; try { String expRes = ccReq.AddCCI(); } catch (Exception e) { Assert.Fail("["+e.Message+"]. All Exceptions should be handeled"); } }
public void Test_updateCCI_ValidUrl() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203040"; synReq.CustomerStatus = "A"; SubscriberSyncRequest ssynReq = new SubscriberSyncRequest(); ssynReq.creditLimit = 200; CustomerCreditRequest ccReq = new CustomerCreditRequest(ssynReq, synReq); ccReq.UrlPostFix = ""; String reqBody = "Test Body"; ccReq.RequestBody = reqBody; String expRes = ccReq.updateCCI(); Assert.AreEqual("0000000", expRes, "Should be able to update Customer Credit "); }
/// <summary> /// Update Product(s) information to customer /// </summary> /// <returns></returns> public string EntitlementReplaced() { bool PackageFailed = false; string strRetErrCode2ICOM = "0000901"; try { logger.Info("CRMCustomerEquipmentRequest::EntitlementReplaced() called"); SyncRequest objSyncReq = new SyncRequest(); objSyncReq.CustomerId = CustomerId; objSyncReq.CustomerStatus = CustomerStatus; objSyncReq.ICOMSMsgFormat = "EQI"; CustomerInformationRequest objCusReq = new CustomerInformationRequest(CustomerId, objSyncReq); // 1. Remove all subscription products from a customer strRetErrCode2ICOM = objCusReq.RemoveAllSubscriptions(); if (strRetErrCode2ICOM != "0000000") { logger.Error("EntitlementReplaced(): RemoveAllSubscriptions() failed, returning false"); return strRetErrCode2ICOM; } ResponseStatus = objCusReq.ResponseStatus; // 2. Assign a subscription product to a customer (send this multiple times depending on number of offerings) foreach (string OfferId in OfferingIdList) { objCusReq.ProductId = OfferId; strRetErrCode2ICOM = objCusReq.AssignSubscription(); if (strRetErrCode2ICOM != "0000000") { PackageFailed = true; logger.Error(string.Format("EntitlementReplaced(): AssignSubscription() failed: OfferId = {0}", OfferId)); } } ResponseStatus = objCusReq.ResponseStatus; if (PackageFailed == true) { logger.Error("EntitlementReplaced(): Some or all of the entitlements were not synchronized to CRM"); return strRetErrCode2ICOM; } logger.Info("CRMCustomerEquipmentRequest::EntitlementReplaced() successful"); return "0000000"; } catch (Exception ee) { logger.Error(string.Format("EntitlementReplaced(): Exception: {0}", ee.Message)); logger.Error("CRMCustomerEquipmentRequest::EntitlementReplaced() returning false"); return strRetErrCode2ICOM; } }
public string DeleteEQI() { string strRetErrCode2ICOM = "0000901"; try { logger.Info("CRMCustomerEquipmentRequest::DeleteEQI() called"); SyncRequest objSyncReq = new SyncRequest(); objSyncReq.CustomerId = CustomerId; objSyncReq.CustomerStatus = CustomerStatus; objSyncReq.ICOMSMsgFormat = "EQI"; CustomerInformationRequest objCusReq = new CustomerInformationRequest(objSyncReq, objSyncReq); objCusReq.DeviceId = CustomerMACAddress; // Perform Deleting device from Customer strRetErrCode2ICOM = objCusReq.RemoveDevice(); if (strRetErrCode2ICOM != "0000000") { logger.Error("CRMCustomerEquipmentRequest::RemoveDevice() failed"); logger.Error("CRMCustomerEquipmentRequest::DeleteEQI() returning false"); return strRetErrCode2ICOM; } // Perform Deleting device strRetErrCode2ICOM = objCusReq.DeleteCrmDevice(); if (strRetErrCode2ICOM != "0000000") { logger.Error("CRMCustomerEquipmentRequest::DeleteCrmDevice() failed"); logger.Error("CRMCustomerEquipmentRequest::DeleteEQI() returning false"); return strRetErrCode2ICOM; } return strRetErrCode2ICOM; } catch (Exception ee) { logger.Error(string.Format("DeleteEQI(): Exception: {0}", ee.Message)); logger.Error("CustomerEquipmentRequest::DeleteEQI() returning false"); return strRetErrCode2ICOM; } // end try catch }
public CRM4cInterfaceAccessManager(SyncRequest sr) { //CrmBaseUrl = CrmBridgeConfig.CrmUrl; syncRequest = sr; }
public void Test_UpdateEQI() { SyncRequest synReq = new SyncRequest(); synReq.CustomerId = "010203040"; synReq.CustomerStatus = "A"; EquipmentSyncRequest esynReq = new EquipmentSyncRequest(); esynReq.CustomerId = "010203040"; esynReq.macAddress = "00002986685810000000000000000001"; esynReq.offeringId = new List<string>("0005432".Split('/')); esynReq.smartCardId = ""; CustomerEquipmentRequest ceReq = new CustomerEquipmentRequest(esynReq, synReq); ServiceRunTimeManager srvRunMgr = new ServiceRunTimeManager(); String expRes = srvRunMgr.transalteResCode2ICOM4m4C(ceReq.UpdateEQI(), "UpdateEQI"); Assert.AreEqual("0000901", expRes, "Should not able to update customer Equipment as product id is not in correct format"); }
/// <summary> /// Process ICOMS EQI messages. Messages will be translated in required format to invoke CRM 4c Rest Interface. /// </summary> /// <param name="strICOMS_EQI_Msg"></param> /// <param name="templistenerMembers"></param> /// <returns></returns> public string processEQIMessage(string strICOMS_EQI_Msg, ServiceListenerMembers templistenerMembers) { Dictionary<string, string> dictObj4c = new Dictionary<string, string>(); SyncRequest objSyncReq; EquipmentSyncRequest objCusEqi; ServiceTranslationManager trsMgr; ServiceBusinessRulesManager busMgr; string retMsg2ICOM = "0000901"; string strResMainFormat = string.Empty; string strErrCode = string.Empty; trsMgr = new ServiceTranslationManager(); try { logger.Info("ServiceRunTimeManager::processEQIMessage() called"); busMgr = new ServiceBusinessRulesManager(); // Create dictionary object with all required tokens(key-value) for EQI dictObj4c = trsMgr.getDataFor4cInterface(strICOMS_EQI_Msg, ServiceConstantsManager.CONST_EQI, templistenerMembers); logger.Info(string.Format("Required tokens are extracted from EQI message... {0}", trsMgr.GetLine(dictObj4c))); // Validation for missing tokens strErrCode = busMgr.checkRequiredTokensPresent(dictObj4c, ServiceConstantsManager.CONST_EQI); if (strErrCode != string.Empty) { logger.Error(string.Format("Please verify all required tokens are present in the EQI message. Required Tokens... \"{0}\"", string.Join(",", ServiceConstantsManager.CONST_EQI))); return strErrCode; } // Validation for token length strErrCode = busMgr.checkRequiredLengthOfTokens(dictObj4c, templistenerMembers); if (strErrCode != string.Empty) { logger.Error(string.Format("Length is not matching for one of tokens present in the EQI message(): {0}", string.Join(",", ServiceConstantsManager.CONST_EQI))); return strErrCode; } // update Customerid(AN=AN+SI) based on flag value in config value dictObj4c = busMgr.AddSiteId2CustId(dictObj4c, templistenerMembers); // Get Native format device id from ICOMS "EA" token based config value of "DeviceIdFormat" & "NativeFormat4cFlag" dictObj4c = busMgr.getNativeFormat4cAddress(dictObj4c, templistenerMembers); objCusEqi = new EquipmentSyncRequest(); objCusEqi.CustomerId = dictObj4c["AN:"]; objCusEqi.macAddress = dictObj4c["EA:"]; // Create new list for product Ids objCusEqi.offeringId = busMgr.getProductIdList(dictObj4c); objSyncReq = new SyncRequest(); objSyncReq.CustomerId = dictObj4c["AN:"]; objSyncReq.CustomerStatus = string.Empty; objSyncReq.ICOMSMsgFormat = "EQI"; CustomerEquipmentRequest objCusEQIReq = new CustomerEquipmentRequest(objCusEqi, objSyncReq); switch (dictObj4c["AC:"]) { // Add EQI case "A": logger.Info("ADD EQI action called"); retMsg2ICOM = objCusEQIReq.AddEQI(); // Get success/failure error code to send to ICOMS retMsg2ICOM = transalteResCode2ICOM4m4C(retMsg2ICOM, "AddEQI"); break; // Update EQI case "U": logger.Info("Update EQI action called"); retMsg2ICOM = objCusEQIReq.UpdateEQI(); // Get success/failure error code to send to ICOMS retMsg2ICOM = transalteResCode2ICOM4m4C(retMsg2ICOM, "UpdateEQI"); break; // Delete EQI case "R": logger.Info("Delete EQI action called"); retMsg2ICOM = objCusEQIReq.DeleteEQI(); // Get success/failure error code to send to ICOMS retMsg2ICOM = transalteResCode2ICOM4m4C(retMsg2ICOM, "DeleteEQI"); break; default: logger.Warn(string.Format("Invalid token value received from EQI message for AC operation : {0}", dictObj4c["AC:"])); break; } logger.Info(string.Format("ServiceRunTimeManager::processEQIMessage() returning value {0}", retMsg2ICOM)); return retMsg2ICOM; } catch (Exception ex) { logger.Error(string.Format("processEQIMessage(): Exception: {0}", ex.Message)); logger.Error("ServiceRunTimeManager::processEQIMessage() returning error"); return retMsg2ICOM; } }
/// <summary> /// Process ICOMS CUI messages. Messages will be translated in required format to invoke CRM 4c Rest Interface. /// </summary> /// <param name="strICOMS_CUI_Msg"></param> /// <param name="templistenerMembers"></param> /// <returns></returns> public string processCUIMessage(string strICOMS_CUI_Msg, ServiceListenerMembers templistenerMembers) { Dictionary<string, string> dictObj4c = new Dictionary<string, string>(); SyncRequest objSyncReq; ServiceTranslationManager trsMgr; ServiceBusinessRulesManager busMgr; string retMsg2ICOM = "0000901"; string strResMainFormat=string.Empty; string strErrCode = string.Empty; trsMgr = new ServiceTranslationManager(); string[] arrConfigSiteIdName=new string[2]; try { logger.Info("ServiceRunTimeManager::processCUIMessage() called"); busMgr = new ServiceBusinessRulesManager(); // Create dictionary object with all required tokens(key-value) for CUI dictObj4c = trsMgr.getDataFor4cInterface(strICOMS_CUI_Msg, ServiceConstantsManager.CONST_CUI, templistenerMembers); logger.Info(string.Format("Required tokens are extracted from CUI message... {0}", trsMgr.GetLine(dictObj4c))); // Validation for missing tokens strErrCode = busMgr.checkRequiredTokensPresent(dictObj4c, ServiceConstantsManager.CONST_CUI); if (strErrCode != string.Empty) { logger.Error(string.Format("Please verify all required tokens are present in the CUI message. Required Tokens... \"{0}\"", string.Join(",", ServiceConstantsManager.CONST_CUI))); return strErrCode; } // Validation for token length strErrCode = busMgr.checkRequiredLengthOfTokens(dictObj4c,templistenerMembers); if (strErrCode != string.Empty) { logger.Error(string.Format("Length is not matching for one of tokens present in the CUI message(): {0}", string.Join(",", ServiceConstantsManager.CONST_CUI))); return strErrCode; } // update Customerid(AN=AN+SI) based on flag value in config value dictObj4c = busMgr.AddSiteId2CustId(dictObj4c, templistenerMembers); objSyncReq = new SyncRequest(); objSyncReq.CustomerId = dictObj4c["AN:"]; objSyncReq.CustomerStatus = dictObj4c["AS:"]; objSyncReq.ICOMSMsgFormat = "CUI"; CustomerInformationRequest crmreq = new CustomerInformationRequest(objSyncReq, objSyncReq); // Perform Add customer retMsg2ICOM = crmreq.AddCustomer(); // Get success/failure error code to send to ICOMS retMsg2ICOM = transalteResCode2ICOM4m4C(retMsg2ICOM, "AddCustomer"); logger.Info(string.Format("ServiceRunTimeManager::processCUIMessage() returning value {0}", retMsg2ICOM)); return retMsg2ICOM; } catch (Exception ex) { logger.Error(string.Format("processCUIMessage(): Exception: {0}", ex.Message)); logger.Error("ServiceRunTimeManager::processCUIMessage() returning error"); return "0000901"; } }
public CustomerCreditRequest(SubscriberSyncRequest obj, SyncRequest sr) : base(sr) { this.CustomerId = sr.CustomerId; this.CustomerExpLimit = obj.creditLimit; }
public CustomerInformationRequest(string CustomerId, SyncRequest sr) : base(sr) { this.CustomerId = CustomerId; }