예제 #1
0
        //Funcion agregar
        public bool Agregar(BE.ReclamoConsultaContacto pDetalle)
        {
            bool         ret;
            ITransaction transaction = session.BeginTransaction();

            try
            {
                session.Save(pDetalle);

                /*int interno = pDetalle.Interno;
                 *
                 * //por cada medio (email/telefonos)
                 * foreach (var medio in pDetalle.RefReclamoConsultaMedio)
                 * {
                 *  medio.Contacto = interno;
                 *
                 *  BE.RefReclamoConsultaMedio medios = session.Query<BE.RefReclamoConsultaMedio>().Where(a => a.Direccion == medio.Direccion && a.Contacto == medio.Contacto).SingleOrDefault();
                 *  //var ReclamoConsultaMedio = session.Get<BE.RefReclamoConsultaMedio>(medio.Interno);
                 *  if (medios == null)
                 *      session.Save(medio);
                 *  else
                 *      session.Merge(medio);
                 * }*/

                transaction.Commit();
                ret = true;
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                throw ex;
            }

            return(ret);
        }
예제 #2
0
 //Agregar
 public IHttpActionResult Agregar(BE.ReclamoConsultaContacto rec)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     DAL.CRUDRefReclamoConsultaContacto oCRUDRec = new DAL.CRUDRefReclamoConsultaContacto();
     try
     {
         oCRUDRec.Agregar(rec);
     }
     catch (Exception ex)
     {
         throw ex;
     }
     return(Ok(rec));
 }
예제 #3
0
        public int Agregar(BE.ReclamoConsulta pRefReclamoConsulta)
        {
            ITransaction transaction = session.BeginTransaction();

            try
            {
                session.Clear();

                //busca contacto
                int internoContacto = 0;
                BE.ReclamoConsultaContacto contacto = session.Query <BE.ReclamoConsultaContacto>().Where(a => a.DocNro == pRefReclamoConsulta.RefReclamoConsultaContacto.DocNro && a.DocTipo == pRefReclamoConsulta.RefReclamoConsultaContacto.DocTipo).SingleOrDefault();
                if (contacto == null)
                {
                    session.Save(pRefReclamoConsulta.RefReclamoConsultaContacto);
                    internoContacto = pRefReclamoConsulta.RefReclamoConsultaContacto.Interno;
                }
                else
                {
                    internoContacto = contacto.Interno;
                }
                var reclamo = session.Get <BE.ReclamoConsulta>(pRefReclamoConsulta.Interno);

                if (reclamo == null)
                {
                    pRefReclamoConsulta.Contacto = internoContacto;
                    session.Save(pRefReclamoConsulta);
                }

                else
                {
                    pRefReclamoConsulta.Contacto = internoContacto;
                    session.Merge(pRefReclamoConsulta);
                }

                int interno = pRefReclamoConsulta.Interno;

                //por cada medio (email/telefonos)
                foreach (var medio in pRefReclamoConsulta.RefReclamoConsultaContacto.RefReclamoConsultaMedio)
                {
                    medio.Contacto = internoContacto;

                    BE.ReclamoConsultaMedio medios = session.Query <BE.ReclamoConsultaMedio>().Where(a => a.Direccion == medio.Direccion && a.Contacto == medio.Contacto).SingleOrDefault();
                    //var ReclamoConsultaMedio = session.Get<BE.RefReclamoConsultaMedio>(medio.Interno);
                    if (medios == null)
                    {
                        session.Save(medio);


                        BE.ReclamoConsultaResponder Responder = new BE.ReclamoConsultaResponder();

                        Responder.ReclamoConsulta = interno;
                        Responder.Medio           = medio.Interno;

                        session.Save(Responder);
                    }
                    else
                    {
                        BE.ReclamoConsultaResponder Responder = new BE.ReclamoConsultaResponder();

                        Responder.ReclamoConsulta = interno;
                        Responder.Medio           = medios.Interno;

                        session.Save(Responder);
                    }
                }



                //Detalle
                var detalle = session.Get <BE.ReclamoConsultaDetalle>(interno);
                if (detalle == null)
                {
                    pRefReclamoConsulta.RefReclamoConsultaDetalle.ReclamoConsulta = interno;
                    session.Save(pRefReclamoConsulta.RefReclamoConsultaDetalle);
                }
                else
                {
                    session.Merge(pRefReclamoConsulta.RefReclamoConsultaDetalle);
                }

                session.Flush();
                transaction.Commit();
                return(interno);
            }

            catch (Exception ex)
            {
                transaction.Rollback();
                throw ex;
            }
        }