/// <summary>
    /// Metodo que me permite notificar al WebService de Tattersall Movil que se publicó un remate, 
    /// metodo solo para los Remate, NO para la Venta Directa
    /// </summary>
    /// <param name="remate">objeto remate que creó o publicó</param>
    public static void NotificarMovilRemate(co_re_remates remate)
    {
      try
      {
        getTransaccion();
        //1. valido si el remate a sido publicado
        if (remate.id_remateEstadoWeb.id == PUBLICADO)
        {
          //realizo la instancia del wsdl para la notificacion.
          WsNotificacion notificacion = new WsNotificacionClient();

          //obtengo todos los lotes del remate con la opcion de canal movil
          var lotes = new bf_rl_loteos().getLotesNotificacion(remate.id_remate, CANAL_MOVIL);
          if (!lotes.Any())
          {
            return;
          }
          string subcategoriasMovil = lotes.Aggregate(string.Empty, (current, lote) => current + lote.id_mosubcategoria + ",");
          if (subcategoriasMovil.Length > 0)
          {
            subcategoriasMovil = subcategoriasMovil.Substring(0, (subcategoriasMovil.Length - 1));
          }
          var usuariosWeb = new bf_ca_usuariosweb().getUsuariosSubcategoriasMovil(subcategoriasMovil);
          //verifico si hay usuario a los que notificar de lo contrario no hago nada
          if (usuariosWeb.Any())
          {
            string nombreCompleto = string.Empty;
            IList<Usuario> usuarios = new List<Usuario>();
            Publicacion publicacion = new Publicacion
            {
              esRemate = true,
              id = remate.id_remate,
              titulo = remate.rem_nombre
            };

            foreach (var usu in usuariosWeb)
            {
              int uuid = usu.id_usuarioWeb;
              nombreCompleto = usu.pe_nombrecompleto;
              usuarios.Add(new Usuario { uuid = uuid.ToString(), nombre = nombreCompleto });
            }
            publicacion.Usuarios = usuarios.ToArray();

            NotificarRequest notificarRequest = new NotificarRequest
            {
              DatosTransaccion = _transaccion,
              Publicacion = publicacion
            };

            NotificarResponse res = notificacion.Notificar(notificarRequest);
            GuardarResponseMovil(res, 0, remate.id_remate, publicacion);
          }
        }
      }
      catch (Exception)
      {
        //throw new Exception(ex.Message);
      }
    }
 public Comprar(Publicacion publicacion, Decimal codigoUsuario)
 {
     InitializeComponent();
     publicacionAComprar = publicacion;
     codigoUser = codigoUsuario;
     obtenerVendedor();
     popular();
 }
 public Ofertar(Publicacion publicacion, Decimal codigoComprador)
 {
     InitializeComponent();
     publicacionAOfertar = publicacion;
     codigoUsuario = codigoComprador;
     fecha = FechaSistema.Instance.fecha;
     this.ObtenerOfertaActual();
     this.popular();
 }
Beispiel #4
0
        public OfertaDlg(Publicacion publi)
        {
            InitializeComponent();
            this.CenterToScreen();
            publicacion = publi;
            ofertaMasGrande = Oferta.cargarOfertaMasAlta(publicacion.Cod_Publicacion);

            if (ofertaMasGrande == 0)
            {
                txtOfertaActual.Text = "No hay ofertas!";
            }
            else txtOfertaActual.Text = Convert.ToString(ofertaMasGrande);
        }
        private void borrarBoton_Click(object sender, EventArgs e)
        {
            this.publicacionesGrid.DataSource = publicaciones;
            this.publicacionesGrid.Refresh();

            foreach (int index in this.rubrosCheckList.CheckedIndices)
            {
                this.rubrosCheckList.SetItemCheckState(index, CheckState.Unchecked);
            }

            this.descripcionTextBox.Text = "";
            this.publicacionSeleccionada = new Publicacion();
        }
        public FrmDetallePublicacion(Publicacion unaPublicacion)
        {
            InitializeComponent();

            CurrentPublication = unaPublicacion;
            //Traigo todos los objetos relacionados con la publicación
            CurrentPublication.GetObjectsById();

            //Si la publicación no es del usuario logeado y el usuario logeado es un cliente le permito
            //ver las opciones de comprar/ofertar/preguntar (Todas los los controles respectivos a estas funciones
            //tienen enabled=false como default
            if (CurrentPublication.UsuarioCreador.ID != SessionManager.CurrentUser.ID)
            {
                if (CurrentPublication.RecibirPreguntas)
                    lblPreguntar.Enabled = true;
                else
                    lblErrorPreguntar.Visible = true;

                if (CurrentPublication.TipoPublicacion.Descripcion == "Subasta")
                {
                    lblOfertar.Enabled = true;
                    txtMonto.Enabled = true;
                    lblMontoText.Enabled = true;
                }
                else
                {
                    LblComprar.Enabled = true;
                    lblCantidadText.Enabled = true;
                    txtCantidad.Enabled = true;
                }
            }
            else
            {
                lblErrorComprarOfertar.Visible = true;
                lblErrorPreguntar.Visible = true;
            }

            //Oculto los controles que no corresponden
            if (CurrentPublication.TipoPublicacion.Descripcion == "Subasta")
            {
                LblComprar.Visible = false;
                lblCantidadText.Visible = false;
                txtCantidad.Visible = false;
            }
            else
            {
                lblOfertar.Visible = false;
                txtMonto.Visible = false;
                lblMontoText.Visible = false;
            }
        }
Beispiel #7
0
        public ActionResult ActualizarMantenimiento(int?id, [Bind] Publicacion publicacion)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }
            if (ModelState.IsValid)
            {
                conexion.ActualizarMantenimiento(publicacion);
                return(RedirectToAction("VerMantenimiento"));
            }

            return(View(conexion));
        }
Beispiel #8
0
        public ActionResult ActualizarAdministrativa(int?id, [Bind] Publicacion publicacion)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }
            if (ModelState.IsValid)
            {
                conexion.ActualizarAdministrativa(publicacion);
                return(RedirectToAction("VerAdministrativa"));
            }

            return(View(conexion));
        }
        public ActionResult Create([Bind(Include = "idPublicacion,idCategoria,NombrePublicacion,Descripcion,FechaPublicacion,idUsuario,idTipoPublicacion,estatus")] Publicacion publicacion)
        {
            if (ModelState.IsValid)
            {
                db.Publicacion.Add(publicacion);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.idCategoria       = new SelectList(db.Categoria, "idCategoria", "NombreCategoria", publicacion.idCategoria);
            ViewBag.id                = new SelectList(db.Usuario, "idUsuario", "NombreUsuario", publicacion.idUsuario);
            ViewBag.idTipoPublicacion = new SelectList(db.TipoPublicacion, "idTipoPublicacion", "Descripcion", publicacion.idTipoPublicacion);
            return(View(publicacion));
        }
Beispiel #10
0
        // GET: Publicacions/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Publicacion publicacion = await db.Publicacions.FindAsync(id);

            if (publicacion == null)
            {
                return(HttpNotFound());
            }
            return(View(publicacion));
        }
        private Oferta deserializarOfertaConPublicacionConDetalle(Dictionary <string, object> fila)
        {
            Oferta      oferta      = new Oferta();
            Publicacion publicacion = new Publicacion();

            publicacion.id          = toLong(fila["id_publicacion"]);
            publicacion.descripcion = fila["descripcion"].ToString();
            oferta.publicacion      = publicacion;
            oferta.fechaOferta      = toDate(fila["fecha_oferta"]);
            oferta.montoOfertado    = toDouble(fila["monto_ofertado"]);
            oferta.concretada       = toBool(fila["concretada"]);

            return(oferta);
        }
Beispiel #12
0
        // GET: Publicacion/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Publicacion publicacion = db.Publicacions.Find(id);

            if (publicacion == null)
            {
                return(HttpNotFound());
            }
            return(View(publicacion));
        }
        public async Task <IHttpActionResult> DeletePublicacion(int id)
        {
            Publicacion publicacion = await db.Publicacions.FindAsync(id);

            if (publicacion == null)
            {
                return(NotFound());
            }

            db.Publicacions.Remove(publicacion);
            await db.SaveChangesAsync();

            return(Ok(publicacion));
        }
        public DetallePublicacion(Publicacion unaPublicacion)
        {
            InitializeComponent();
            this.CenterToScreen();

            publi = unaPublicacion;

            txtUsername.Text = Usuario.obtenerUsername(publi.ID_Vendedor);

            txtCodPublicacion.Text = Convert.ToString(publi.Cod_Publicacion);
            txtCodVisibilidad.Text = Convert.ToString(publi.Cod_Visibilidad);
            txtDescripcion.Text = publi.Descripcion;
            txtEstadoPublicacion.Text = publi.Estado_Publicacion;
            txtFechaFinalizacion.Text = Convert.ToString(publi.Fecha_Vto);
            txtFechaInicio.Text = Convert.ToString(publi.Fecha_Inicio);

            if (publi.Tipo_Publicacion == "Subasta")
            {
                actualizarOfertaDetallePublicacion();
                lblPrecio.Text = "Oferta actual";
            }
            else
             txtPrecio.Text = Convert.ToString(publi.Precio);

            txtStockDisponible.Text = Convert.ToString(publi.Stock);
            txtStockInicial.Text = Convert.ToString(publi.Stock_Inicial);
            txtTipoPublicacion.Text = publi.Tipo_Publicacion;

            cargarTxtRubros();

            if (!unaPublicacion.Permiso_Preguntas)
            {
                lblPregunta.Text = "Esta publicación no admite preguntas.";
                txtPregunta.Enabled = false;
                btnEnviar.Enabled = false;
                btnLimpiar.Enabled = false;
            }

            if (publi.Tipo_Publicacion != "Compra Inmediata")
                btnComprar.Text = "Ofertar";

            if (publi.ID_Vendedor == Interfaz.usuario.ID_User)
            {
                btnComprar.Enabled = false;
                btnEnviar.Enabled = false;
                btnLimpiar.Enabled = false;
                txtPregunta.Text = "No puede realizar preguntas o comprarse a si mismo.";
                txtPregunta.Enabled = false;
            }
        }
        public void CambiarEstadoPublicacion(int id)
        {
            Publicacion publicacion = context.Publicacion.Where(e => e.Id == id).FirstOrDefault();

            if (publicacion.Estado == 1)
            {
                publicacion.Estado = 0; //Deshabilita
            }
            else
            {
                publicacion.Estado = 1; //Habilita nuevamente
            }

            context.SaveChanges();
        }
Beispiel #16
0
        public ActionResult ActualizarProgramador(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }
            Publicacion publicacion = conexion.FiltrarDatosProgramador(id);

            if (publicacion == null)
            {
                return(HttpNotFound());
            }

            return(View(publicacion));
        }
Beispiel #17
0
        public ActionResult EliminarAdministrativa(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }
            Publicacion publicacion = conexion.FiltrarDatosAdministrativa(id);

            if (publicacion == null)
            {
                return(HttpNotFound());
            }

            return(View(publicacion));
        }
        public static Publicacion GetPublicacion(int idPublicacion, int idUsuario)
        {
            DataBaseHelper db = new DataBaseHelper(ConfigurationManager.AppSettings["connectionString"]);

            using (db.Connection)
            {
                db.BeginTransaction();

                Publicacion publicacion = GetPublicacion(idPublicacion, idUsuario, db);

                db.EndConnection();

                return publicacion;
            }
        }
        public static int Comprar(Publicacion publicacionSeleccionada, Usuario usuarioActivo, string cantidad, bool envio)
        {
            DataBaseHelper db = new DataBaseHelper(ConfigurationManager.AppSettings["connectionString"]);

            using (db.Connection)
            {
                db.BeginTransaction();

                int nroCompra = Comprar(publicacionSeleccionada, usuarioActivo, cantidad, envio, db);

                db.EndConnection();

                return nroCompra;
            }
        }
Beispiel #20
0
        public ActionResult EliminarMantenimiento(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }
            Publicacion publicacion = conexion.FiltrarDatosMantenimiento(id);

            if (publicacion == null)
            {
                return(HttpNotFound());
            }

            return(View(publicacion));
        }
Beispiel #21
0
        /// <summary>
        /// seleeciona publicacion de ListTextBox y agrega a lista de ventas de ser posible
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnVender_Click(object sender, EventArgs e)
        {
            Publicacion venta = (Publicacion)lstStock.SelectedItem;

            if (!(lstStock.SelectedItem is null))
            {
                if (vendedor + venta)
                {
                    MessageBox.Show($"Venta realizada con exito", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("No hay mas stock", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        private void ver_button_Click(object sender, EventArgs e)
        {
            Publicacion publicacion = (Publicacion)listadoPublicaciones.CurrentRow.DataBoundItem;

            if (publicacion.tipo.descripcion == "Compra inmediata")
            {
                VerDetallePublicacionInmediata verDetallePublicacionInmediata = new VerDetallePublicacionInmediata(publicacion);
                verDetallePublicacionInmediata.Show();
            }
            else if (publicacion.tipo.descripcion == "Subasta")
            {
                VerDetallePublicacionSubasta verDetallePublicacionSubasta = new VerDetallePublicacionSubasta(publicacion);
                verDetallePublicacionSubasta.Show();
            }
        }
 private void preguntar_button_Click(object sender, EventArgs e)
 {
     if (FormValidate.isUserLoggedIn())
     {
         Publicacion publicacion = (Publicacion)listadoPublicaciones.CurrentRow.DataBoundItem;
         if (Session.usuario.id != publicacion.usuario.id)
         {
             CuadroPreguntar cuadroPreguntar = new CuadroPreguntar(publicacion.id);
         }
         else
         {
             MessageBox.Show("No se pueden hacer preguntas a tus propias publicaciones.");
         }
     }
 }
Beispiel #24
0
        internal void comprar(Publicacion publicacion, Usuario user, int cantidad, bool hayEnvio)
        {
            List <SqlParameter> parametros = new List <SqlParameter>();

            db.agregarParametro(parametros, "@publicacion", publicacion.id);
            db.agregarParametro(parametros, "@fecha_operacion", Sistema.Instance.getDate());
            db.agregarParametro(parametros, "@monto", publicacion.precio);
            db.agregarParametro(parametros, "@cantidad", cantidad);
            db.agregarParametro(parametros, "@precio_envio", hayEnvio ? PRECIO_DE_ENVIO : 0);
            db.agregarParametro(parametros, "@factura", publicacion.factura.id);
            //db.agregarParametro(parametros, "@descripcion", publicacion.descripcion);
            db.agregarParametro(parametros, "@comprador", user.id);

            db.ejecutarStoredProcedure("CHAR_DE_30.st_insertarCompraSubasta", parametros);
        }
        public ConfirmacionCompraForm(Compra compra, Publicacion publicacion)
        {
            InitializeComponent();
            compraA = compra;
            publicA = publicacion;

            this.PublicacionTextBox.Text     += publicacion.id.ToString() + "/" + publicacion.espectaculo.descripcion;
            this.FechaTextBox.Text           += publicacion.fechaEvento;
            this.MedioPagoTextBox.Text       += compra.medioPago.ToString();
            this.CantUbicacionesTextBox.Text += compra.ubicaciones.Count.ToString();
            this.MontoTextView.Text           = compra.total.ToString();
            compra.ubicaciones.ForEach(elem => {
                this.UbicacionesListTextBox.Text += "● " + elem.ToString() + '\n';
            });
        }
 public ActionResult Editar(int id, Publicacion publicacion)
 {
     if (ModelState.IsValid)
     {
         _context.Entry(publicacion).State = EntityState.Modified;
         _context.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Disabled    = "";
     ViewBag.Titulo      = "Editar";
     ViewBag.Descripcion = "Edita una entrada existente en tu blog";
     ViewBag.Imagen      = "/img/home-bg.jpg";
     ViewBag.Accion      = "Editar";
     return(View("Formulario", publicacion));
 }
        public async Task <IHttpActionResult> ValidarDuplicados(Publicacion model)
        {
            try
            {
                var result = await _repository.ValidarDuplicados(model);

                return(Ok(result));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                return(InternalServerError(e));
            }
        }
Beispiel #28
0
        private void dtgListado_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //10 es la columna que contiene el boton de ver, las demas no deberian tener accion alguna
            if (e.ColumnIndex != 10)
            {
                return;
            }

            //si toco boton de ver, seteo la publicacion obtenida de la grilla y abro el formulario de detalle
            //de la publicacion
            Publicacion             unaPub      = listaDePubs.Find(pub => pub.Codigo == (int)dtgListado.Rows[e.RowIndex].Cells[0].Value);
            frmDetallePublicGeneral _frmDetalle = new frmDetallePublicGeneral();

            _frmDetalle.AbrirParaVer(unaPub, this, unUsuario);
        }
 [HttpPut] //lo utilizamos para actualizar
 public Publicacion Put(Publicacion publicacion)
 {
     using (var context = new PublicacionContext())
     {
         var publicacionactualizar = context.Publicaciones.FirstOrDefault(x => x.id == publicacion.id);
         publicacionactualizar.Usuario          = publicacion.Usuario;
         publicacionactualizar.MeGusta          = publicacion.MeGusta;
         publicacionactualizar.MeDisgusta       = publicacion.MeDisgusta;
         publicacionactualizar.FechaPublicacion = publicacion.FechaPublicacion;
         publicacionactualizar.EsPrivado        = publicacion.EsPrivado;
         publicacionactualizar.VecesCompartido  = publicacion.VecesCompartido;
         context.SaveChanges();
         return(publicacionactualizar);
     }
 }
Beispiel #30
0
        // GET: Publicacions/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Publicacion publicacion = db.Publicaciones.Find(id);

            if (publicacion == null)
            {
                return(HttpNotFound());
            }
            ViewBag.UsuarioId = new SelectList(db.Usuarios, "IdUsuario", "Nombre", publicacion.UsuarioId);
            return(View(publicacion));
        }
        public IHttpActionResult Post(Publicacion publicacion)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            using (var context = new InstagramContext())
            {
                context.Publicaciones.Add(publicacion);
                context.SaveChanges();

                return(Ok(publicacion));
            }
        }
Beispiel #32
0
        public List <Publicacion> getPublicacionesPorPagina(int pagina, Nullable <int> empresaId = null)
        {
            string             function          = "SELECT * FROM [TheBigBangQuery].[GetPublicacionesPorPaginaSinFiltroDeEmpresa](@pagina, @empresa, @fechaActual)";
            SqlDataReader      reader            = null;
            List <Publicacion> publicacionesList = new List <Publicacion>();

            try
            {
                SqlCommand command = new SqlCommand(function);
                command.CommandText = function;

                command.Parameters.AddWithValue("@pagina", pagina);
                if (empresaId != null)
                {
                    command.Parameters.AddWithValue("@empresa", empresaId);
                }
                else
                {
                    command.Parameters.AddWithValue("@empresa", DBNull.Value);
                }

                command.Parameters.AddWithValue("@fechaActual", Generals.getFecha());

                reader = DatabaseConection.executeQuery(command);
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        Publicacion publi = ParserPublicaciones.parsearPublicacionDelReader(reader);
                        publi.espectaculo.descripcion = reader.IsDBNull(6) ? null : reader.GetSqlString(6).ToString();
                        publi.espectaculo.direccion   = reader.IsDBNull(7) ? null : reader.GetSqlString(7).ToString();
                        publi.gradoPublicacion.nivel  = reader.IsDBNull(8) ? null : reader.GetSqlString(8).ToString();
                        publicacionesList.Add(publi);
                    }
                }
                return(publicacionesList);
            }
            catch (Exception ex)
            {
                throw new DataNotFoundException("No se han encontrado publicaciones para la pagina seleccionada");
            }
            finally {
                if (reader != null && !reader.IsClosed)
                {
                    reader.Close();
                }
            }
        }
Beispiel #33
0
 public Publicacion Put(Publicacion publicacion)
 {
     using (var context = new PublicacionesContext())
     {
         var publicacionAct = context.Publicaciones.FirstOrDefault(x => x.Id == publicacion.Id);
         publicacionAct.Usuario          = publicacion.Usuario;
         publicacionAct.Descripcion      = publicacion.Descripcion;
         publicacionAct.FechaPublicacion = publicacion.FechaPublicacion;
         publicacionAct.MeGusta          = publicacion.MeGusta;
         publicacionAct.MeDisgusta       = publicacion.MeDisgusta;
         publicacionAct.VecesCompartido  = publicacion.VecesCompartido;
         publicacionAct.EsPrivada        = publicacion.EsPrivada;
         context.SaveChanges();
         return(publicacion);
     }
 }
Beispiel #34
0
        public static int altaPublicacion(Publicacion publicacion)
        {
            SqlConnection connection = new SqlConnection(Connection.getStringConnection());
            SqlCommand    comm       = connection.CreateCommand();

            comm.CommandText = "INSERT INTO EL_REJUNTE.Publicacion (publi_descripcion , publi_estado_id, publi_fecha_inicio, publi_fecha_evento, publi_codigo, publi_rubro_id, publi_usuario_id, publi_espectaculo_id, publi_grado_id, publi_stock) " +
                               "VALUES ( '" + publicacion.descripcion + "', " + publicacion.estado.id + ", '" + VariablesGlobales.FechaHoraSistemaString + "', '" + publicacion.fecha_evento.ToString("yyyy-MM-dd HH:mm:ss") + "', " +
                               publicacion.codigo + ", " + publicacion.rubro.id + ", " + publicacion.user.id + ", (SELECT espec_id FROM EL_REJUNTE.Espectaculo WHERE espec_descripcion = '" + publicacion.espectaculo.descripcion + "' AND espec_fecha_venc = '" + publicacion.espectaculo.fecha_venc.ToString("yyyy-MM-dd HH:mm:ss") + "'), " + publicacion.grado.id + ", " + publicacion.stock + "); SELECT SCOPE_IDENTITY()";
            comm.Connection = connection;
            comm.Connection.Open();
            int rows = Convert.ToInt32(comm.ExecuteScalar());

            comm.Connection.Close();
            connection.Close();
            return(rows);
        }
Beispiel #35
0
        public JsonResult crearPublicacion(Usuario usuario, Publicacion publicacion)
        {
            Usuario user     = db.Usuarios.Where(u => u.Email == usuario.Email).FirstOrDefault();
            var     publicar = publicacion;

            publicacion.Usuario   = user;
            publicacion.UsuarioId = user.IdUsuario;
            publicacion.MeGusta   = 0;

            if (ModelState.IsValid)
            {
                db.Publicaciones.Add(publicacion);
                db.SaveChanges();
            }
            return(Json(publicacion, JsonRequestBehavior.AllowGet));
        }
        public int update(Publicacion publicacion, List <DateTime> fechas, List <Dictionary <string, object> > ubicaciones)
        {
            if (ubicaciones != null)
            {
                this.daoPublicaion.deleteUbicaciones(publicacion.Codigo);
                this.saveUbicaciones(publicacion, ubicaciones);
            }

            if (fechas != null)
            {
                this.daoPublicaion.deleteFechas(publicacion.Codigo);
                this.daoPublicaion.saveDates(publicacion.Codigo, fechas);
            }

            return(this.daoPublicaion.update(publicacion));
        }
Beispiel #37
0
        private Publicacion MapToPublicacion(PublicacionInputModel publicacionInputModel)
        {
            var publicacion = new Publicacion
            {
                Id        = publicacionInputModel.Id,
                Titulo    = publicacionInputModel.Titulo,
                Detalle   = publicacionInputModel.Detalle,
                IdCasa    = publicacionInputModel.IdCasa,
                Fecha     = publicacionInputModel.Fecha,
                IdUsuario = publicacionInputModel.IdUsuario,
                Imagenes  = publicacionInputModel.Imagenes,
                Tipo      = publicacionInputModel.Tipo
            };

            return(publicacion);
        }
    /// <summary>
    /// Metodo que Notifica al Usuario Movil acerca del Lote de acuerdo a sus preferencias
    /// </summary>
    /// <param name="idLote"></param>
    /// <param name="idRemate"></param>
    public static string NotificarTest(int idLote, int idRemate)
    {
      string mensaje = string.Empty;
      try
      {
        getTransaccion();
        co_rl_loteos lote = new bf_rl_loteos().GetData(idLote);
        co_re_remates remate = new bf_re_remates().GetData(idRemate);
        //valido que el remate no sea nulo
        if (remate != null)
        {
          //valido q el remate esta publicado
          if (remate.id_remateEstadoWeb.id == PUBLICADO)
          {
            //valido que el lote no sea nulo
            if (lote != null)
            {
              //valido q este marcado como activo
              if (lote.id_loteoestado.id == LOTE_ACTIVO)
              {
                //una vez validado los estados valido que este marcado como movil
                co_rl_loteoscanales canal = new bf_rl_loteoscanales().GetData(new co_rl_loteoscanales { id_loteo = { id = lote.id_loteo }, id_canal = { id = CANAL_MOVIL } }).FirstOrDefault();
                if (canal != null)
                {
                  getTransaccion();
                  //realizo la instancia del wsdl para la notificacion.
                  WsNotificacion notificacion = new WsNotificacionClient();

                  //obtengo todos los lotes del remate con la opcion de canal movil
                  var mvSubcategorias =
                    new bf_mv_mosubcategorias_subcategorias().GetData(new co_mv_mosubcategorias_subcategorias
                    {
                      id_subcategoria = lote.id_subcategoria
                    });
                  string subcategoriasMovil = mvSubcategorias.Aggregate(string.Empty,
                    (current, sb) => current + sb.id_mosubcategoria.id + ",");
                  if (subcategoriasMovil.Length > 0)
                  {
                    subcategoriasMovil = subcategoriasMovil.Substring(0, (subcategoriasMovil.Length - 1));
                  }else
                  {
                    subcategoriasMovil = @"0";
                  }

                  var usuariosWeb = new bf_ca_usuariosweb().getUsuariosSubcategoriasMovil(subcategoriasMovil);
                  //verifico si hay usuario a los que notificar de lo contrario no hago nada
                  if (usuariosWeb.Any())
                  {
                    Publicacion publicacion = new Publicacion
                    {
                      esRemate = EsRemate(remate),
                      id = lote.id_loteo,
                      titulo = lote.lo_titulo
                    };
                    IList<Usuario> usuarios = new List<Usuario>();
                    string nombreCompleto = string.Empty;
                    foreach (var usu in usuariosWeb)
                    {
                      int uuid = 1749;
                      nombreCompleto = usu.pe_nombrecompleto;
                      usuarios.Add(new Usuario { uuid = uuid.ToString(), nombre = nombreCompleto });
                    }
                    publicacion.Usuarios = usuarios.ToArray();

                    NotificarRequest notificarRequest = new NotificarRequest
                    {
                      DatosTransaccion = _transaccion,
                      Publicacion = publicacion
                    };

                    NotificarResponse response = notificacion.Notificar(notificarRequest);
                    //guardo la respuesta realizada por el WebService
                    GuardarResponseMovil(response, lote.id_loteo, remate.id_remate, publicacion);

                    mensaje = "Lote Notificado Exitosamente.";
                  }else
                  {
                    mensaje = "No hay usuarios al cual Notificar.";
                  }
                }
                else
                {
                  mensaje = "Debe Seleccionar Canal Movil para poder notificar";
                }
              }
              else
              {
                mensaje = "Lote debe estar con estado ACTIVO para poder notificar";
              }
            }
            else
            {
              mensaje = "Lote Nulo";
            }
          }
          else
          {
            mensaje = "Remate debe estar PUBLICADO para poder notificar.";
          }
        }
        else
        {
          mensaje = "Remate Nulo";
        }
      }
      catch (Exception ex)
      {
        return "Error al notificar <br>" + ex.Message;
      }
      return mensaje;
    }
 private void seleccionarPublicacion()
 {
     if (this.publicacionesGrid.SelectedRows.Count > 0)
         publicacionSeleccionada = (Publicacion)this.publicacionesGrid.SelectedRows[0].DataBoundItem;
     else
         MessageBox.Show("No se encontró ninguna publicación\n" +
             "con los parámetros indicados.", "Atención", MessageBoxButtons.OK);
 }
    public static void NotificarMovilVentaDirecta(co_rl_loteos lote)
    {
      try
      {
        getTransaccion();
        //1. valido si el remate a sido publicado
        if (lote.id_loteoestado.id == LOTE_ACTIVO)
        {
          //realizo la instancia del wsdl para la notificacion.
          WsNotificacion notificacion = new WsNotificacionClient();

          //obtengo todos los lotes del remate con la opcion de canal movil
          var mvSubcategorias =
            new bf_mv_mosubcategorias_subcategorias().GetData(new co_mv_mosubcategorias_subcategorias
            {
              id_subcategoria = lote.id_subcategoria
            });
          string subcategoriasMovil = mvSubcategorias.Aggregate(string.Empty, (current, sb) => current + sb.id_mosubcategoria.id + ",");
          subcategoriasMovil = subcategoriasMovil.Substring(0, (subcategoriasMovil.Length - 1));

          var usuariosWeb = new bf_ca_usuariosweb().getUsuariosSubcategoriasMovil(subcategoriasMovil);
          //verifico si hay usuario a los que notificar de lo contrario no hago nada
          if (usuariosWeb.Any())
          {
            Publicacion publicacion = new Publicacion
            {
              esRemate = false,
              id = lote.id_loteo,
              titulo = lote.lo_titulo
            };
            IList<Usuario> usuarios = new List<Usuario>();
            string nombreCompleto = string.Empty;
            foreach (var usu in usuariosWeb)
            {
              int uuid = usu.id_usuarioWeb;
              nombreCompleto = usu.pe_nombrecompleto;
              usuarios.Add(new Usuario { uuid = uuid.ToString(), nombre = nombreCompleto });
            }
            publicacion.Usuarios = usuarios.ToArray();

            NotificarRequest notificarRequest = new NotificarRequest
            {
              DatosTransaccion = _transaccion,
              Publicacion = publicacion
            };

            NotificarResponse response = notificacion.Notificar(notificarRequest);
            GuardarResponseMovil(response, lote.id_loteo, lote.id_remate.id, publicacion);
          }
        }
      }
      catch (Exception)
      {
        //throw new Exception(ex.Message);
      }
    }
 private static string ObtenerString(Publicacion publicacion)
 {
   string mensaje = string.Empty;
   mensaje += "ID:" + publicacion.id + "|";
   mensaje += "TITULO:" + publicacion.titulo + "|";
   mensaje += "ES REMATE:" + publicacion.esRemate + "|";
   mensaje += "USUARIOS:" + publicacion.Usuarios.Aggregate(string.Empty, (usuario, sb) => usuario + "{UUID:" + sb.uuid + ";" + "NOMBRE:" + sb.nombre + "}");
   return mensaje;
 }
    private static void GuardarResponseMovil(NotificarResponse response, int idLoteo, int idRemate, Publicacion publicacion)
    {
      try
      {
        co_tg_lognotificaciones notify = new co_tg_lognotificaciones();
        notify.id_loteo = idLoteo;
        notify.id_remate = idRemate;
        notify.lono_codigoRetorno = response.Body.codigoRetorno;
        notify.lono_glosaRetorno = response.Body.glosaRetorno;
        notify.lono_respuesta = EstadosRegistros.ConvertirAEstadosRegistros(response.Body.respuesta);
        notify.lono_fechaHora.Fecha = response.DatosTransaccionResponse.fechaHora;
        notify.lono_fechaHoraFin.Fecha = response.DatosTransaccionResponse.fechaHoraFin;
        notify.lono_idContexto = response.DatosTransaccionResponse.idContexto;
        notify.lono_id_transaccion = response.DatosTransaccionResponse.idTransaccion;
        notify.stringEnvio = ObtenerString(publicacion);

        new bf_tg_lognotificaciones().Save(notify);
      }
      catch (Exception)
      {
        throw;
      }
    }
 public static Publicacion DesCifrar( string publicacion )
 {
     string[] args = publicacion.Split( new[] { ',' }, 4 );
     Publicacion nuevaPublicacion = new Publicacion( args[ 0 ], args[ 1 ], args[ 2 ], int.Parse( args[ 3 ] ) );
     return nuevaPublicacion;
 }