コード例 #1
0
ファイル: Guardar.cs プロジェクト: moisesiq/aupaga
        public static ResAcc ParteEquivalencia(int iParteID, int iParteIDEquivalente)
        {
            // Se obtiene el grupo de cualquiera de las partes
            var oParteEq1 = Datos.GetEntity <ParteEquivalente>(c => c.ParteID == iParteID);
            var oParteEq2 = Datos.GetEntity <ParteEquivalente>(c => c.ParteID == iParteIDEquivalente);
            // Si ninguna de las partes tiene grupo, se crea uno nuevo
            int iGrupoID = 0;

            if (oParteEq1 == null && oParteEq2 == null)
            {
                var oEquivalentes = Datos.GetListOf <ParteEquivalente>();
                iGrupoID = (oEquivalentes.Count > 0 ? oEquivalentes.Max(c => c.GrupoID) : 0);
                iGrupoID++;
            }
            else
            {
                iGrupoID = (oParteEq1 == null ? oParteEq2.GrupoID : oParteEq1.GrupoID);
            }

            // Se agrega la equivalencia de la parte 1, por si no existiera
            if (oParteEq1 == null)
            {
                oParteEq1 = new ParteEquivalente()
                {
                    GrupoID = iGrupoID, ParteID = iParteID
                };
                oParteEq1.RealizoUsuarioID = Theos.UsuarioID;
                Datos.Guardar <ParteEquivalente>(oParteEq1);
            }

            // Se agrega la equivalencia de la parte 2, según aplique
            if (oParteEq2 == null)
            {
                oParteEq2 = new ParteEquivalente()
                {
                    GrupoID = iGrupoID, ParteID = iParteIDEquivalente
                };
                oParteEq2.RealizoUsuarioID = Theos.UsuarioID;
                Datos.Guardar <ParteEquivalente>(oParteEq2);
            }

            // Se verifica si las dos ya tenían grupo, pero diferente, en cuyo caso todos se van a un mismo grupo
            if (oParteEq1.GrupoID != oParteEq2.GrupoID)
            {
                var oPartesEq2 = Datos.GetListOf <ParteEquivalente>(c => c.GrupoID == oParteEq2.GrupoID);
                foreach (var oEq in oPartesEq2)
                {
                    oEq.GrupoID          = oParteEq1.GrupoID;
                    oEq.RealizoUsuarioID = Theos.UsuarioID;
                    Datos.Guardar <ParteEquivalente>(oEq);
                }
            }

            return(new ResAcc(true));
        }
コード例 #2
0
ファイル: Guardar.cs プロジェクト: moisesiq/aupaga
        public static ResAcc ParteEquivalencia(int iParteID, int iParteIDEquivalente)
        {
            // Se obtiene el grupo de cualquiera de las partes
            var oParteEq1 = Datos.GetEntity<ParteEquivalente>(c => c.ParteID == iParteID);
            var oParteEq2 = Datos.GetEntity<ParteEquivalente>(c => c.ParteID == iParteIDEquivalente);
            // Si ninguna de las partes tiene grupo, se crea uno nuevo
            int iGrupoID = 0;
            if (oParteEq1 == null && oParteEq2 == null)
            {
                var oEquivalentes = Datos.GetListOf<ParteEquivalente>();
                iGrupoID = (oEquivalentes.Count > 0 ? oEquivalentes.Max(c => c.GrupoID) : 0);
                iGrupoID++;
            }
            else
            {
                iGrupoID = (oParteEq1 == null ? oParteEq2.GrupoID : oParteEq1.GrupoID);
            }

            // Se agrega la equivalencia de la parte 1, por si no existiera
            if (oParteEq1 == null)
            {
                oParteEq1 = new ParteEquivalente() { GrupoID = iGrupoID, ParteID = iParteID };
                oParteEq1.RealizoUsuarioID = Theos.UsuarioID;
                Datos.Guardar<ParteEquivalente>(oParteEq1);
            }

            // Se agrega la equivalencia de la parte 2, según aplique
            if (oParteEq2 == null)
            {
                oParteEq2 = new ParteEquivalente() { GrupoID = iGrupoID, ParteID = iParteIDEquivalente };
                oParteEq2.RealizoUsuarioID = Theos.UsuarioID;
                Datos.Guardar<ParteEquivalente>(oParteEq2);
            }

            // Se verifica si las dos ya tenían grupo, pero diferente, en cuyo caso todos se van a un mismo grupo
            if (oParteEq1.GrupoID != oParteEq2.GrupoID)
            {
                var oPartesEq2 = Datos.GetListOf<ParteEquivalente>(c => c.GrupoID == oParteEq2.GrupoID);
                foreach (var oEq in oPartesEq2)
                {
                    oEq.GrupoID = oParteEq1.GrupoID;
                    oEq.RealizoUsuarioID = Theos.UsuarioID;
                    Datos.Guardar<ParteEquivalente>(oEq);
                }
            }

            return new ResAcc(true);
        }