/// <summary> /// Read Header Xml file based in database NId, /// Create HeaderDeatails class object and assign property based on xml file values, /// Searialize object to json string using JavaScriptSerializer and return /// </summary> /// <param name="requestParam">Containg information to retreve xml file</param> /// <returns>string containing header information</returns> public string GetHeaderDetail(string requestParam) { HeaderDetailsTemplate ObjHeaderDetail; bool IsDIDatabase = false; string DbNid = string.Empty; string[] Params; string RetVal = string.Empty; System.Web.Script.Serialization.JavaScriptSerializer jSearializer = null; try { ObjHeaderDetail = new HeaderDetailsTemplate(); Params = Global.SplitString(requestParam, Constants.Delimiters.ParamDelimiter); DbNid = Params[0]; IsDIDatabase = Convert.ToBoolean(Params[1]); // Check if to getheader for Di Adaptations or UNSD if (IsDIDatabase) { ObjHeaderDetail = GetDIHeaderStructure(DbNid); } else { ObjHeaderDetail = GetUNSDHeaderStructure(DbNid); } // Initlize javascript seailizer jSearializer = new System.Web.Script.Serialization.JavaScriptSerializer(); // Searilize Header deatail and return RetVal = jSearializer.Serialize(ObjHeaderDetail); } catch (Exception Ex) { RetVal = string.Empty; Global.CreateExceptionString(Ex, null); } return RetVal; }
/// <summary> /// Generate and save header.xml file based passed input parameters /// </summary> /// <param name="requestParam">input parameters for generating header Xml file</param> /// <returns>True if header file created successfuly, else return false</returns> public bool SaveHeaderDetails(string requestParam) { Boolean RetVal = false; string[] Params; string DbNid = string.Empty; bool IsDIDatabase = false; HeaderDetailsTemplate ObjHeaderDet; try { Params = Global.SplitString(requestParam, Constants.Delimiters.ParamDelimiter); DbNid = Params[0]; ObjHeaderDet = new HeaderDetailsTemplate(); ObjHeaderDet.LanguageCode = Params[1]; IsDIDatabase = Convert.ToBoolean(Params[2]); ObjHeaderDet.HeaderId = Params[3]; ObjHeaderDet.HeaderDsdName = Params[4]; ObjHeaderDet.SenderId = Params[5]; ObjHeaderDet.RecieverId = Params[6]; ObjHeaderDet.SenderName = Params[7]; ObjHeaderDet.SenderContactName = Params[8]; ObjHeaderDet.SenderDepartment = Params[9]; ObjHeaderDet.SenderRole = Params[10]; ObjHeaderDet.SenderFax = Params[11]; ObjHeaderDet.SenderTelephone = Params[12]; ObjHeaderDet.SenderEmail = Params[13]; ObjHeaderDet.RecieverName = Params[14]; ObjHeaderDet.RecieverContactName = Params[15]; ObjHeaderDet.RecieverDepartment = Params[16]; ObjHeaderDet.RecieverRole = Params[17]; ObjHeaderDet.RecieverFax = Params[18]; ObjHeaderDet.RecieverTelephone = Params[19]; ObjHeaderDet.RecieverEmail = Params[20]; ObjHeaderDet.Prepared = Params[22]; // Check if to save header for di adaptation--2.1 if (IsDIDatabase) { // Create StructureType object of SDMXObjectModel--2.1 SDMXObjectModel.Message.StructureType ObjStructure = new StructureType(); // Set header field of structure object, by calling method ObjStructure.Header = GetDiMessageHeaderStructure(ObjHeaderDet); ObjStructure.Footer = null; // Call method to save header xml RetVal = SaveDIHeaderStructure(DbNid, ObjStructure); } else// if to save header for unsd--2.0 { // create StructureType object of SDMXApi_2_0 SDMXApi_2_0.Message.StructureType ObjSdxmStructure = new SDMXApi_2_0.Message.StructureType(); // set header field of structure object ObjSdxmStructure.Header = GetSdmxMessageHeaderStructure(ObjHeaderDet); ObjSdxmStructure.Concepts = null; ObjSdxmStructure.KeyFamilies = null; ObjSdxmStructure.CodeLists = null; ObjSdxmStructure.MetadataStructureDefinitions = null; ObjSdxmStructure.OrganisationSchemes = null; ObjSdxmStructure.HierarchicalCodelists = null; ObjSdxmStructure.Metadataflows = null; ObjSdxmStructure.Processes = null; ObjSdxmStructure.ReportingTaxonomies = null; ObjSdxmStructure.StructureSets = null; ObjSdxmStructure.CategorySchemes = null; ObjSdxmStructure.Dataflows = null; // Call method to save header xml RetVal = SaveUNSDHeaderStructure(DbNid, ObjSdxmStructure); } } catch (Exception Ex) { Global.CreateExceptionString(Ex, null); RetVal = false; } return RetVal; }
/// <summary> /// Sets header details to sdmx structure header object and return object /// </summary> /// <param name="ObjHeaderDet">Class containg fields for header detail</param> /// <returns>Structure header object with fields initlized</returns> private SDMXApi_2_0.Message.HeaderType GetSdmxMessageHeaderStructure(HeaderDetailsTemplate ObjHeaderDet) { SDMXApi_2_0.Message.HeaderType ObjHeader = null; SDMXApi_2_0.Message.PartyType SenderParty; SDMXApi_2_0.Message.PartyType RecieverParty; SDMXApi_2_0.Message.ContactType SenderContact; SDMXApi_2_0.Message.ContactType ReceiverContact; string LanguageCode = string.Empty; try { SenderParty = new SDMXApi_2_0.Message.PartyType(); RecieverParty = new SDMXApi_2_0.Message.PartyType(); SenderParty.Contact = new List<SDMXApi_2_0.Message.ContactType>(); RecieverParty.Contact = new List<SDMXApi_2_0.Message.ContactType>(); LanguageCode = ObjHeaderDet.LanguageCode; #region "--Set sender fields value--" // Set sender Id SenderParty.id = ObjHeaderDet.SenderId; // Set sender name SenderParty.Name = SetHeaderFilds(LanguageCode, ObjHeaderDet.SenderName); // Set sender contact Name SenderContact = new SDMXApi_2_0.Message.ContactType(); SenderContact.Name = SetHeaderFilds(LanguageCode, ObjHeaderDet.SenderContactName); // Set reciever contact role SenderContact.Role = SetHeaderFilds(LanguageCode, ObjHeaderDet.SenderRole); // Set sender contact department SenderContact.Department = SetHeaderFilds(LanguageCode, ObjHeaderDet.SenderDepartment); // Set value of sender item fileds, telephone,emailid and fax SenderContact.Items = new string[] { ObjHeaderDet.SenderTelephone, ObjHeaderDet.SenderEmail, ObjHeaderDet.SenderFax }; SenderContact.ItemsElementName = new SDMXApi_2_0.Message.ContactChoiceType[] { SDMXApi_2_0.Message.ContactChoiceType.Telephone, SDMXApi_2_0.Message.ContactChoiceType.Email, SDMXApi_2_0.Message.ContactChoiceType.Fax }; SenderParty.Contact.Add(SenderContact); #endregion #region "--set Reciever fields value--" // Set Reciever Id RecieverParty.id = ObjHeaderDet.RecieverId; // Set reciever name RecieverParty.Name = SetHeaderFilds(LanguageCode, ObjHeaderDet.RecieverName); ReceiverContact = new SDMXApi_2_0.Message.ContactType(); // Set reciever contact name ReceiverContact.Name = SetHeaderFilds(LanguageCode, ObjHeaderDet.RecieverContactName); // Set reciever contact role ReceiverContact.Role = SetHeaderFilds(LanguageCode, ObjHeaderDet.RecieverRole); // Set reciever contact department ReceiverContact.Department = SetHeaderFilds(LanguageCode, ObjHeaderDet.RecieverDepartment); // Set value of sender item fileds, telephone,emailid and fax ReceiverContact.Items = new string[] { ObjHeaderDet.RecieverTelephone, ObjHeaderDet.RecieverEmail, ObjHeaderDet.RecieverFax }; ReceiverContact.ItemsElementName = new SDMXApi_2_0.Message.ContactChoiceType[] { SDMXApi_2_0.Message.ContactChoiceType.Telephone, SDMXApi_2_0.Message.ContactChoiceType.Email, SDMXApi_2_0.Message.ContactChoiceType.Fax }; RecieverParty.Contact.Add(ReceiverContact); #endregion //Init line header object ObjHeader = new SDMXApi_2_0.Message.HeaderType(); // Add SenderParty object to headers sender property ObjHeader.Sender.Add(SenderParty); // Add RecieverParty object to headers reciever property ObjHeader.Receiver.Add(RecieverParty); // Set id of header ObjHeader.ID = ObjHeaderDet.HeaderId; ObjHeader.Name = SetHeaderFilds(LanguageCode, ObjHeaderDet.HeaderDsdName); ObjHeader.Prepared = ObjHeaderDet.Prepared; } catch (Exception Ex) { throw Ex; } return ObjHeader; }
/// <summary> /// Reads UNSD header file and return object /// </summary> /// <param name="dbNId">Nid Of unsd Database</param> /// <returns>Object containing header</returns> private HeaderDetailsTemplate GetUNSDHeaderStructure(string dbNId) { HeaderDetailsTemplate RetVal = null; string AssociatedDbNId, SourceHeaderFileNameWPath; SDMXApi_2_0.Message.StructureType ObjStructure; AssociatedDbNId = string.Empty; SourceHeaderFileNameWPath = string.Empty; RetVal = new HeaderDetailsTemplate(); SDMXApi_2_0.Message.ContactType SenderContact; SDMXApi_2_0.Message.ContactType RecieverContact; try { SourceHeaderFileNameWPath = Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, Constants.FolderName.Data + dbNId + "\\" + Constants.FolderName.SDMX.sdmx + HeaderFileName); if (File.Exists(SourceHeaderFileNameWPath)) { ObjStructure = (SDMXApi_2_0.Message.StructureType)SDMXApi_2_0.Deserializer.LoadFromFile(typeof(SDMXApi_2_0.Message.StructureType), SourceHeaderFileNameWPath); RetVal.HeaderId = ObjStructure.Header.ID; RetVal.Prepared = !string.IsNullOrEmpty(ObjStructure.Header.Prepared.ToString()) ? ObjStructure.Header.Prepared.ToString() : string.Empty; RetVal.HeaderDsdName = !string.IsNullOrEmpty(ObjStructure.Header.Name[0].Value.ToString()) ? ObjStructure.Header.Name[0].Value.ToString() : string.Empty; RetVal.SenderId = !string.IsNullOrEmpty(ObjStructure.Header.Sender[0].id.ToString()) ? ObjStructure.Header.Sender[0].id.ToString() : string.Empty; RetVal.SenderName = !string.IsNullOrEmpty(ObjStructure.Header.Sender[0].Name[0].Value.ToString()) ? ObjStructure.Header.Sender[0].Name[0].Value.ToString() : string.Empty; RetVal.LanguageCode = !string.IsNullOrEmpty(ObjStructure.Header.Sender[0].Name[0].lang.ToString()) ? ObjStructure.Header.Sender[0].Name[0].lang.ToString() : string.Empty; SenderContact = ObjStructure.Header.Sender[0].Contact[0]; RetVal.SenderDepartment = !string.IsNullOrEmpty(SenderContact.Department[0].Value.ToString()) ? SenderContact.Department[0].Value.ToString() : string.Empty; RetVal.SenderRole = !string.IsNullOrEmpty(SenderContact.Role[0].Value.ToString()) ? SenderContact.Role[0].Value.ToString() : string.Empty; RetVal.SenderContactName = !string.IsNullOrEmpty(SenderContact.Name[0].Value.ToString()) ? SenderContact.Name[0].Value.ToString() : string.Empty; if (SenderContact.Items.Length > 2) { RetVal.SenderTelephone = !string.IsNullOrEmpty(SenderContact.Items[0].ToString()) ? SenderContact.Items[0].ToString() : string.Empty; RetVal.SenderFax = !string.IsNullOrEmpty(SenderContact.Items[1].ToString()) ? SenderContact.Items[1].ToString() : string.Empty; RetVal.SenderEmail = !string.IsNullOrEmpty(SenderContact.Items[2].ToString()) ? SenderContact.Items[2].ToString() : string.Empty; } else if(SenderContact.Items.Length >1) { RetVal.SenderTelephone = !string.IsNullOrEmpty(SenderContact.Items[0].ToString()) ? SenderContact.Items[0].ToString() : string.Empty; RetVal.SenderEmail = !string.IsNullOrEmpty(SenderContact.Items[2].ToString()) ? SenderContact.Items[2].ToString() : string.Empty; } else { RetVal.SenderTelephone = !string.IsNullOrEmpty(SenderContact.Items[0].ToString()) ? SenderContact.Items[0].ToString() : string.Empty; } RecieverContact = ObjStructure.Header.Receiver[0].Contact[0]; RetVal.RecieverId = !string.IsNullOrEmpty(ObjStructure.Header.Receiver[0].id.ToString()) ? ObjStructure.Header.Receiver[0].id.ToString() : string.Empty; RetVal.RecieverName = !string.IsNullOrEmpty(ObjStructure.Header.Receiver[0].Name[0].Value) ? ObjStructure.Header.Receiver[0].Name[0].Value.ToString() : string.Empty; RetVal.RecieverDepartment = !string.IsNullOrEmpty(RecieverContact.Department[0].Value) ? RecieverContact.Department[0].Value.ToString() : string.Empty; RetVal.RecieverRole = !string.IsNullOrEmpty(RecieverContact.Role[0].Value) ? RecieverContact.Role[0].Value.ToString() : string.Empty; RetVal.RecieverContactName = !string.IsNullOrEmpty(RecieverContact.Name[0].Value) ? RecieverContact.Name[0].Value.ToString() : string.Empty; if (RecieverContact.Items.Length > 2) { RetVal.RecieverTelephone = !string.IsNullOrEmpty(RecieverContact.Items[0].ToString()) ? RecieverContact.Items[0].ToString() : string.Empty; RetVal.RecieverEmail = !string.IsNullOrEmpty(RecieverContact.Items[1].ToString()) ? RecieverContact.Items[1].ToString() : string.Empty; RetVal.RecieverFax = !string.IsNullOrEmpty(RecieverContact.Items[2].ToString()) ? RecieverContact.Items[2].ToString() : string.Empty; } else if (RecieverContact.Items.Length >1) { RetVal.RecieverTelephone = !string.IsNullOrEmpty(RecieverContact.Items[0].ToString()) ? RecieverContact.Items[0].ToString() : string.Empty; RetVal.RecieverEmail = !string.IsNullOrEmpty(RecieverContact.Items[1].ToString()) ? RecieverContact.Items[1].ToString() : string.Empty; } else { RetVal.RecieverTelephone = !string.IsNullOrEmpty(RecieverContact.Items[0].ToString()) ? RecieverContact.Items[0].ToString() : string.Empty; } } } catch (Exception Ex) { Global.CreateExceptionString(Ex, null); RetVal = null; throw Ex; } return RetVal; }
/// <summary> /// Sets header details to di structure header object and return object /// </summary> /// <param name="ObjHeaderDet">Class containg fields for header detail</param> /// <returns>Structure header object with fields initlized</returns> private SDMXObjectModel.Message.StructureHeaderType GetDiMessageHeaderStructure(HeaderDetailsTemplate ObjHeaderDet) { SDMXObjectModel.Message.StructureHeaderType ObjStructureHeader = null; SenderType Sender; PartyType Receiver; Sender = new SenderType(ObjHeaderDet.SenderId, ObjHeaderDet.SenderName, ObjHeaderDet.LanguageCode, new SDMXObjectModel.Message.ContactType(ObjHeaderDet.SenderContactName, ObjHeaderDet.SenderDepartment, ObjHeaderDet.SenderRole, ObjHeaderDet.LanguageCode)); Sender.Contact[0].Items = new string[] { ObjHeaderDet.SenderTelephone, ObjHeaderDet.SenderEmail, ObjHeaderDet.SenderFax }; Sender.Contact[0].ItemsElementName = new SDMXObjectModel.Message.ContactChoiceType[] { SDMXObjectModel.Message.ContactChoiceType.Telephone, SDMXObjectModel.Message.ContactChoiceType.Email, SDMXObjectModel.Message.ContactChoiceType.Fax }; Receiver = new PartyType(ObjHeaderDet.RecieverId, ObjHeaderDet.RecieverName, ObjHeaderDet.LanguageCode, new SDMXObjectModel.Message.ContactType(ObjHeaderDet.RecieverContactName, ObjHeaderDet.RecieverDepartment, ObjHeaderDet.RecieverRole, ObjHeaderDet.LanguageCode)); Receiver.Contact[0].Items = new string[] { ObjHeaderDet.RecieverTelephone, ObjHeaderDet.RecieverEmail, ObjHeaderDet.RecieverFax }; Receiver.Contact[0].ItemsElementName = new SDMXObjectModel.Message.ContactChoiceType[] { SDMXObjectModel.Message.ContactChoiceType.Telephone, SDMXObjectModel.Message.ContactChoiceType.Email, SDMXObjectModel.Message.ContactChoiceType.Fax }; ObjStructureHeader = new StructureHeaderType(ObjHeaderDet.HeaderId, true, DateTime.Now, Sender, Receiver); return ObjStructureHeader; }