public PartialViewResult MantMenu(MantenimientoMenuModel model)
        {
            if (ModelState.IsValid)
            {
                SeguridadMVC.Seguridad.SessionWrapper sesionUsuario = new SeguridadMVC.Seguridad.SessionWrapper();

                ProxyApiUsuario proxyUsuario    = new ProxyApiUsuario();
                var             responseUsuario = proxyUsuario.ObtenerUsuario(sesionUsuario.Usuario.Idusuario);


                ProxyApiRestaurante  proxyRestaurante = new ProxyApiRestaurante();
                MenuRegistrarRequest request          = new MenuRegistrarRequest();
                request.Menu                = new Menu();
                request.Menu.menu_nombre    = model.DescripcionMenu;
                request.Menu.menu_estado    = false;
                request.Menu.menu_publicado = false;
                request.Menu.menu_ruc       = responseUsuario.Restaurante.rest_ruc;



                var response = proxyRestaurante.RegistrarMenu(request);
            }
            else
            {
            }



            return(PartialView(model));
        }
        public ActionResult ActivarCuenta(int CodigoUsuario)
        {
            ActivarCuentaModel model      = new ActivarCuentaModel();
            ProxyApiUsuario    objUsuario = new ProxyApiUsuario();
            var objRespuesta = objUsuario.ObtenerUsuario(CodigoUsuario);


            objUsuario.ActivarCuenta(CodigoUsuario);


            model.Nombre = "Hola " + objRespuesta.Usuario.usua_nomb + ", su cuenta se activo con exito";

            return(View(model));
        }
        public ActionResult CambiarContrasena(CambiarContrasenModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            else
            {
                if (model.ContrasenaNueva != model.ContrasenaRepetir)
                {
                    ModelState.AddModelError("MensajeGeneral", "La contraseña no coencide");

                    return(View(model));
                }


                // Verificar clave anterior


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

                ProxyApiUsuario proxyUsuario = new ProxyApiUsuario();

                var responseValidarClave = proxyUsuario.ValidarClave(objSesion.Usuario.Idusuario, model.ContrasenaActual);

                if (responseValidarClave.status.estado != 0)
                {
                    ModelState.AddModelError("MensajeGeneral", responseValidarClave.status.mensaje);
                    return(View(model));
                }


                // Cambiar Clave


                var objUsuarioResponse = proxyUsuario.ObtenerUsuario(objSesion.Usuario.Idusuario);


                CambiarClaveUsuarioRequest request = new CambiarClaveUsuarioRequest();
                request.CodigoUsuario = objSesion.Usuario.Idusuario;
                request.Clave         = model.ContrasenaNueva;

                var responseCambiarClave = proxyUsuario.CambiarClave(request);

                if (responseCambiarClave.status.estado != 0)
                {
                    ModelState.AddModelError("MensajeGeneral", responseValidarClave.status.mensaje);
                    return(View(model));
                }


                string DetalleMensaje = " Se cambio su contranseña con exito ";

                Mailer        CorreoSolicitud = new Mailer();
                List <String> listCorreso     = new List <string>();
                listCorreso.Add(objUsuarioResponse.Usuario.usua_email);

                CorreoSolicitud.Notificacion.CorreosPara = listCorreso;
                CorreoSolicitud.Notificacion.ConCopia    = "";
                CorreoSolicitud.Notificacion.Asunto      = " Activar cuenta";
                CorreoSolicitud.Notificacion.Cuerpo      = new FormatoCorreo().BodyMensajeCambioClave(objUsuarioResponse.Usuario.dist_nombre, DetalleMensaje);


                CorreoSolicitud.Enviar();

                return(View("Correcto", model));
            }
        }
        public JsonResult LitaMenu(FormCollection frm)
        {
            string iDisplayLength = HttpContext.Request.Form["iDisplayLength"];
            string iDisplayStart  = HttpContext.Request.Form["iDisplayStart"];
            string sEcho          = HttpContext.Request.Form["sEcho"];
            string sData          = HttpContext.Request.Form["sData"];

            ResponseOperacionBE o_ResponseOperacion = new ResponseOperacionBE();

            o_ResponseOperacion.OperacionType = new OperacionType();
            o_ResponseOperacion.OperacionType.codigo_operacion  = "LISTAR_MENU";
            o_ResponseOperacion.OperacionType.nombre_operacion  = "Listar precios";
            o_ResponseOperacion.OperacionType.mensaje_operacion = "Listado con éxito";
            o_ResponseOperacion.OperacionType.estado_operacion  = "0";

            RequestOperacionBE Request = new RequestOperacionBE();

            Request = new JavaScriptSerializer().Deserialize <RequestOperacionBE>(sData);
            Request.DataTableRquest = new DataTableRequest();

            Request.DataTableRquest.iDisplayLength = Convert.ToInt32(iDisplayLength);
            Request.DataTableRquest.iDisplayStart  = Convert.ToInt32(iDisplayStart);
            Request.DataTableRquest.sEcho          = sEcho;


            DataTableResponse ResponseOperacion = new DataTableResponse();
            int nIdIniComp = Request.DataTableRquest.iDisplayStart;
            int nIdFinComp = Request.DataTableRquest.iDisplayLength;

            nIdFinComp = nIdIniComp + nIdFinComp;
            nIdIniComp = nIdIniComp + 1;

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

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


                var deserailizar = new JsonSerializerSettings();
                deserailizar.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;

                deserailizar.Culture = System.Threading.Thread.CurrentThread.CurrentCulture;
                var parameter = Newtonsoft.Json.JsonConvert.DeserializeObject <ListarMenuRequest>(Request.OperacionType.Objeto1.ToString(), deserailizar);

                parameter.prm_reginicio = nIdIniComp;
                parameter.prm_regfin    = nIdFinComp;



                parameter.CodigoUsuario = responseUsuario.Usuario.usua_id;

                ProxyApiRestaurante proxyRestauramte = new ProxyApiRestaurante();

                ListaMenuResponse result = proxyRestauramte.ListarMenu(parameter);



                ResponseOperacion.aaData               = result.Hits;
                ResponseOperacion.iTotalRecords        = Request.DataTableRquest.iDisplayLength;
                ResponseOperacion.iTotalDisplayRecords = result.totalregistros;
                ResponseOperacion.sEcho = Request.DataTableRquest.sEcho;

                o_ResponseOperacion.DataTableResponse = ResponseOperacion;
            }
            catch (Exception err)
            {
                o_ResponseOperacion.OperacionType.mensaje_operacion = err.Message;
                o_ResponseOperacion.OperacionType.estado_operacion  = "-1";
            }

            var jsonResult = new JsonResult {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            };

            jsonResult.Data = o_ResponseOperacion;
            return(jsonResult);
        }
        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));
        }