public ActionResult MantenimientoListaPrecio()
        {
            MantenimientoListaPrecioModel model = new MantenimientoListaPrecioModel();
            ProxyApiComun proxyComun            = new ProxyApiComun();
            var           responseTipoComun     = proxyComun.ObtenerTipoComida();

            model.ListComida = new List <SelectListItemCustom>();

            foreach (var item in responseTipoComun.TipoComida)
            {
                model.ListComida.Add(new SelectListItemCustom()
                {
                    Text  = item.tico_descrip,
                    Value = item.tico_id.ToString()
                });
            }



            return(View(model));
        }
        // GET: UsuarioRestaurante/Create
        public ActionResult Create()
        {
            UsuarioRestaurante model = new UsuarioRestaurante();
            ProxyApiComun      api   = new ProxyApiComun();

            ObtenerTipoTelefonoResponse responseTipoTelefono = api.ObtenerTipoTelefonos();

            model.ListTipoTelefono = new List <SelectListItemCustom>();
            model.ListTipoTelefono.Add(new SelectListItemCustom {
                Text = "Seleccionar", Value = "0", Selected = true
            });

            foreach (TipoTelefono item in responseTipoTelefono.TipoTelefonos)
            {
                model.ListTipoTelefono.Add(new SelectListItemCustom {
                    Text = item.DescripcionTelefono, Value = item.CodigoTelefono.ToString()
                });
            }


            model.Telefonos = String.Empty;

            return(View(model));
        }
        public ActionResult MantenimientoListaPrecio(MantenimientoListaPrecioModel model)
        {
            try
            {
                ProxyApiComun proxyComun        = new ProxyApiComun();
                var           responseTipoComun = proxyComun.ObtenerTipoComida();

                model.ListComida = new List <SelectListItemCustom>();

                foreach (var item in responseTipoComun.TipoComida)
                {
                    model.ListComida.Add(new SelectListItemCustom()
                    {
                        Text  = item.tico_descrip,
                        Value = item.tico_id.ToString()
                    });
                }



                SeguridadMVC.Seguridad.SessionWrapper objSesion = new SeguridadMVC.Seguridad.SessionWrapper();



                ProxyApiUsuario apiUsuario = new ProxyApiUsuario();

                var responseUsuario = apiUsuario.ObtenerUsuario(objSesion.Usuario.Idusuario);



                RegistrarProductoRequest registrarProducto = new RegistrarProductoRequest();
                registrarProducto.Producto              = new Producto();
                registrarProducto.Producto.tico_id      = model.CodigoTipoComida;
                registrarProducto.Producto.prod_descrip = model.DescripcionProducto;
                registrarProducto.Producto.prod_nombre  = model.DescripcionProducto;
                registrarProducto.Producto.prod_precio  = Convert.ToDecimal(model.PrecioProducto);
                registrarProducto.Producto.rest_ruc     = responseUsuario.Restaurante.rest_ruc;

                registrarProducto.Producto.tico_id = model.CodigoTipoComida;


                ProxyApiProducto proxyProducto = new ProxyApiProducto();

                RegistrarProductoResponse result = proxyProducto.RegistrarProducto(registrarProducto);


                if (result.status.estado == 0)
                {
                    model.CodigoTipoComida = 0;

                    model.DescripcionProducto = "";
                    model.PrecioProducto      = "";

                    return(RedirectToAction("MantenimientoListaPrecio"));
                }
                else
                {
                    ModelState.AddModelError("MensajeGeneral", result.status.mensaje);
                }
            }
            catch (Exception err)
            {
                ModelState.AddModelError("MensajeGeneral", err.Message);
            }

            return(View(model));
        }
        public ActionResult MisDatos(UsuarioRestauranteModel model, FormCollection formCollection)
        {
            string vRutaParcial = "/File/Foto/";
            string archivo      = "";
            string vRuta;
            string vExtension;



            model.Distritos        = new List <SelectListItemCustom>();
            model.EspecialidadTipo = new List <SelectListItemCustom>();
            model.TipoCuenta       = new List <SelectListItemCustom>();

            model.MensajeSucces = string.Empty;



            ProxyApiComun   api        = new ProxyApiComun();
            ProxyApiUsuario apiUsuario = new ProxyApiUsuario();


            List <Telefono> listTelefonoRegistrar = new List <Telefono>();

            try
            {
                SeguridadMVC.Seguridad.SessionWrapper objSesion = new SeguridadMVC.Seguridad.SessionWrapper();



                ObtenerUsuarioResponse usuarioResponse = apiUsuario.ObtenerUsuario(objSesion.Usuario.Idusuario);


                model.usua_email = usuarioResponse.Usuario.usua_email;


                if (usuarioResponse.Restaurante != null)
                {
                    model.rest_rz  = usuarioResponse.Restaurante.rest_rz;
                    model.rest_ruc = usuarioResponse.Restaurante.rest_ruc;
                }


                ObtenerComunResponse responseComun = api.ObtenerComun();


                foreach (Distrito item in responseComun.Distritos)
                {
                    model.Distritos.Add(new SelectListItemCustom {
                        Text = item.dist_nombre, Value = item.dist_id.ToString()
                    });
                }

                foreach (EspecialidadTipo itemEspe in responseComun.EspecialidadesTipo)
                {
                    model.EspecialidadTipo.Add(new SelectListItemCustom {
                        Text = itemEspe.esti_descrip, Value = itemEspe.esti_id.ToString()
                    });
                }

                foreach (TipoCuenta itemCuenta in responseComun.TipoCuentas)
                {
                    model.TipoCuenta.Add(new SelectListItemCustom {
                        Text = itemCuenta.tico_descrip, Value = itemCuenta.tico_id.ToString()
                    });
                }


                model.Telefonos = JsonConvert.SerializeObject(listTelefonoRegistrar);

                ObtenerTipoTelefonoResponse responseTipoTelefono = api.ObtenerTipoTelefonos();


                model.ListTipoTelefono = new List <SelectListItemCustom>();
                model.ListTipoTelefono.Add(new SelectListItemCustom {
                    Text = "Seleccionar", Value = "0", Selected = true
                });

                foreach (TipoTelefono item in responseTipoTelefono.TipoTelefonos)
                {
                    model.ListTipoTelefono.Add(new SelectListItemCustom {
                        Text = item.DescripcionTelefono, Value = item.CodigoTelefono.ToString()
                    });
                }


                if (formCollection[$"slCodigoContacto"] != null && formCollection[$"txtCodigoContacto"] != null)
                {
                    string codigoTipoTelefno = "";
                    string numeroTelefno     = "";

                    codigoTipoTelefno = formCollection["slCodigoContacto"].ToString();
                    numeroTelefno     = formCollection["txtCodigoContacto"].ToString();

                    listTelefonoRegistrar.Add(new Telefono()
                    {
                        CodigoTipoTelefono = codigoTipoTelefno.Trim() == string.Empty ? 0 : Convert.ToInt32(codigoTipoTelefno),
                        NumeroTelefono     = numeroTelefno,
                        CodigoUsuario      = 0
                    });
                }

                int contador = 1;

                for (int i = 0; i < formCollection.Count; i++)
                {
                    if (formCollection[$"slCodigoContacto{contador}"] != null &&
                        formCollection[$"txtCodigoContacto{contador}"] != null)
                    {
                        string codigoTipoTelefno = "";
                        string numeroTelefno     = "";
                        codigoTipoTelefno = formCollection[$"slCodigoContacto{contador}"].ToString();
                        numeroTelefno     = formCollection[$"txtCodigoContacto{contador}"].ToString();


                        listTelefonoRegistrar.Add(new Telefono()
                        {
                            CodigoTipoTelefono = codigoTipoTelefno.Trim() == string.Empty ? 0 : Convert.ToInt32(codigoTipoTelefno),
                            NumeroTelefono     = numeroTelefno,
                            CodigoUsuario      = 0
                        });
                    }

                    contador++;
                }

                model.Telefonos = JsonConvert.SerializeObject(listTelefonoRegistrar);


                model.usua_id = objSesion.Usuario.Idusuario;

                // TODO: Add insert logic here

                if (!ModelState.IsValid)
                {
                    return(View(model));
                }
                else
                {
                    if (model.uploadFile != null)
                    {
                        if (model.uploadFile.ContentLength > 5242880)
                        {
                            ProcesoResponse resonseStatus = new ProcesoResponse();
                            resonseStatus.estado  = -1;
                            resonseStatus.mensaje = "No debe exceder los 5MB";



                            return(RedirectToAction("NuevoColaborador", new { }));
                        }
                    }



                    if (model.uploadFile != null)
                    {
                        vExtension   = Path.GetExtension(model.uploadFile.FileName);
                        archivo      = (DateTime.Now.ToString("yyyyMMddHHmmss") + "-" + model.rest_ruc).ToLower() + vExtension;
                        vRutaParcial = vRutaParcial + archivo;
                        vRuta        = System.Web.Hosting.HostingEnvironment.MapPath("~" + vRutaParcial);


                        model.uploadFile.SaveAs(vRuta);



                        model.usua_rutaimagen = vRutaParcial;
                    }



                    RegistrarUsuarioRestauranteRequest request = new RegistrarUsuarioRestauranteRequest();
                    request.Usuario                 = new Usuario();
                    request.Usuario.usua_id         = model.usua_id;
                    request.Usuario.dist_id         = model.dist_id;
                    request.Usuario.usua_refedirec  = model.usua_refedirec;
                    request.Usuario.usua_direc      = model.usua_direc;
                    request.Usuario.usua_rutaiamgen = model.usua_rutaimagen;


                    request.Restaurante                   = new Restaurante();
                    request.Restaurante.usua_id           = model.usua_id;
                    request.Restaurante.rest_descrip      = model.rest_descrip;
                    request.Restaurante.rest_delivery     = model.rest_delivery;
                    request.Restaurante.rest_reservalocal = model.rest_reservalocal;
                    request.Restaurante.esti_id           = model.esti_id;
                    request.Restaurante.rest_nomcomer     = model.rest_nomcomer;
                    request.Restaurante.uscta_numero      = model.uscta_numero;
                    request.Restaurante.uscta_titular     = model.uscta_titular;
                    request.Restaurante.ticta_id          = model.ticta_id;

                    request.Telefonos = listTelefonoRegistrar;

                    var objRespuesta = apiUsuario.ActualizarUsuarioRestaurante(request);


                    if (objRespuesta.status.estado == 0)
                    {
                        model.MensajeSucces = "Actualizado";
                        return(View(model));
                    }
                    else
                    {
                        ModelState.AddModelError("MensajeGeneral", objRespuesta.status.mensaje);
                        return(View(model));
                    }



                    //if (objRespuesta.status.estado == 0)
                    //    {



                    //        return View("Correcto", model);
                    //    }
                    //    else
                    //    {
                    //        ModelState.AddModelError("MensajeGeneral", objRespuesta.status.mensaje);

                    //        return View(model);
                    //    }
                }
            }
            catch (Exception err)
            {
                ModelState.AddModelError("MensajeGeneral", err);

                return(View(model));
            }
        }
        public ActionResult MisDatos()
        {
            UsuarioRestauranteModel model = new UsuarioRestauranteModel();

            model.Distritos        = new List <SelectListItemCustom>();
            model.EspecialidadTipo = new List <SelectListItemCustom>();
            model.TipoCuenta       = new List <SelectListItemCustom>();



            SeguridadMVC.Seguridad.SessionWrapper objSesion = new SeguridadMVC.Seguridad.SessionWrapper();

            ProxyApiComun   api        = new ProxyApiComun();
            ProxyApiUsuario apiUsuario = new ProxyApiUsuario();

            List <Telefono> listTelefonoRegistrar = new List <Telefono>();


            ObtenerUsuarioResponse usuarioResponse = apiUsuario.ObtenerUsuario(objSesion.Usuario.Idusuario);


            model.usua_email      = usuarioResponse.Usuario.usua_nomb;
            model.usua_refedirec  = usuarioResponse.Usuario.usua_refedirec;
            model.usua_direc      = usuarioResponse.Usuario.usua_direc;
            model.dist_id         = usuarioResponse.Usuario.dist_id;
            model.usua_rutaimagen = usuarioResponse.Usuario.usua_rutaiamgen;



            if (usuarioResponse.Restaurante != null)
            {
                model.rest_rz       = usuarioResponse.Restaurante.rest_rz;
                model.rest_nomcomer = usuarioResponse.Restaurante.rest_nomcomer;
                model.rest_ruc      = usuarioResponse.Restaurante.rest_ruc;

                model.esti_id      = usuarioResponse.Restaurante.esti_id;
                model.rest_descrip = usuarioResponse.Restaurante.rest_descrip;

                if (usuarioResponse.Restaurante.rest_reservalocal != null)
                {
                    model.rest_reservalocal = Convert.ToBoolean(usuarioResponse.Restaurante.rest_reservalocal);
                }
                else
                {
                    model.rest_reservalocal = false;
                }

                if (usuarioResponse.Restaurante.rest_delivery != null)
                {
                    model.rest_delivery = Convert.ToBoolean(usuarioResponse.Restaurante.rest_delivery);
                }
                else
                {
                    model.rest_delivery = false;
                }


                model.uscta_numero  = usuarioResponse.Restaurante.uscta_numero;
                model.ticta_id      = usuarioResponse.Restaurante.ticta_id;
                model.uscta_titular = usuarioResponse.Restaurante.uscta_titular;
            }


            ObtenerComunResponse responseComun = api.ObtenerComun();


            foreach (Distrito item in responseComun.Distritos)
            {
                model.Distritos.Add(new SelectListItemCustom {
                    Text = item.dist_nombre, Value = item.dist_id.ToString()
                });
            }

            foreach (EspecialidadTipo itemEspe in responseComun.EspecialidadesTipo)
            {
                model.EspecialidadTipo.Add(new SelectListItemCustom {
                    Text = itemEspe.esti_descrip, Value = itemEspe.esti_id.ToString()
                });
            }

            foreach (TipoCuenta itemCuenta in responseComun.TipoCuentas)
            {
                model.TipoCuenta.Add(new SelectListItemCustom {
                    Text = itemCuenta.tico_descrip, Value = itemCuenta.tico_id.ToString()
                });
            }


            ObtenerTipoTelefonoResponse responseTipoTelefono = api.ObtenerTipoTelefonos();

            model.ListTipoTelefono = new List <SelectListItemCustom>();
            model.ListTipoTelefono.Add(new SelectListItemCustom {
                Text = "Seleccionar", Value = "0", Selected = true
            });

            foreach (TipoTelefono item in responseTipoTelefono.TipoTelefonos)
            {
                model.ListTipoTelefono.Add(new SelectListItemCustom {
                    Text = item.DescripcionTelefono, Value = item.CodigoTelefono.ToString()
                });
            }



            var respuestaTelefonos = api.ObtenerTelefonosUsuario(objSesion.Usuario.Idusuario);

            if (respuestaTelefonos.status.estado == 0)
            {
                foreach (Telefono itemTelefono in respuestaTelefonos.Telefonos)
                {
                    listTelefonoRegistrar.Add(new Telefono()
                    {
                        CodigoTipoTelefono = itemTelefono.CodigoTipoTelefono,
                        NumeroTelefono     = itemTelefono.NumeroTelefono,
                        CodigoUsuario      = itemTelefono.CodigoUsuario
                    });
                }
            }

            model.Telefonos = JsonConvert.SerializeObject(listTelefonoRegistrar);



            return(View(model));
        }
        public ActionResult Create(UsuarioRestaurante view, FormCollection formCollection)
        {
            UsuarioRestaurante model = view;
            ProxyApiComun      api   = new ProxyApiComun();
            List <Telefono>    listTelefonoRegistrar = new List <Telefono>();

            try
            {
                model.Telefonos = JsonConvert.SerializeObject(listTelefonoRegistrar);

                ObtenerTipoTelefonoResponse responseTipoTelefono = api.ObtenerTipoTelefonos();


                model.ListTipoTelefono = new List <SelectListItemCustom>();
                model.ListTipoTelefono.Add(new SelectListItemCustom {
                    Text = "Seleccionar", Value = "0", Selected = true
                });

                foreach (TipoTelefono item in responseTipoTelefono.TipoTelefonos)
                {
                    model.ListTipoTelefono.Add(new SelectListItemCustom {
                        Text = item.DescripcionTelefono, Value = item.CodigoTelefono.ToString()
                    });
                }


                if (formCollection[$"slCodigoContacto"] != null && formCollection[$"txtCodigoContacto"] != null)
                {
                    string codigoTipoTelefno = "";
                    string numeroTelefno     = "";

                    codigoTipoTelefno = formCollection["slCodigoContacto"].ToString();
                    numeroTelefno     = formCollection["txtCodigoContacto"].ToString();

                    listTelefonoRegistrar.Add(new Telefono()
                    {
                        CodigoTipoTelefono = codigoTipoTelefno.Trim() == string.Empty ? 0 : Convert.ToInt32(codigoTipoTelefno),
                        NumeroTelefono     = numeroTelefno,
                        CodigoUsuario      = 0
                    });
                }

                int contador = 1;

                for (int i = 0; i < formCollection.Count; i++)
                {
                    if (formCollection[$"slCodigoContacto{contador}"] != null &&
                        formCollection[$"txtCodigoContacto{contador}"] != null)
                    {
                        string codigoTipoTelefno = "";
                        string numeroTelefno     = "";
                        codigoTipoTelefno = formCollection[$"slCodigoContacto{contador}"].ToString();
                        numeroTelefno     = formCollection[$"txtCodigoContacto{contador}"].ToString();


                        listTelefonoRegistrar.Add(new Telefono()
                        {
                            CodigoTipoTelefono = codigoTipoTelefno.Trim() == string.Empty?0: Convert.ToInt32(codigoTipoTelefno),
                            NumeroTelefono     = numeroTelefno,
                            CodigoUsuario      = 0
                        });
                    }

                    contador++;
                }

                model.Telefonos = JsonConvert.SerializeObject(listTelefonoRegistrar);



                // TODO: Add insert logic here

                if (!ModelState.IsValid)
                {
                    ModelState.AddModelError("MensajeGeneral", "Ingrese los campos obligatorio");
                    return(View(model));
                }
                else
                {
                    if (!this.IsCaptchaValid(""))
                    {
                        ModelState.AddModelError("MensajeGeneral", "Invalid Captcha");
                        return(View(model));
                    }
                    else
                    {
                        RegistrarUsuarioRestauranteRequest reqeust = new RegistrarUsuarioRestauranteRequest();

                        reqeust.Usuario     = model.Usuario;
                        reqeust.Restaurante = model.Restaurante;
                        reqeust.Telefonos   = listTelefonoRegistrar;

                        RegistrarUsuarioRestauranteResponse objRespuesta = new ProxyApiUsuario().RegistrarUsuarioRestaurante(reqeust);

                        if (objRespuesta.status.estado == 0)
                        {
                            // enviar a cola mensajes para envio de correo

                            string link           = "http://localhost:59052/Usuario/ActivarCuenta?CodigoUsuario=" + objRespuesta.CodigoUsuario;
                            string DetalleMensaje = " Para activar la cuenta ingrese al siguiente enlace ";


                            CorreoAltaUsuario objCorreoAltaUsuario = new CorreoAltaUsuario();


                            //Mailer CorreoSolicitud = new Mailer();
                            //List<String> listCorreso = new List<string>();
                            //listCorreso.Add(model.Usuario.usua_email);
                            //CorreoSolicitud.Notificacion.CorreosPara = listCorreso;
                            //CorreoSolicitud.Notificacion.ConCopia = "";
                            //CorreoSolicitud.Notificacion.Asunto = " Activar cuenta";
                            //CorreoSolicitud.Notificacion.Cuerpo = new FormatoCorreo().BodyMensaje(model.Usuario.usua_nomb, DetalleMensaje, link);
                            //CorreoSolicitud.Enviar();

                            objCorreoAltaUsuario.CodigoUsuario = model.Usuario.usua_id;
                            objCorreoAltaUsuario.CorreoUsuario = model.Usuario.usua_email;
                            objCorreoAltaUsuario.Asunto        = " Activar cuenta";
                            objCorreoAltaUsuario.Mensaje       = new FormatoCorreo().BodyMensaje(model.Usuario.usua_nomb, DetalleMensaje, link);


                            this.CrearCola();
                            this.EnviarMensajeCola(objCorreoAltaUsuario);


                            return(View("Correcto", model));
                        }
                        else
                        {
                            ModelState.AddModelError("MensajeGeneral", objRespuesta.status.mensaje);

                            return(View(model));
                        }
                    }
                }
            }
            catch (Exception err)
            {
                ModelState.AddModelError("MensajeGeneral", err);

                return(View(model));
            }
        }