Example #1
0
        static public bool ServiceExists(string lritID)
        {
            using (var ssda = new SARServiceDataAccess())
            {
                var sars = ssda.GetServiceByLRITId(lritID);
                if (sars == null)
                {
                    return(false);
                }

                return(true);
            }
        }
        /// <summary>
        /// Obtiene un ContractingGoverment basado en un LRITId
        /// </summary>
        /// <param name="LRITId">LRITId del contracting goverment</param>
        /// <returns>ContractingGoverment</returns>
        public ContractingGoverment GetContractingGovermentByLRITId(string LRITId, int ddpVersionId)
        {
            using (var cgda = new ContractingGovermentDataAccess())
            {
                var cg = cgda.GetByLRITId(LRITId, ddpVersionId);
                if (cg == null)
                {
                    using (var sserda = new SARServiceDataAccess())
                    {
                        var sser = sserda.GetServiceByLRITId(LRITId);
                        if (sser == null)
                        {
                            return(null);
                        }

                        LRITId = sser.ContractingGoverment.LRITId.ToString();
                    }
                }

                return(cgda.GetByLRITId(LRITId, ddpVersionId));
            }
        }
Example #3
0
        /// <summary>
        /// Importa un archivo DDP en formato XML a la base de datos
        /// </summary>
        /// <param name="stream">Stream de memoria del archivo</param>
        public DateTime Import(XmlDocument ddpxml, DDPVersion ddpVersion)
        {
            DateTime      pubDate = DateTime.UtcNow;
            DBDataContext context = null;

            try
            {
                context = new DBDataContext(Config.ConnectionString);

                //---------------------------------------------------
                XmlNamespaceManager nsmanager = new XmlNamespaceManager(ddpxml.NameTable);
                nsmanager.AddNamespace("lr", "http://gisis.imo.org/XML/LRIT/ddp/2008");
                //---------------------------------------------------

                //Hack-o-mati: Asociation of contracting goverment
                Dictionary <ContractingGoverment, ContractingConfig> goverments = new Dictionary <ContractingGoverment, ContractingConfig>();

                //Just for return, do not use here.
                pubDate = DateTime.Parse(ddpxml.SelectSingleNode("/lr:DataDistributionPlan", nsmanager).Attributes["regularVersionImplementationAt"].Value);

                readCGS("/lr:DataDistributionPlan/lr:ContractingGovernment", ref goverments, ref ddpxml, ref nsmanager);
                readCGS("/lr:DataDistributionPlan/lr:Territory", ref goverments, ref ddpxml, ref nsmanager);

                var cgda = new ContractingGovermentDataAccess(context);
                var pda  = new PlaceDataAccess(context);
                var soda = new StandingOrderDataAccess(context);
                var ssda = new SARServiceDataAccess(context);
                //var exda = new ExclusionDataAccess(context);

                //cgda.DropAll();

                foreach (KeyValuePair <ContractingGoverment, ContractingConfig> kv in goverments)
                {
                    kv.Key.DDPVersionId = ddpVersion.Id;
                    int gId = cgda.Create(kv.Key);

                    foreach (Place p in kv.Value.places)
                    {
                        p.ContractingGovermentId = gId;
                    }

                    foreach (SARService ss in kv.Value.sarservice)
                    {
                        ss.ContractingGovermentId = gId;
                    }

                    //foreach (Exclusion excl in kv.Value.exclusions)
                    //  excl.ContractingGoverment = gId;

                    log.Debug(string.Format("{2}: Key:{0}, Value{1}", kv.Key.Name, kv.Value.places.Count, kv.Key.Id));

                    pda.Create(kv.Value.places.ToArray());
                    //exda.Create(kv.Value.exclusions.ToArray());

                    ssda.Create(kv.Value.sarservice.ToArray());

                    //Places with ids
                    List <Place> places = pda.GetAll(ddpVersion.regularVer + ":" + ddpVersion.inmediateVer);

                    //Standing orders
                    string  path          = string.Format("/lr:DataDistributionPlan/lr:CoastalStateStandingOrders/lr:StandingOrder[@contractingGovernmentID='{0}']", kv.Key.LRITId);
                    XmlNode standingOrder = ddpxml.SelectSingleNode(path, nsmanager);

                    if (standingOrder != null && !String.IsNullOrEmpty(standingOrder.InnerText))
                    {
                        foreach (string area in standingOrder.InnerText.Split(' '))
                        {
                            int id = getPlaceId(places, area);
                            if (id == -1)
                            {
                                continue;
                            }

                            StandingOrder so = new StandingOrder();
                            so.PlaceId = id;
                            kv.Value.standingOrders.Add(so);
                        }
                    }

                    //ES ACA
                    soda.Create(kv.Value.standingOrders.ToArray());
                }
            }
            catch (Exception ex)
            {
                if (context != null)
                {
                    context.Dispose();
                }

                throw new Exception("Unable to Import DDP File", ex);
            }
            finally
            {
                if (context != null)
                {
                    context.Dispose();
                }
            }

            return(pubDate);
        }