/// <summary>
        /// Existes the colmeia.
        /// </summary>
        /// <param name="e">The e.</param>
        /// <param name="ap">The ap.</param>
        /// <param name="a">a.</param>
        /// <param name="c">The c.</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        /// <exception cref="Exception.MultinacionalException"></exception>
        /// <exception cref="System.Exception"></exception>
        public static bool ExisteColmeia(Objecto.FichaTecnicaEmpresa e, Objecto.FichaTecnicaApicultor ap, Objecto.FichaTecnicaApiario a, Objecto.FichaTecnicaColmeia c)
        {
            if (e == null || ap == null || a == null || c == null)
            {
                return(false);
            }

            else
            {
                Empresa   fe        = new Empresa(e);
                Apicultor apicultor = new Apicultor(ap);
                Apiario   apiario   = new Apiario(a);
                Colmeia   colmeia   = new Colmeia(c);

                try
                {
                    if (multinacionais.ContainsKey(fe.Nif))
                    {
                        foreach (List <Empresa> lista in multinacionais.Values)
                        {
                            foreach (Empresa empresa in lista)
                            {
                                if (fe == empresa)
                                {
                                    foreach (Apicultor item in empresa.empregados)
                                    {
                                        if (apicultor == item)
                                        {
                                            foreach (Apiario value in item.apiarios)
                                            {
                                                if (value == apiario)
                                                {
                                                    foreach (Colmeia cc in value.colmeias)
                                                    {
                                                        if (cc == colmeia)
                                                        {
                                                            return(true);
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    return(false);
                }
                catch (Exception.MultinacionalException)
                {
                    throw new Exception.MultinacionalException();
                }
                catch (System.Exception)
                {
                    throw new System.Exception();
                }
            }
        }
        //esta
        /// <summary>
        /// Dispenses the worker.
        /// </summary>
        /// <param name="e">The e.</param>
        /// <param name="a">a.</param>
        /// <returns>False error | True good</returns>
        /// <exception cref="Exception.EmpresaException"></exception>
        /// <exception cref="System.Exception"></exception>
        public static bool DipensesWorker(Objecto.FichaTecnicaEmpresa e, Objecto.FichaTecnicaApicultor a)
        {
            if (e == null || a == null)
            {
                return(false);
            }

            else
            {
                try
                {
                    if (Multinacional.ExisteApicultor(e, a))
                    {
                        Empresa   fe = new Empresa(e);
                        Apicultor ap = new Apicultor(a);

                        foreach (List <Empresa> lista in Multinacional.multinacionais.Values)
                        {
                            foreach (Empresa empresa in lista)
                            {
                                if (fe == empresa)
                                {
                                    empresa.empregados.Remove(ap);
                                    empresa.totEmpregados--;
                                    return(true);
                                }
                            }
                        }
                        return(false);
                    }

                    else
                    {
                        return(false);
                    }
                }

                catch (Exception.EmpresaException)
                {
                    throw new Exception.EmpresaException();
                }
                catch (System.Exception)
                {
                    throw new System.Exception();
                }
            }
        }
        /// <summary>
        /// Existes the apicultor.
        /// </summary>
        /// <param name="e">The e.</param>
        /// <param name="ap">The ap.</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        /// <exception cref="Exception.MultinacionalException"></exception>
        /// <exception cref="System.Exception"></exception>
        public static bool ExisteApicultor(Objecto.FichaTecnicaEmpresa e, Objecto.FichaTecnicaApicultor ap)
        {
            if (e == null || ap == null)
            {
                return(false);
            }

            else
            {
                Empresa   fe        = new Empresa(e);
                Apicultor apicultor = new Apicultor(ap);

                try
                {
                    if (multinacionais.ContainsKey(fe.Nif))
                    {
                        foreach (List <Empresa> lista in multinacionais.Values)
                        {
                            foreach (Empresa empresa in lista)
                            {
                                if (fe == empresa)
                                {
                                    foreach (Apicultor item in empresa.empregados)
                                    {
                                        if (apicultor == item)
                                        {
                                            return(true);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    return(false);
                }
                catch (Exception.MultinacionalException)
                {
                    throw new Exception.MultinacionalException();
                }
                catch (System.Exception)
                {
                    throw new System.Exception();
                }
            }
        }
        //esta
        /// <summary>
        /// Searches for determinate worker.
        /// </summary>
        /// <param name="e">The e.</param>
        /// <param name="a">apicultur</param>
        /// <returns>False error | True good and posicao of apicultor</returns>
        public static bool SearchWorker(Objecto.FichaTecnicaEmpresa e, Objecto.FichaTecnicaApicultor a)
        {
            if (e == null || a == null)
            {
                return(false);
            }

            else
            {
                if (Multinacional.ExisteApicultor(e, a))
                {
                    return(true);
                }

                else
                {
                    return(false);
                }
            }
        }
        // tá
        /// <summary>
        /// Agendars the acao.
        /// </summary>
        /// <param name="e">The e.</param>
        /// <param name="ap">The ap.</param>
        /// <param name="a">a.</param>
        /// <param name="c">The c.</param>
        /// <param name="ac">The ac.</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        /// <exception cref="Exception.EmpresaException"></exception>
        /// <exception cref="System.Exception"></exception>
        public static bool AgendarAcao(Objecto.FichaTecnicaEmpresa e, Objecto.FichaTecnicaApicultor ap, Objecto.FichaTecnicaApiario a, Objecto.FichaTecnicaColmeia c, Objecto.Acao ac)
        {
            int dia = ac.Data.DayOfYear - 1;
            int k   = 0;

            if (e == null || ap == null || c == null || a == null || ac == null)
            {
                return(false);
            }

            else
            {
                try
                {
                    if (!Multinacional.ExisteAccao(e, ap, a, c, ac))
                    {
                        Empresa fe = new Empresa(e);

                        if (Ano.TemEventosNumDia(fe, ac))
                        {
                            return(false);
                        }

                        else
                        {
                            foreach (List <Empresa> lista in Multinacional.multinacionais.Values)
                            {
                                foreach (Empresa empresa in lista)
                                {
                                    if (fe == empresa)
                                    {
                                        Ano.InsereAcaoAno(empresa, ac);
                                    }
                                }
                            }
                        }

                        if (Colmeia.Intervention(e, ap, a, c, ac) && k == 1)
                        {
                            return(true);
                        }

                        return(false);
                    }

                    else
                    {
                        return(false);
                    }
                }

                catch (Exception.EmpresaException)
                {
                    throw new Exception.EmpresaException();
                }
                catch (System.Exception)
                {
                    throw new System.Exception();
                }
            }
        }