public static DataCenter GetValidDataCenter(Models.Tuple tuple, List <DataCenter> datacenterList)
        {
            var rnd = new Random();

            double[] arrLatency = { 40, 50, 60 };
            foreach (var item in datacenterList)
            {
                var dis = GeoDistance.CalcDistance(tuple.GeoLocation.getLongitude(), tuple.GeoLocation.getLatitude(),
                                                   item.DatacenterCharacteristics.GeoLocation.getLongitude(), item.DatacenterCharacteristics.GeoLocation.getLatitude(),
                                                   GeoCodeCalcMeasurement.Kilometers);

                lock (item)
                { item.DatacenterCharacteristics.DistanceFromTuple = dis; }
                var link = new Link()
                {
                    Source          = tuple.Name,
                    Destination     = item.Name,
                    SDDistance      = dis,
                    Propagationtime = LinkUtility.CalculateLatency(dis, cooperSpeed, tuple.Size, transmitionRate, arrLatency[rnd.Next(arrLatency.Length)])
                };
                lock (CloudUtility.linksList)
                    CloudUtility.linksList.Add(link);
            }
            return(datacenterList.OrderBy(x => x.DatacenterCharacteristics.DistanceFromTuple).FirstOrDefault());
        }
Exemple #2
0
        public async Task Status(ITextChannel textChannel)
        {
            var success = false;
            var channel = (textChannel ?? Context.Channel as ITextChannel);

            if (channel != null)
            {
                if (!(await Ditto.Client.DoAsync(async c => await c.GetPermissionsAsync(textChannel)).ConfigureAwait(false)).HasAccess())
                {
                    await Context.ApplyResultReaction(CommandResult.FailedBotPermission).ConfigureAwait(false);
                }
                else
                {
                    success = null != await LinkUtility.TryAddLinkAsync(LinkType.BDO_Maintenance, channel, null).ConfigureAwait(false);

                    await Context.EmbedAsync(
                        success
                        ?$"Successfully linked BDO maintenance to {textChannel.Mention}"
                        : $"",
                        success?ContextMessageOption.ReplyUser : ContextMessageOption.ReplyWithError,
                        new RequestOptions()
                    {
                        RetryMode = RetryMode.AlwaysRetry
                    }
                        ).DeleteAfterAsync(10).ConfigureAwait(false);
                }
            }
            else
            {
            }
        }
        public static CloudDevice CloudComputation(Models.Tuple tuple, CloudDevice cloud)
        {
            var rnd = new Random();

            double[] arrLatency = { 40, 50, 60 };
            var      dis        = GeoDistance.CalcDistance(tuple.GeoLocation.getLongitude(), tuple.GeoLocation.getLatitude(),
                                                           cloud.GeoLocation.getLongitude(), cloud.GeoLocation.getLatitude(), GeoCodeCalcMeasurement.Kilometers);

            lock (Lock)
            { cloud.DistanceFromTuple = dis; }
            lock (Lock)
            {
                link.Source          = tuple.Name;
                link.Destination     = cloud.Name;
                link.SDDistance      = dis;
                link.Propagationtime = LinkUtility.CalculateLatency(dis, cooperSpeed, tuple.Size, transmitionRate, arrLatency[rnd.Next(arrLatency.Length)]);
            }
            CloudRersourceUtility.ResourceConsumption(tuple, cloud);
            return(cloud);
        }
Exemple #4
0
        private OggettoHome RiempiIstanza(SqlDataReader dr)
        {
            if (dr == null)
            {
                throw new ArgumentNullException("dr");
            }

            OggettoHome oggettoHome            = new OggettoHome();
            string      immagineLocalizzazione = dr.IsDBNull(6) ? "" : dr.GetString(6);

            oggettoHome.ID                        = dr.GetInt32(0);
            oggettoHome._nome_IT                  = dr.GetString(1);
            oggettoHome._nome_EN                  = dr.GetString(2);
            oggettoHome._descrizione_IT           = dr.GetString(3);
            oggettoHome._descrizione_EN           = dr.GetString(4);
            oggettoHome.DataScadenzaPresentazione = dr.GetDateTime(5);
            oggettoHome.DocumentoID               = dr.GetInt32(7);

            if (dr.GetInt32(9).Equals((int)TipoOggettoEnum.Impianto))
            {
                oggettoHome.CategoriaImpianto = CategoriaImpiantoRepository.Instance.RecuperaCategoria(dr.GetInt32(11));
            }
            else
            {
                oggettoHome.Tipologia = TipologiaRepository.Instance.RecuperaTipologia(dr.GetInt32(8));
            }
            oggettoHome.ProponenteGestore = dr.IsDBNull(12) ? "" : dr.GetString(12);

            oggettoHome.TipoOggetto = TipoOggettoRepository.Instance.RecuperaTipoOggetto(dr.GetInt32(9));

            oggettoHome.LinkLocalizzazione = LinkUtility.LinkLocalizzazione(immagineLocalizzazione, oggettoHome.ID);

            /* SERIO - 27/11/17 */
            oggettoHome.TipoElenco = (TipoElencoEnum)dr.GetInt32(10);

            return(oggettoHome);
        }
Exemple #5
0
        private ProvvedimentoHome RiempiIstanza(SqlDataReader dr)
        {
            if (dr == null)
            {
                throw new ArgumentNullException("dr");
            }

            ProvvedimentoHome provvedimentoHome      = new ProvvedimentoHome();
            string            immagineLocalizzazione = dr.IsDBNull(6) ? "" : dr.GetString(6);

            provvedimentoHome.ID                = dr.GetInt32(0);
            provvedimentoHome._nome_IT          = dr.GetString(1);
            provvedimentoHome._nome_EN          = dr.GetString(2);
            provvedimentoHome._descrizione_IT   = dr.GetString(3);
            provvedimentoHome._descrizione_EN   = dr.GetString(4);
            provvedimentoHome.DataProvvedimento = dr.GetDateTime(5);
            provvedimentoHome.ProvvedimentoID   = dr.GetInt32(7);
            provvedimentoHome.Tipologia         = TipologiaRepository.Instance.RecuperaTipologia(dr.GetInt32(8));
            provvedimentoHome.TipoOggetto       = TipoOggettoRepository.Instance.RecuperaTipoOggetto(dr.GetInt32(9));

            provvedimentoHome.LinkLocalizzazione = LinkUtility.LinkLocalizzazione(immagineLocalizzazione, provvedimentoHome.ID);

            return(provvedimentoHome);
        }
 public LinkManager(string liveriesFolder, string ModsFolder, LinkUtility linkUtility)
 {
     LiveriesFolder = liveriesFolder;
     DcsModsFolder  = ModsFolder;
     LinkUtility    = linkUtility;
 }
Exemple #7
0
        private OggettoInfoBase RiempiIstanzaOggettoInfoAiaRegionale(SqlDataReader dr)
        {
            // Informazioni Comuni tra via e vas
            OggettoInfoBase oggetto = null;

            List <RuoloEntita>         ruoliEntita         = RuoloEntitaRepository.Instance.RecuperaRuoliEntita();
            List <TipoLink>            tipiLink            = TipoLinkRepository.Instance.RecuperaTipiLink();
            List <TipologiaTerritorio> tipologieTerritorio = TipologiaTerritorioRepository.Instance.RecuperaTipologieTerritorio();
            List <StatoProcedura>      statiProcedura;

            while (dr.Read())
            {
                oggetto = new OggettoInfoBase();

                oggetto.ID                 = dr.GetInt32(0);
                oggetto.TipoOggetto        = TipoOggettoRepository.Instance.RecuperaTipoOggetto(dr.GetInt32(1));
                oggetto._nome_IT           = dr.GetString(2);
                oggetto._nome_EN           = dr.GetString(3);
                oggetto._descrizione_IT    = dr.IsDBNull(4) ? "" : dr.GetString(4);
                oggetto._descrizione_EN    = dr.IsDBNull(5) ? "" : dr.GetString(5);
                oggetto.LinkLocalizzazione = dr.IsDBNull(6) ? null : LinkUtility.LinkLocalizzazione(dr.GetString(6), oggetto.ID);
                oggetto.ScadenzaPresentazioneOsservazioni = dr.IsDBNull(7) ? null : (DateTime?)dr.GetDateTime(7);
                oggetto.OggettoProceduraID = dr.GetInt32(8);
            }

            statiProcedura = StatoProceduraAIARepository.Instance.RecuperaStatiProceduraAIA();

            if (oggetto != null)
            {
                // ENTITA
                dr.NextResult();

                while (dr.Read())
                {
                    EntitaCollegata entitaCollegata = new EntitaCollegata();

                    entitaCollegata.Entita = new Entita(dr.GetInt32(0), dr.GetString(1), dr.IsDBNull(3) ? "" : dr.GetString(3),
                                                        dr.IsDBNull(4) ? "" : dr.GetString(4), dr.IsDBNull(5) ? "" : dr.GetString(5),
                                                        dr.IsDBNull(6) ? "" : dr.GetString(6), dr.IsDBNull(7) ? "" : dr.GetString(7),
                                                        dr.IsDBNull(8) ? "" : dr.GetString(8));

                    entitaCollegata.Ruolo = ruoliEntita.Single(x => x.ID == dr.GetInt32(2));

                    oggetto.EntitaCollegate.Add(entitaCollegata);
                }

                // LINK
                dr.NextResult();

                while (dr.Read())
                {
                    LinkCollegato linkCollegato = new LinkCollegato();

                    linkCollegato.Link = new Link(dr.GetInt32(0), dr.GetString(1), dr.GetString(2), dr.GetString(3));
                    linkCollegato.Tipo = tipiLink.Single(x => x.ID == dr.GetInt32(4));

                    oggetto.LinkCollegati.Add(linkCollegato);
                }

                // TERRITORI
                dr.NextResult();

                while (dr.Read())
                {
                    Territorio territorio = new Territorio();

                    territorio.ID          = dr.GetGuid(0);
                    territorio.GenitoreID  = dr.IsDBNull(1) ? null : (Guid?)dr.GetGuid(1);
                    territorio.Tipologia   = tipologieTerritorio.Single(x => x.ID == dr.GetInt32(2));
                    territorio.Nome        = dr.GetString(3);
                    territorio.CodiceIstat = dr.IsDBNull(4) ? "" : dr.GetString(4);

                    oggetto.Territori.Add(territorio);
                }
            }

            return(oggetto);
        }
Exemple #8
0
        private OggettoInfoBase RiempiIstanzaOggettoInfoBase(SqlDataReader dr)
        {
            // Informazioni Comuni tra via e vas
            OggettoInfoBase oggetto = null;

            List <RuoloEntita>               ruoliEntita         = RuoloEntitaRepository.Instance.RecuperaRuoliEntita();
            List <TipoLink>                  tipiLink            = TipoLinkRepository.Instance.RecuperaTipiLink();
            List <TipologiaTerritorio>       tipologieTerritorio = TipologiaTerritorioRepository.Instance.RecuperaTipologieTerritorio();
            IEnumerable <DatoAmministrativo> datiAmministrativi  = DatoAmministrativoRepository.Instance.RecuperaDatiAmministrativi();
            List <Procedura>                 procedure           = ProceduraRepository.Instance.RecuperaProcedure();
            List <StatoProcedura>            statiProcedura;

            while (dr.Read())
            {
                oggetto = new OggettoInfoBase();

                oggetto.ID                 = dr.GetInt32(0);
                oggetto.TipoOggetto        = TipoOggettoRepository.Instance.RecuperaTipoOggetto(dr.GetInt32(1));
                oggetto._nome_IT           = dr.GetString(2);
                oggetto._nome_EN           = dr.GetString(3);
                oggetto._descrizione_IT    = dr.IsDBNull(4) ? "" : dr.GetString(4);
                oggetto._descrizione_EN    = dr.IsDBNull(5) ? "" : dr.GetString(5);
                oggetto.LinkLocalizzazione = dr.IsDBNull(6) ? null : LinkUtility.LinkLocalizzazione(dr.GetString(6), oggetto.ID);
                oggetto.ScadenzaPresentazioneOsservazioni = dr.IsDBNull(7) ? null : (DateTime?)dr.GetDateTime(7);
                oggetto.OggettoProceduraID = dr.GetInt32(8);
            }

            if (oggetto.TipoOggetto.MacroTipoOggetto.Enum.Equals(MacroTipoOggettoEnum.Aia))
            {
                statiProcedura = StatoProceduraAIARepository.Instance.RecuperaStatiProceduraAIA();
            }
            else
            {
                statiProcedura = StatoProceduraVIPERARepository.Instance.RecuperaStatiProceduraVIPERA();
            }

            if (oggetto != null)
            {
                // ENTITA
                dr.NextResult();

                while (dr.Read())
                {
                    EntitaCollegata entitaCollegata = new EntitaCollegata();

                    entitaCollegata.Entita = new Entita(dr.GetInt32(0), dr.GetString(1), dr.IsDBNull(3) ? "" : dr.GetString(3),
                                                        dr.IsDBNull(4) ? "" : dr.GetString(4), dr.IsDBNull(5) ? "" : dr.GetString(5),
                                                        dr.IsDBNull(6) ? "" : dr.GetString(6), dr.IsDBNull(7) ? "" : dr.GetString(7),
                                                        dr.IsDBNull(8) ? "" : dr.GetString(8));

                    entitaCollegata.Ruolo = ruoliEntita.Single(x => x.ID == dr.GetInt32(2));

                    oggetto.EntitaCollegate.Add(entitaCollegata);
                }

                // LINK
                dr.NextResult();

                while (dr.Read())
                {
                    LinkCollegato linkCollegato = new LinkCollegato();

                    linkCollegato.Link = new Link(dr.GetInt32(0), dr.GetString(1), dr.GetString(2), dr.GetString(3));
                    linkCollegato.Tipo = tipiLink.Single(x => x.ID == dr.GetInt32(4));

                    oggetto.LinkCollegati.Add(linkCollegato);
                }

                // TERRITORI
                dr.NextResult();

                while (dr.Read())
                {
                    Territorio territorio = new Territorio();

                    territorio.ID          = dr.GetGuid(0);
                    territorio.GenitoreID  = dr.IsDBNull(1) ? null : (Guid?)dr.GetGuid(1);
                    territorio.Tipologia   = tipologieTerritorio.Single(x => x.ID == dr.GetInt32(2));
                    territorio.Nome        = dr.GetString(3);
                    territorio.CodiceIstat = dr.IsDBNull(4) ? "" : dr.GetString(4);

                    oggetto.Territori.Add(territorio);
                }

                // PROCEDURE COLLEGATE
                dr.NextResult();

                while (dr.Read())
                {
                    ProceduraCollegata proceduraCollegata = new ProceduraCollegata();
                    StatoProcedura     statoProcedura     = null;
                    if (!dr.IsDBNull(2))
                    {
                        statoProcedura = statiProcedura.FirstOrDefault(x => x.ID == dr.GetInt32(2));
                    }

                    proceduraCollegata.OggettoProceduraID = dr.GetInt32(0);
                    proceduraCollegata.Procedura          = procedure.FirstOrDefault(x => x.ID == dr.GetInt32(1));
                    proceduraCollegata.StatoProcedura     = statoProcedura;
                    proceduraCollegata.Data            = dr.IsDBNull(3) ? null : (DateTime?)dr.GetDateTime(3);
                    proceduraCollegata.NumeroDocumenti = dr.GetInt32(4);
                    proceduraCollegata.ViperaAiaID     = dr.IsDBNull(5) ? null : dr.GetString(5);

                    oggetto.ProcedureCollegate.Add(proceduraCollegata);
                }

                // DATI AMMINISTRATIVI
                dr.NextResult();

                while (dr.Read())
                {
                    ValoreDatoAmministrativo valoreDatoAmministrativo = new ValoreDatoAmministrativo();

                    valoreDatoAmministrativo.OggettoProceduraID = dr.GetInt32(0);
                    valoreDatoAmministrativo.Procedura          = procedure.Single(x => x.ID == dr.GetInt32(1));
                    valoreDatoAmministrativo._vBool             = dr.IsDBNull(2) ? null : (bool?)dr.GetBoolean(2);
                    valoreDatoAmministrativo._vDatetime         = dr.IsDBNull(3) ? null : (DateTime?)dr.GetDateTime(3);
                    valoreDatoAmministrativo._vDouble           = dr.IsDBNull(4) ? null : (double?)dr.GetDouble(4);
                    valoreDatoAmministrativo._vString           = dr.IsDBNull(5) ? "" : dr.GetString(5);
                    valoreDatoAmministrativo.DatoAmministrativo = datiAmministrativi.Single(x => x.ID == dr.GetInt32(6));
                    valoreDatoAmministrativo.ViperaAiaID        = dr.IsDBNull(7) ? null : dr.GetString(7);

                    oggetto.DatiAmministrativi.Add(valoreDatoAmministrativo);
                }

                dr.NextResult();

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        StatoProcedura statoProcedura = null;
                        if (!dr.IsDBNull(3))
                        {
                            statoProcedura = statiProcedura.FirstOrDefault(x => x.ID == dr.GetInt32(3));
                        }

                        ValoreDatoAmministrativo valoreDatoAmministrativo = new ValoreDatoAmministrativo();
                        valoreDatoAmministrativo.OggettoProceduraID = dr.GetInt32(0);
                        valoreDatoAmministrativo.Procedura          = procedure.Single(x => x.ID == dr.GetInt32(1));
                        valoreDatoAmministrativo._vBool             = null;
                        valoreDatoAmministrativo._vDatetime         = null;
                        valoreDatoAmministrativo._vDouble           = null;
                        valoreDatoAmministrativo._vString           = statoProcedura != null?statoProcedura.GetNome() : "";

                        valoreDatoAmministrativo.DatoAmministrativo = datiAmministrativi.FirstOrDefault(x => x.ID == dr.GetInt32(2));
                        valoreDatoAmministrativo.ViperaAiaID        = dr.IsDBNull(4) ? null : dr.GetString(4);

                        oggetto.DatiAmministrativi.Add(valoreDatoAmministrativo);
                    }
                }
            }

            return(oggetto);
        }